REF Reference · případová studie
Meteopress STORM
Výstrahy před bouřkami pro stovky tisíc lidí
- Klient
- Meteopress
- Platformy
- Web, mobilní web, cloud & serverless
- Spolupráce
- Agilní vývoj projektu
01 Technologie · pod kapotou
02 Případová studie · příběh
Včasná výstraha před bouřkou znamená rozdíl mezi klidným večerem a rozbitým čelním sklem. Pro platformu STORM od Meteopressu jsme postavili serverless systém, který mění výstrahy meteorologů v mobilní notifikace a doručuje je stovkám tisíc uživatelů v Česku.
Kdo je Meteopress?
Meteopress je česká meteorologická firma, jejíž radary stojí po celém světě, od Afriky až po Tongu. STORM je její produkt pro Česko: výstrahy na něm vydávají profesionální meteorologové a systém je mění v mobilní notifikace pro lidi, kterým bouřka míří do cesty. Bouřky se často dají předpovědět jen necelou hodinu předem, platformě tak zbývají minuty na to, aby varovala stovky tisíc uživatelů.
Potřebovali jsme platformu, která zvládne budoucí růst a automaticky se škáluje, jakmile počet událostí prudce vzroste. A přesně takovou jsme od FlowUp dostali.
Výzvy
Cloudové platformy se umí škálovat nahoru a dolů v řádu sekund, ustát provozní špičky ale přesto vyžaduje péči. Chtěli jsme mít jistotu, že každý dostane svou výstrahu včas, aniž bychom platili za vysoko naškálované databáze, které mezi bouřkami jen zahálí.
Systém musí umět škálovat na nulu. Klidně několik hodin nevyjde jediná výstraha a nechat celý systém tou dobou běžet by bylo čiré plýtvání penězi i energií.
Počítačová část
Platformu jsme od základu postavili na serverless technologiích: API, databáze i message bus se škálují na nulu, jen jedna malá SQL instance zůstává kvůli synchronizaci. API běží na Google App Engine a výstrahy ukládají do Firestore; distribuované Cloud Tasks pak každou zpracují s exactly-once delivery a BigQuery uchovává statistiky o každé výstraze pro validaci a fakturaci.
Každou půlnoc spouští Cloud Scheduler (managed cron od Google Cloudu) automatické zálohy, aby případný výpadek nebo incident stál co nejméně dat.
SMS výstrahy odesíláme přes třetí strany a každé takové API má rate limit (řekněme 60 requestů za minutu). Cloud Tasks náš provoz přiškrtí přesně podle něj, takže výstrahy odchází plnou rychlostí a nikoho neDDoSujeme.
Výsledek
STORM splnil oba sliby: každá výstraha dorazí k uživatelům během pár minut a mezi bouřkami se systém škáluje na nulu a nestojí skoro nic.
A ukázalo se, že šlo jen o začátek. Na STORM jsme navázali další spoluprací a dnes s Meteopressem dlouhodobě vyvíjíme jeho další produkty.
03 Produkt · obrazovky

