KOLCON: tu pravou hodnotu poznas ve chvili, kdy se setkas s use-casem, ktery se tim zpusobem dat vyresit lip nez jakymkoliv jinym zpusobem. Priklad - mame monolit appku Python2+Vuejs bezici na legacy AppEngine (1st gen). Pro beh to potrebuje specifickou verzi GCloud SDK, Pythonu a dalsich zavislosti. Chceme to prepsat, ale nemuzeme zastavit novy vyvoj na x mesicu jen abychom ziskali vicemene 1:1 kopii toho co jsme meli. Takze to bezi side-by-side s novym Python3 backendem, kde postupne vznikaji nove API endpointy a presouvaji se tam ty existujici z Python2. Oba backendy idealne potrebuji pristup k te same databazi. A vedle toho k tomu piseme jeste novy frontend. Aby tohle vsechno u sebe dokazal vyvojar nainstalovat, nakonfigurovat a spustit, tak by tim stravil v lepsim pripade minimalne 2 dny, a to za predpokladu ze to dela na nejakym *nix systemu.
S Dockerem jsou to 4 predkonfigurovany kontejnery (DB, Python2, Python3, Frontend), ktery se spusti jednim `docker-compose` prikazem a je to. Vsechno je reprodukovatelny, takze se nedostanes do situace, kdy to jednomu vyvojari funguje na jeho stroji, druhymu ne a zkus na dalku zjistit v cem je problem.
Co se tyce deploymentu do produkce, v tomhle mi Docker porad prijde lepsi nez starsi zpusob, kdy se (treba) pres Ansible neco nekam uploadovalo, buildilo, restartovalo a doufalo se. Ale zminovany GCP AppEngine mi prijde jeste o krok dal. Je to sice vendor lockin, ale jediny co je potreba je 1 yaml soubor s prehlednou konfiguraci aplikace, popr. jednoduchy pravidla jak to ma skalovat (min/max pocet bezicich instanci, cpu usage, requestu...) a hotovo. Uplne tim odpada potreba psat Dockerfiles nebo resit veci jako Kubernetes, protoze to je temer fulltime job pro dalsiho cloveka.