Рубрики
Uncategorized

Аналогия докера

Если вы создаете серверные приложения, в какой-то момент вы, вероятно, столкнетесь с контейнерами …. Tagged с облаком, DevOps, Tools, Docker.

Если вы создаете серверные приложения, в какой-то момент вы, вероятно, столкнетесь с контейнерами. Docker — это популярная технология контейнеров, которая позволяет упаковать и развернуть приложение и его зависимости. Kubernetes — это кластер и инструмент управления контейнерами (часто сокращается как K8s). Как Docker, так и Kubernetes являются сложными технологиями, и обширные детали, окружающие каждый, делают общую картину сильнее. В подготовке к Разговор, который я выступил в Codemash 2020 Я придумал аналогию, чтобы объяснить Docker и Kubernetes в отношении традиционного развертывания сервера. Я понимаю, что любая аналогия несовершенна, но, надеюсь, она поможет вам понять, как Docker отличается от традиционных развертываний сервера, и как Docker относится к Kubernetes.

Давайте начнем с того, как традиционно были развернуты веб -приложения. Независимо от платформы, как правило, какой -то веб -сервер или сервер приложений и его зависимости устанавливается непосредственно в операционной системе хост -сервера, будь то фактический сервер или виртуальная машина. Иногда есть база данных, а также вспомогательные сервисы или веб -API. Часто более одного веб -сайта/приложения оказывается на одном и том же сервере, чтобы эффективно использовать сервер, но для оборота есть столько памяти и обработки. Теперь представьте, что сервер — это дом. В доме всего так много комнат, и некоторые из этих комнат являются общими для всех жителей. Представьте, что каждое приложение или база данных, которую вы устанавливаете, является пассажиром дома. Все они приносят свою собственную мебель (или зависимости в программном языке) и потребность в пространстве и ресурсах, таких как вода и электричество (память и мощность обработки). К сожалению, иногда стили мебели сталкиваются, некоторые жители приносят с собой современную мебель середины века, в то время как другие могут иметь классическую мебель в стиле кантри. В доме есть только так много места, поэтому некоторые из мебели каждого пассажира заканчиваются в общих зонах. Это может привести к тому, что некоторые обитатели будут вести себя плохо из -за конфликтов в стиле. Вдобавок к конфликтам в стиле, действительно трудно управлять тем, как обитатели используют воду и электричество в доме, и если один из пассажиров плохо ведет и потребляет всю горячую воду (память), она напрямую влияет на других пассажиров, которые нуждаются в некоторых горячих вода. Если один из пассажиров покидает дом, часто трудно избавиться от их старой мебели. Другие жители, возможно, также полагались на эту мебель, потому что она была в общей зоне. Так что удаление старой мебели расстраивает других жильцов.

Контейнеры Docker — это один из способов решения проблемы противоречивых жителей. Чтобы продолжить аналогию, подумайте о контейнерах Docker хостинга на сервере как в жилом доме. Каждый житель получает свою квартиру. Они помещают свою мебель в свое собственное пространство, и это устраняет конфликты в стиле с другими жильцами. Много плохого поведения устраняется, и действительно легко изменить пассажира одной квартиры, потому что другие жители не могут использовать эту мебель, они должны принести свою собственную мебель. Хотя разделение пассажиров хорошее, все еще могут быть проблемы с ресурсами. Сантехника и электричество здания разделены между всеми квартирами, и каждый житель не вмешивается непосредственно с другими жильцами, как они могут в доме, но они могут чрезмерно использовать ресурсы, если квартира плохо построена. Контейнеры делают потребление ресурсов более управляемым, но в здании все еще существует конечное количество пространства, воды и электрики. Вот где Кубернет помогает.

Итак, давайте посмотрим на то, как Kubernetes помогает решить наши проблемы с ресурсами и продолжить нашу аналогию. Думайте о Kubernetes как о жилом комплексе (наша аналогия для кластера серверов, которые размещают контейнеры). Мы по -прежнему получаем все преимущества жилого дома, но с дополнительным управлением жильцов. Главный офис решает, какие пассажиры принадлежат к каким зданиям в соответствии с их потребностями в ресурсах и доступном пространстве. Главный офис может переместить пассажиров, если их потребности меняются или есть проблема с их нынешним зданием. Объектив по -прежнему делятся ресурсами так, как они делали в одном квартире, но теперь есть способ управлять жильными домами. Если все ресурсы будут потреблены, комплекс может добавить дополнительные здания и перенести жителей в новые здания для управления потреблением ресурсов. Когда посетители (сообщения, файлы или сетевой трафик в нашем контексте программного обеспечения) прибывают, главный офис направляет их на правильное здание и квартиру. Обительники не беспокоятся ни о чем из этих вещей, главный офис просто позаботится об этом.

Это, конечно, чрезмерное упрощение Kubernetes и оставляет множество преимуществ Kubernetes, но я думаю, что аналогия-хорошее место для начала, пытаясь понять, что такое Docker и это связано с Kubernetes. Теперь пришло время узнать больше технических подробностей о Docker и K8s. Вот пара хороших статей, которые являются более техническими отправными точками:

Функциональное описание Docker vs Kubernetes

Начало работы с Docker и Kubernetes: руководство для начинающих

Оригинал: «https://dev.to/davetrux/a-docker-analogy-2ffe»