Jak Dáme Jídlo migrovalo na Google Cloud Platform a zachránilo tisíce Čechů od párků a mražené pizzy.
Analýza a problém
Dáme Jídlo, česká odnož Delivery Hero, začala chvíli po vstupu na český trh raketově růst. Počty hladových návštěvníků byly čím dál větší, a to zejména v čase obědů a večeří, kdy si aplikaci otevřely tisíce lidí s vidinou šťavnatého burgeru.
Dáme Jídlo ale nebylo na podobné situace infrastrukturně připraveno. Stávalo se proto občas, že aplikace nápor návštěvníků nevydržela. Na zákazníky pak čekalo nemilé překvapení v podobě tzv. “párků”, které se na displeji spolu s chybovou hláškou objeví vždy, když je aplikace nefunkční. Vzniklou situaci bylo potřeba řešit a v Dáme Jídlo se rozhodli migrovat z nedostatečného on-premise řešení na Google Cloud Platform (GCP).
“Naše servery byly často dlouhou dobu nedostupné, přicházeli jsme tak o objednávky i peníze. Kdykoliv nás postihl výpadek, museli jsme to řešit s DevOps týmem datacentra. Zabralo to neuvěřitelné množství času a stálo nás to spoustu peněz, zejména když výpadky přicházely během oběda nebo večeře.”
Petra Tříšková - tehdejší vedoucí vývoje v Dáme Jídlo
Řešení
Pro Dáme Jídlo bylo důležité celou aplikaci stabilizovat, zajistit rychlejší deployment a optimalizovat CI/CD pipeline. Společně jsme se proto rozhodli nejen pro klasickou lift and shift migraci do GCP, ale také na redesignu architektury aplikace a přechodu na Google Kubernetes Engine (GKE). Ten umožňuje automaticky škálovat podle potřebného výkonu a ve špičce se tak téměř nemůže stát, že by aplikace spadla.
Výsledkem tak bylo:
- 95% pokles výpadků (tzn. z hodiny měsíčně na několik minut)
- Konec finančních ztrát a větší konkurenceschopnost
- Stabilní infrastruktura s výhodným obousměrným škálováním v závislosti na velikosti trafficu
“Původně jsem chtěla jen to, aby byly servery dostupnější a spolehlivější. Teď jsme ale ve fázi, kdy můžeme škálovat nahoru i dolů podle potřeby. Jsme mnohem dál, než jsem čekala!”
Petra Tříšková - tehdejší vedoucí vývoje v Dáme Jídlo
Technické řešení
- Lift and shift migrace na Google Cloud Platform
- Google Cloud Load Balancing, který umožnil webu i aplikaci plynulý běh nezávisle na vytížení serverů
- Google Cloud Storage - bezpečná varianta pro ukládání statických dat jako jsou například firemní dokumenty nebo obrázky.
- Google Identity and Management - technologie, díky které lze jednoduše rozdávat či omezovat přístupy. Výrazně zlepšuje bezpečnost dat.
- Google Kubernetes Engine (GKE) - kompletní redesign architektury aplikace, jehož výsledkem byl spolehlivý distribuovaný systém, který se opírá o cloud-native principy a běží na kontejnerech v rámci GKE. Díky tomu může nyní probíhat automatické škálování nahoru i dolů ve vztahu k vytížení pro co nejvýhodnější provoz s minimem latence.
- Google Stackdriver Monitoring - umožnil nahlédnout do dění na serverech a poukázat na případné problémy, které by mohly nastat. Revolgy posléze tento systém propojili se Slackem a SMS pro 24/7 alerting, což do infrastruktury přineslo nový, transparentnější nádech.
“Zavedením nových technologií se zásadně zlepšila administrační i finanční stránka věci. Díky GCP konečně vidím v reálném čase do výkonu serverů, jak jsou používány a kolik přesně daná služby stojí. Přechod na GCP zásadně snížil náklady na naši infrastrukturu, protože už nemusíme platit data centru za DevOps nebo extra monitoring.”
Petra Tříšková - tehdejší vedoucí vývoje v Dáme Jídlo