FAQ
Zde je soubor nejčastějších dotazů k Datové platformě, pokud tento článek nezodpoví na vaše otázky, napište nám na golemio@operatorict.cz
Obecné
Plní vaše řešení funkci IoT platformy ve smyslu sběru dat ze SigFox, Lora a dalších sítí?
Nikoliv. V Praze jsme se dosud setkávali v projektech vždy s dodavateli poskytující standardní REST API skrze HTTP, není ani na pořadu dne ji využívat. Nicméně díky modularní architektuře platformy je možné kdykoliv předřadit existující řešení poskytující funkci IoT platformy pro komunikaci na odpovídajících IoT sítích.
Kdy bude celá Datová platforma Open Source?
Začali jsme publikovat zdrojové kódy v polovině roku 2019 postupně po jednotlivých modulech. V dalším průběhu roku 2019 je v plánu zveřejnit kompletní soubor modulů platformy.
Je připraven software k použití i pro nasazení v jiných městech?
První fází je zveřejnit moduly tak, jak byly navrženy a jsou používány v Praze, v druhé fázi (rok 2020) se nebráníme snahám zobecnit řešení a umožnit jednoduše nasadit software i pro jiná města. Nemělo by to být těžké, s tímto cílem jsme řešení od počátku navrhovali.
Je to zadarmo?
Publikovali jsme kódy pod licencí MIT, odpověď tedy zní ano, kódy můžete vzít a používat i pro komerční účely zadarmo v rámci podmínek této volné licence. Chcete-li si přečíst o tom, co MIT obnáší, doporučujeme článek na choosealicense.com/licenses/mit/.
Funguje to někde?
Ano, samozřejmě, jde o řešení, které aktuálně používá Praha pro integraci městských dat.
Architektura
Máte orchestraci přes Docker Swarm, uvažovali jste o Kubernetes?
Ano, plánujeme to, je to cílový stav, bohužel zatím na to nebyl čas/kapacity a vystačíme si zatím s (jednodušším) Swarmem.
Máte bezstavové server aplikace, kde si udržujete stav?
V databázi/message brokeru.
Znamená to, že některé různé moduly jsou závislé na stejné databázi a nejsou to tedy samostatné nezávislé microservices?
Ano. Databázi máme společnou, minimálně pro output-gateway, integration-engine. Permission-proxy a uživatelská data jsou uloženy v samostatné oddělené relační databázi.
Proč jsou tedy ty aplikace vůbec oddělené?
Zejména kvůli škálovatelnosti a samostatné nasaditelnosti. Pokud upravíme něco na výstupním API, deployneme pouze nové output-gateway. A škálovat můžeme také samostatně, např. vrstvu pro příjem dat (input-gateway), kde můžeme nasadit např. 10x více instancí nezávisle, pokud nám začne chodit větší množství dat.
Permission-proxy - proč jste nepoužili nějaké hotové řešení API gateway, které řeší přístupová práva
Uvažovali jsme o tom dlouho, ale nakonec naše funkční požadavky žádné dostupné řešení nepokrývalo (specifické případy přidělení práv např. přímo na konkrétní data v databázi, ne jen na API URL). Nicméně permission-proxy je stále nahraditelná jinou vrstvou na zabezpečení, pokud tyto naše specifické požadavky nejsou potřeba.
Jak nasazujete nové verze, pokud máte více modulů závislých na jedné databázi?
Menší (minor a patch) verze nasazujeme průběžně bez výpadku po jednotlivých modulech. Pokud nová verze nemění strukturu stávajících dat v databázi, nebo neuvádí zpětně nekompatibilní změnu, není problém (přidání nových dat, integrace nové datové sady, nová funkcionalita, bugfixy). Pokud se jedná o (major) verzi, která “rozbíjí” předchozí strukturu databáze, máme nastavený proces nasazení a povýšení verze. API jsou potom dostupné pod novou URL se suffixem např. /v2/
.