Konec párků v Čechách.

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

Img

Ř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

Img

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