2015-05-30 18 views
23

Wydaje mi się, że oba narzędzia służą do łatwej instalacji i automatycznej konfiguracji aplikacji.Jaka jest różnica między Docker Container a Ansible Playbook?

Jednak w ograniczonym zakresie korzystałem z Docker i nie korzystałem w ogóle z Ansible. Jestem trochę zdezorientowany.

Ilekroć szukam porównania między tymi dwiema technologiami, znajduję szczegóły dotyczące tego, jak korzystać z tych technologii w połączeniu.

Odpowiedz

29

Istnieje wiele powodów, większość artykułów mówią o używanie ich razem.

Pomyśl o Ansible jako sposobie zainstalowania i skonfigurowania urządzenia, w którym możesz wrócić i ulepszyć każdy krok tej instalacji i konfiguracji w przyszłości. Następnie możesz skalować tę koncepcję na wiele maszyn, tak jak to tylko możliwe.

Kluczową różnicą, w której funkcja Ansible ma tę zaletę, jest to, że nie można po prostu zarządzać wewnętrznymi częściami urządzenia, ale także zarządzać innymi systemami, takimi jak sieć, DNS, monitorowanie itp. Otaczającymi urządzenie.

Budowanie wielu maszyn za pomocą Ansible zajmuje tyle samo czasu, aby wykonać 50 maszyn, jak robi to 1, ponieważ wszystkie 50 będą tworzone krok po kroku. Jeśli korzystasz z toczącego się wdrożenia w wielu środowiskach, jego kompilacja krok po kroku zajmuje trochę czasu.

Teraz pomyśl o tym, że Docker zbudował jedną z tych maszyn - zainstalowaną i skonfigurowaną i gotową do wdrożenia wszędzie tam, gdzie jest dostępny system dokowania (który jest obecnie prawie wszędzie). Wadą jest to, że nie można zarządzać wszystkimi innymi aspektami wymaganymi w związku z faktem, że pojemniki dokowane rzeczywiście działają, a ich poprawianie na dłuższą metę nie jest tak zabawne, jak się wydaje, jeśli nie zautomatyzowano konfiguracji (stąd tutaj pomaga Ansible).

Skalowanie od 1 do 50 maszyn dokerów po utworzeniu obrazu początkowego jest oślepiająco szybkie w porównaniu z podejściem krok po kroku. Odbieranie trwa, co jest najbardziej oczywiste podczas stopniowego wdrażania wielu maszyn w mniejszych grupach.

Każda ma swoje wady pod względem zdolności lub szybkości. Połącz je jednak i to może być całkiem niesamowite. Bez wątpienia w przypadku większości artykułów, które już przeczytałeś, polecam użycie Ansible do stworzenia (i aktualizacji) podstawowego kontenera (kontenerów) Dockera, a następnie użycie Ansible do zarządzania wdrożeniem dowolnej skali kontenerów, które musisz zaspokoić wykorzystanie twoich aplikacji.

+1

Czy miałeś na myśli Dockera ?: "... a następnie używając Ansible do zarządzania wdrażaniem ...". Jeśli nie, to czy możesz wyjaśnić, jak używać Ansible do zarządzania wdrażaniem dowolnej skali? Dzięki – NeverEndingQueue

+0

"nie możesz zarządzać wszystkimi innymi aspektami, które są potrzebne przy tworzeniu kontenerów dokujowych, a ich poprawianie na dłuższą metę nie jest aż tak zabawne, jak się wydaje, jeśli nie zautomatyzowałeś konfiguracji (stąd pomaga tutaj Ansible) . " Dlatego też można tu przyjrzeć się kernernetes (platforma do zarządzania kontenerowymi obciążeniami i usługami, która ułatwia zarówno deklaratywną konfigurację i automatyzację.). https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/ –