Co se skrývá za webem na předpověď počasí aneb Technologické radosti v roce 2018

Je začátek roku 2018. Nové výzvy přicházejí. Úplně nový obor, jiní lidé, jiné technologie. Spousta zábavy a překvapení, které teprve přijdou.

Můj první rok v Meteopressu

Do týmu Meteopressu jsem se přidal začátkem roku 2018. Svedla nás dohromady podivná shoda náhod. Asi osud. Na čem pracujeme a jak jsme se za rok posunuli?

Numerické modely

Numerický model počasí se v Meteopressu počítá posledních deset let. Vždy na dedikovaných strojích umístěných po různých datacentrech nebo teplárnách. Před zhruba rokem byla na stole nabídka na nákup serverů za x stovek tisíc korun. My jsme nakonec vsadili na cloud.

Surový výstup numerického modelu — předpověď teploty.

Otestování různých platforem nám pro (v té době) ideální poměr cena/výkon ukázalo na Google Cloud Platform. Což byl příjemný výsledek, protože chceme používat i další GCP služby a infrastrukturu. Produkčně už jsme převedli část kritických částí Meteopress webu, aby zvládal nápor návštěvníků, kteří se jdou podívat na naše nové radary. Numerické modely v cloudu běží také, ale ještě je potřeba zapracovat na zvýšení interního SLA doběhnutí modelů. O tom, jak využíváme preemptible instance si povíme jindy.

Vyhodnocování numerických modelů

“Jak přesně vám to počítá předpověď počasí?” (dlouhé zamyšlení) “Nejlíp!”

Každá úloha, kde se automaticky zpracovávají a vyhodnocují data, vyžaduje určitý typ vyhodnocení svého výstupu. Nejlépe zcela automatizovaný a zároveň zpětně vylepšující výsledky — když vím, že mi něco nevyšlo, příště se snažím neudělat tu stejnou chybu. Na tomto principu jsou založené veškeré úlohy strojového učení (kdybychom byli méně seriózní periodikum, řekli bychom AI). Ať už se jedná o různé průměrné (někdo říká “zlé”) chyby, nebo odměny za správné vyřešení příkladu.

Jak se ukazuje, v oblasti meteorologie nebo hydrologie se často metodika výpočtu přesnosti předpovědi upravuje podle čísla, které má vyjít na konci. My bychom rádi nastavili pravdivé zrcadlo. Třeba to bude nejdřív bolet, ale až naše Sněhurka dospěje, určitě bude nejkrásnější.

Práce už běží. Naše mladá meteorologická krev pilně pracuje, jak na principu vyhodnocování (to je ta vědecká část), tak na programování celkového řešení, které zpracuje a vizualizuje výstupy. Realtime. Online. Pro všechny. (To je ta hodně praktická část.)

Online interaktivní report s vyhodnocením úspěšnosti numerického modelu — odchylky jedné veličiny v čase

Radary

Od slavnostního 31. 3. 2018 se mohou návštěvníci meteopress.cz podívat na měření srážek pomocí našich vlastních meteorologických radarů. Pro někoho to bylo vyústění dlouhých měsíců organizace a příprav. Pro web to byl teprve začátek.

První veřejné zobrazení radaru a spousta nedokonalostí, na kterých se bude po zbytek roku pracovat.

Nechtěli jsme jít cestou pouhého zobrazení videa složeného ze sekvence snímků radarů, ale dát návštěvníkům možnost zobrazit přesně to, co chtějí. Najít si svoji vesnici a minutu po minutě sledovat, jak se k nim blíží, v parném létě vymodlené, srážky.

Situace v oblasti Prahy v lépe fungujícím UI.

První interaktivní zobrazení radaru na webu obstaral mapový framework Mapbox. Přes veškeré svoje výhody se bohužel ukázalo, že koncová zařízení našich uživatelů nejsou na tuto technologickou webgl dardu zatím připravená. Zpětná vazba byla občas dost krutá, a tak se snažíme pro tento rok připravit řešení, které bude fungovat i na low-end mobilních zařízeních. Snad se to v záplavě dalších věcí úspěšně povede.

Blesky

Spolu s meteoradary jsme instalovali také bleskoměry. Signály z těchto krabiček zpracovávají kolegové z Maďarska a my jsme tato naše měření poprvé veřejně na webu ukázali v srpnu.

Blesky v reálném čase na území České republiky, Slovenska, Maďarska a okolí.

Opět se jedná o frontendovou výzvu. Na mapě je potřeba graficky zajímavě ukázat stovky tisíc proběhlých blesků a zároveň nárazově doplňovat i tisíc nových blesků za sekundu. Prohlížeč přitom nesmí kolabovat pod náporem dat.

Prototyp mají opět na svědomí Mapbox mapy a veškeré blesky (různě barevné tečky) jsou zcela interaktivní. Nové blesky vytvářejí pulzní vlny s malou animací blesku a protože si rádi hrajeme, tak například každý klik do mapy vyrobí blesk — asi jen na mapě, na nebe jsme se zatím nedívali.

Nový web

Obličej, který ukazujeme světu. Návštěva plastické chirurgie už byla potřeba.

Přes soutěž organizovanou Czechdesignem, najmutí kodérů a následné menší (a občas větší) porodní bolesti s napojováním webu na datové zdroje, jsme spustili web, který vypadá k světu. Práce tím rozhodně nekončí, naopak začíná, otevřelo se nám spoustu nových možností. Sbíráme zpětnou vazbu, pokračujeme v krasojízdě.

