В чем разница между Docker-контейнером и Ansible Playbook?

Мне кажется, что оба инструмента используются для простой установки и автоматической настройки приложений.

Однако я ограниченно использовал Docker и вообще не использовал Ansible. Так что я немного запутался.

Всякий раз, когда я ищу сравнение между этими двумя технологиями, я нахожу подробности о том, как использовать эти технологии в комбинации.


person Steven Roose    schedule 30.05.2015    source источник


Ответы (2)


Есть много причин, по которым в большинстве статей говорится об их совместном использовании.

Думайте об Ansible как о способе установки и настройки машины, на которой вы можете вернуться и настроить любой отдельный шаг этой установки и настройки в будущем. Затем вы можете масштабировать эту концепцию на многие машины, которыми сможете управлять.

Ключевое отличие, в котором Ansible имеет преимущество, заключается в том, что он может не только управлять внутренними компонентами машины, но также управлять другими системами, такими как сеть, DNS, мониторинг и т. Д., Которые окружают машину.

Создание большого количества машин с помощью Ansible занимает примерно столько же времени, сколько и 50 машин, и 1, поскольку все 50 будут созданы шаг за шагом. Если вы запускаете скользящее развертывание в нескольких средах, его пошаговая сборка занимает время.

Теперь представьте, что Docker построил одну из этих отдельных машин - установленную, настроенную и готовую к развертыванию везде, где доступна система Docker (что в наши дни почти везде). Недостатком здесь является то, что вы не можете управлять всеми остальными аспектами, необходимыми для того, чтобы докер-контейнеры действительно работали, и их длительная настройка не так интересна, как кажется, если вы не автоматизировали конфигурацию (следовательно, здесь помогает Ansible. ).

Масштабирование от 1 до 50 Docker-машин после того, как вы уже создали начальный образ, невероятно быстро по сравнению с пошаговым подходом, который использует Ansible, и это наиболее очевидно во время последовательного развертывания многих машин в меньших группах.

У каждого есть свои недостатки либо в способностях, либо в скорости. Однако объедините их оба, и это может быть довольно круто. Как, несомненно, в большинстве статей, которые вы уже прочитали, я бы порекомендовал использовать Ansible для создания (и обновления) ваших базовых контейнеров Docker, а затем использовать Ansible для управления развертыванием любого масштаба контейнеров, который вам нужен. использование ваших приложений.

person keba    schedule 30.05.2015
comment
Вы имели в виду Docker ?: ... а затем использование Ansible для управления развертыванием ... Если нет, можете ли вы объяснить, как использовать Ansible для управления развертыванием любого масштаба? Спасибо - person NeverEndingQueue; 05.11.2016
comment
вы не можете управлять всеми остальными аспектами, необходимыми для того, чтобы докер-контейнеры действительно работали, и их настройка в долгосрочной перспективе не так интересна, как кажется, если вы не автоматизировали конфигурацию (следовательно, здесь помогает Ansible). И, следовательно, kubernetes (платформа для управления контейнерными рабочими нагрузками и службами, которая упрощает декларативную настройку и автоматизацию) также может прийти сюда. kubernetes.io/docs/concepts/overview/what-is-kubernetes - person Manojkumar Khotele; 12.02.2018

Это совершенно разные вещи. Ansible используется для автоматизации настройки и управления машинами / контейнерами, а Docker - это облегченная контейнерная система для Linux.

http://www.ansible.com/home

https://www.docker.com/

person errata    schedule 30.05.2015