Na začátku dostal tým svůj čistý prostor v cloudu, který si musel připravit (naprogramovat si celý deploy) a celkem volné ruce v tom, jak se rozhodne celý projekt uchopit. BlueGhost implementoval několik microservices pro různé části Heureky. Za tím účelem si vytvořil vlastní knihovnu, kterou poté využíval napříč všemi službami. Jednotlivé části Heureky tak, jak ji známe, nyní nově fungují jako samostatné služby, které spolu komunikují přes REST API nebo přes asynchronní API.
Heureka má poměrně propracovaný stack a jednotlivým týmům nechává volnost v tom, který programovací jazyk pro danou entitu použijí. V řešení od BlueGhostu se tak objevuje například React, Symfony nebo rychlý framework Slim, vhodný pro API. Jiné týmy naopak mohou pracovat například v Pythonu, Golangu nebo TypeScriptu a díky použité architekture to vzájemnou práci nijak neohrozí.
V rámci vývoje byla pro úspěch klíčová komunikace mezi týmy, specifikace vzájemných požadavků a jejich naplnění. Tým Modrého ducha spolupracoval například s týmy na SEO, Search, Product detail, Image, Road to product, Partner, Mail service a dalšími. Celý vývoj probíhal agilně a v průběhu bylo nutné vypořádávat přicházející požadavky z ostatních týmů. Z toho důvodu se obsah a funkce entit průběžně měnily a doplňovaly o nové.
Microservices: Obsahují business logiku entit a poskytují API pro UI komponenty. Jsou psané v PHP 8.2 s použitím Doctrine a Slim frameworku. Jedním z hlavních požadavků byla rychlost, proto se místo běžných webserverů (apache, nginx) použil RoadRunner, se kterým dosahujeme skvělých reakčních časů.
Vedle klasického API poskytují microservices i asyncAPI a přes RabbitMQ messages komunikují s jinými entitami v rámci Heureka ekosystému. Microservices běží v GCP v docker kontejnerech orchestrovaných přes Kubernetes. Nasazení do prostředí probíhá automaticky pomocí GitLab CI a nástroje Helm. Infrastruktura (MySQL) a ostatní služby jsou zapsané dle principů IaC pomocí Terraformu. Služby jsou monitorované přes nástroje Prometheus a Grafana. Dokumentace je v Backstage - automaticky generovaná dle změn v kódu.
UI komponenty: Představují uživatelské rozhraní entit (se kterými komunikují přes API) a vykreslují se jako nedílná součást webu Heureka.cz (i všech ostatních mutací). Komponenty jsou napsané v ReactJS a nastylované v souladu s design systémem Heureky.
Administrace: Slouží správcům k vytváření a editaci článků (Articles) nebo moderování poradny (Questions & Answers). Ke každé entitě jsme dodali její vlastní administrační rozhraní. Jsou napsaná v ReactJS a komunikují s entitou přes microservice API.
Realizace trvala rok a jednalo se o první fázi dlouhodobého projektu. Největší výzvou bylo skloubit všechny entity dohromady a zasadit je společně pod jednu střechu tak, aby vznikl srovnávač, na který jsou uživatelé zvyklí.