Hlavní stránka webu jednoho slunného rána

Víme, že spoustu věcí je špatně. Některé informace a data, co máme u nás k dispozici, nejsou dostatečně vidět, jiné nejsou ideálně zobrazené a některé zatím chybí úplně. Rychlost načítání a velikost stránky přesahuje zdravé meze svižného webu — tento rok proto výrazněji proměníme architekturu směrem ke staticky generovanému webu; části zobrazující radar už takto fungují a nese to své ovoce.

Infrastruktura a automatizace

Řádnou výzvou celého roku 2018 bylo vytvoření a nastavení způsobu provozování infrastruktury. Meteopress se mění a rozrůstá do nových oblastí meteorologie, s tím se vyvíjí i přístup v oblasti technologické. Nové služby běží v Google cloudu, kam se i postupně přesouvají některé existující služby a využití nededikované infrastruktury tak postupně narůstá.

Není nás mnoho, i proto si správu čehokoliv snažíme co nejvíce usnadnit a automatizovat. Automatické nasazování kódu, monitoring, alerting apod. začínají být samozřejmou součástí vývoje. Částečně využíváme serverless platformy. (Nebo hodně? Jak se díváme na to, co je serverless? O tom jindy.)

Díky využití globální infrastruktury velkého poskytovatele nám například skokový charakter návštěvnosti webu nedělá vrásky na čele ze starostí o škálování serverů. Můžeme se spolehnout, že web poběží i pod největším náporem. A dnes je vše jen začátek, chceme růst. Hodně.

Během letních bouřek může část dne síťový provoz dosahovat i čtvrt gigabitu za sekundu, nebo mohou z minuty na minutu náš web zobrazit tisíce nových lidí.

Důležitým aspektem přesunu do cloudu je také změna přemýšlení nad útratou za veškeré služby. Pricing vypadá v tabulkách jako pár halířů, ale halíře dělají talíře, to ví i každá babička. My tento aspekt trochu podcenili. Poučili se a dáváme si pozor. Snižování nákladů bude dál pokračovat i v roce 2019.

Automatizovat se dařilo nejenom v oblasti infrastruktury a programování, ale také v pravidelných činnostech jako je např. posílání faktur těm správným lidem, namísto každoměsíčního kolečka exportu a přeposílání pdf, nebo naopak fakturace klientům probíhá o něco pohodlněji.

Varování

Rozbily vám kroupy auto? Meteopress zajišťuje službu varování před nebezpečnými meteorologickými jevy. Tisíce klientů obsluhované pojišťovny se předem dozví, že hrozí nebezpečí krup, a mohou si tak svoje auto přeparkovat na bezpečné místo. Nebo prostě jen dorazit domů dřív, protože přijde přívalový déšť.

SWAPS [systém včasného varování a prevence škod] je systém, kde profesionální meteorologové zadávají oblast a typ varování a předají systému k rozeslání. Tento systém jsme od dodavatele přesunuli pod vlastní správu v cloudu. Další vývoj pak trochu stál, což je škoda, plány využití máme nemalé. Třeba i pro uživatele naší mobilní aplikace.

Aplikace

Máme.

“A mohla bych ji vidět?”

Jasně.

Naše nová …ehm, první aplikace.

K dokončení veřejně testovatelné verze chybí pár drobností. Za radost se dá považovat, že se práce na ní pořádně posunuly (po jiném slavném rozjezdu a rychlém konci v minulém roce).

Mapy

Velkou část našich dat zobrazujeme v interaktivních mapách a pro ně si sami generujeme a provozujeme mapové podklady. Možná zbytečnost, ale dokázali jsme tak obejít omezení, která by nás limitovala při využívání služby třetí strany.

Zásadní pro nás byly a jsou projekty openmaptiles, resp. maptiler nad daty z OSM a opensource tile-server, díky kterému jsme mohli jednoduše nasadit na míru upravené vektorové podklady pro dříve zmíněné Mapbox mapy.

Nyní jsme bez serveru a vyrenderované mapové dlaždice máme nahrané na Google Cloud Storage. Je to pohodlnější, ale zatím ukazujeme především oblast střední Evropy, uvidíme, co bude dál.

Největší radost

Historicky první CI/CD deployment, který v Meteopressu kdy proběhl.

Git push a chvíle napětí. Za pár minut je nová verze webové aplikace automaticky nasazená a dostupná pro všechny návštěvníky. Standard. Snad už.

(Populárně pojmenováno jako “CI/CD deployment”, ale dá se tomu tak ve skutečnosti říkat? Možná si o tom ještě něco povíme.)

2019… co bude dál?

Rok dalších velkých výzev.

Namátkou pár z nich:

💥 zobrazování výstupů našich modelů 💥 vlastní meteostanice a senzory na znečištění 💥 lepší UI pro radary 💥 mobilní aplikace 💥 varování — do appky i na web 💥 API 💥 Keboola komponenta 💥 lepší B2B výstupy 💥 nowcasting radaru pomocí konvolučních neuronových sítí…

Jak vždy říká podpora Googlu “nic vám neslibujeme a žádné termíny nejsou”.

Osobně mám radost, že Meteopress chytil druhou mízu a zároveň máme možnost využít nové technologie, které nám usnadňují se rychle posouvat vpřed. Další rok na palubě bude určitě opět stát za to!

Novinky v průběhu dalšího roku můžete sledovat na Twitteru: https://twitter.com/KubaBartel

--

--