Nie chodzi o Docker ani inne technologie konteneryzacji.
Kontenery takie jak Docker, rkt itp. To tylko sposób na dostarczenie aplikacji w podobny sposób jak statyczny plik binarny. Budujesz swoje wdrożenie, które zawiera wszystko, czego potrzebuje w środku, a użytkownik końcowy nie potrzebuje niczego więcej niż środowiska wykonawczego.
Te rozwiązania są podobne do grubych plików JAR w Javie, gdzie wszystko, czego potrzebujesz (teoretycznie), to po prostu preinstalowane środowisko uruchomieniowe (JRE) i wszystko, co Just Works ™.
Powodem, dla którego programiści muszą zrozumieć (nie muszą nauczyć się obsługi takiego narzędzia, tylko dlatego, że jest to potrzebne) narzędzia do aranżacji, jest to, że pozwala to mieć pewne zalety w porównaniu z „tradycyjnym” wdrożeniem.
Bydło, nie zwierzęta domowe
EngineYard napisał na ten temat dobry artykuł. Chodzi o to, że kiedy twój serwer umiera, to wzruszasz ramionami i czekasz, aż pojawi się nowy. Traktujesz je jak bydło, masz dziesiątki, setki, tysiące z nich biegających, a kiedy jeden padnie, ani ty, ani twoi klienci nie powinniście być tego świadomi.
Narzędzia do aranżacji osiągają to poprzez monitorowanie statusu wszystkich aplikacji (zbiorników / zadań, cokolwiek) w klastrze, a gdy zobaczy, że jeden z serwerów przestaje odpowiadać (przestaje działać), automatycznie przenosi wszystkie aplikacje działające na tym serwerze w inne miejsce.
Lepsze wykorzystanie zasobów
Dzięki aranżacji możesz uruchamiać wiele aplikacji na jednym serwerze, a orkiestrator będzie śledził Twoje zasoby. W razie potrzeby zmieni układ aplikacji.
Niezmienna infrastruktura
Dzięki automatycznej obsłudze przełączania awaryjnego w orkiestratorach możesz uruchamiać własne obrazy w chmurze bez zmian. Kiedy będziesz potrzebować aktualizacji, po prostu zbuduj nowy obraz, ustaw konfigurację uruchamiania, aby używała tego teraz i po prostu rzuć. Wszystko zostanie załatwione za Ciebie:
- Utwórz nowy serwer z nową konfiguracją.
- Zabij jeden działający serwer.
- Twój orkiestrator przeniesie wszystko na inne maszyny (w tym nowe).
- Jeśli pozostały jakieś stare serwery, przejdź do 1.
Prostsze operacje
- Niewystarczające zasoby? Dodaj nową maszynę do klastra.
- Potrzebujesz więcej instancji aplikacji? Zwiększ liczbę i idź dalej.
- Monitorowanie? Gotowe.
- Zarządzanie logami? Gotowe.
- Tajniki? Zgadnij co.
TL; DR Cały punkt nie dotyczy Dockera, ale orkiestracji. Docker jest tylko rozszerzoną wersją plików JAR tarball / fat, która jest wymagana do prawidłowej aranżacji.