Вначале были контейнеры
Контейнеры имеют очень длинную историю. В отличие от виртуализации, когда на одной физической машине мы можем запускать несколько независимых виртуальных машин, контейнеры существуют поверх операционной системы. Данный подход позволяет более гибко использовать ресурсы основной машины, но, в то же время, накладывает определенные ограничения. К примеру, мы можем легко запустить CentOS Linux поверх Ubuntu, но мы не сможем запустить Windows поверх Ubuntu.
Технология контейнеров существует уже очень давно и все больше становится похожей на изолированные виртуальные машины с собственной сетевой инфраструктурой, политикой групп либо с персональными файловыми хранилищами. Благодаря особенностям современного ядра Linux
(таких как lxc
) контейнеры завоевали большую популярность среди разработчиков программных продуктов.
Но, как управлять этими контейнерами? Как взаимодействовать между ними? Обычный подход виртуальных машин тут уже неуместен, необходимо что-то новое. И этим новым стал Docker
.
Уникальность Docker
Как я уже говорил ранее, многие технологии существовали задолго до появления Docker
. Docker
принес глоток свежего воздуха, новый подход, который позволил ему стать лучшим Open Source
проектом.
Что же такого особенного в Docker
? А то, что Docker
сосредотачивает внимание разработчика на программном продукте, а не на среде, в которой он будет работать. Ваше приложение должно одинаково хорошо выполняться как на личном лэптопе, как в тестовой среде, так и в продакшн. Приложение должно быстро разворачиваться и не зависит от версий установленного на сервере вспомогательного ПО.
Эпоха микросервисов
Уже давно не секрет, что современные программные продукты состоять из множества других проектов. Разделите их! Вынесите компоненты в отдельные микросервисы со своей средой, где они наилучше работают. Уходит эпоха монолитного ПО, сегодня намного проще поддерживать, развивать и обновлять небольшие компоненты.
Так же, микросервисы намного лучше подходят для облачных платформ, для кластеризация и резервирования. Это позволяет строить большие облачные сервисы с помощью небольших команд разработчиков.
Lego для облака
Дети очень любят Lego. Игрушка дает возможность из существующих элементов создать что-то новое, что-то уникальное, что-то свое и развивать его до бесконечности. Docker
внес свои правки в историю построения облачных сервисов. Все больше набирает популярности подход PaaS
(Платформа как сервис). И я очень надеюсь, что с помощью Docker
мы сможем создать Webitel
, как простую и мощную платформу телефонии, одинаково хорошо работающую в облаке и на выделенном сервере в офисе.
Вместо многоточия
К чему я это все? Наша команда сумела пересмотреть идеологию построения нашего продукта Webitel. Мы пошли новым путем, начали все с чистого листа. И я хочу, на простых примерах, рассказать Вам как мы это сделали и как сейчас все это работает.
Интересно? Мне продолжать? 🙂
Продолжать )) Сам начал подкрадываться к Docker.
С наступающим!!!
Permalink
Однозначно продолжать! Ждем следующих статей!