Приложение, как симбиоз микросервисов
Вначале были контейнеры
Контейнеры имеют очень длинную историю. В отличие от виртуализации, когда на одной физической машине мы можем запускать несколько независимых виртуальных машин, контейнеры существуют поверх операционной системы. Данный подход позволяет более гибко использовать ресурсы основной машины, но, в то же время, накладывает определенные ограничения. К примеру, мы можем легко запустить CentOS Linux поверх Ubuntu, но мы не сможем запустить Windows поверх Ubuntu.
Технология контейнеров существует уже очень давно и все больше становится похожей на изолированные виртуальные машины с собственной сетевой инфраструктурой, политикой групп либо с персональными файловыми хранилищами. Благодаря особенностям современного ядра Linux
(таких как lxc
) контейнеры завоевали большую популярность среди разработчиков программных продуктов.
Но, как управлять этими контейнерами? Как взаимодействовать между ними? Обычный подход виртуальных машин тут уже неуместен, необходимо что-то новое. И этим новым стал Docker
.