Как выглядит деплой современного приложения:
- У нас есть готовый продукт, который мы билдим в приложение
- Далее нам нужно собрать из нашего приложения контейнер
- Сам контейнер будет попадать в наш registry, где будет сохраняться версия нашей сборки
- Далее уже большое количестворазных образов оркестрируется с помощью kubernetes, либо с помощью немного устаревшего swarm
Swarm - это простое ручное решение для поднятия сразу нескольких контейнеров. Его проще поднять, а так же он является нативным решением. Основным его недостатком являются меньшие возможности относительно кубера и отсутсивие динамического масшатбирования проекта, если у нас будет не хватать мощностей.
Kubernetes - это более сложное решение для оркестрации большого количества контейнеров. У него есть множество готовых решений у различных провайдеров. Он чаще встречается на различных проектах, а так же он достаточно гибок в расширении и обновлении контейнеров. Он может предоставить нам инструментарии бесшовного релиза приложения без его остановки, что не может дать docker без ansible.