Как выглядит деплой современного приложения:

  1. У нас есть готовый продукт, который мы билдим в приложение
  2. Далее нам нужно собрать из нашего приложения контейнер
  3. Сам контейнер будет попадать в наш registry, где будет сохраняться версия нашей сборки
  4. Далее уже большое количестворазных образов оркестрируется с помощью kubernetes, либо с помощью немного устаревшего swarm

Swarm - это простое ручное решение для поднятия сразу нескольких контейнеров. Его проще поднять, а так же он является нативным решением. Основным его недостатком являются меньшие возможности относительно кубера и отсутсивие динамического масшатбирования проекта, если у нас будет не хватать мощностей.

Kubernetes - это более сложное решение для оркестрации большого количества контейнеров. У него есть множество готовых решений у различных провайдеров. Он чаще встречается на различных проектах, а так же он достаточно гибок в расширении и обновлении контейнеров. Он может предоставить нам инструментарии бесшовного релиза приложения без его остановки, что не может дать docker без ansible.