Jak napsat napoprve software pro 1 milion konkurentnich spojeni?

Jeden z velkych tasku ktery nas bavi v c2s je to, jak komunikovat s bezpecnostnima kamerama ktere jsou ve vnitrni siti (tzn. za firewallem a za NATem), tzn. nemaji verejnou IP adresu.

Potrebujeme totiz davat kamere prikazy, kdy ma k nam do cloudu posilat video, kdy ma s vysilanim prestat atp. Ted to vsech nasich 2.000 zakazniku vyresilo tak, ze jim jejich ajtak udelal port-forwarding, coz ale ne vzdy jde a rozhodne to neni user friendly reseni.

Nastesti tohle pali i primo vyrobce kamer (i oni chteji zivot svym zakaznikum zjednodusovat), takze jich mame uz asi 6, kteri chteji primo do firmware novych modelu integrovat neco cemu rikame vznesene “click2stream zero click connector”. Nekteri vyrobci to uz resi (viz d-link cloud cameras), ale vite jak to je s pouzitelnosti software, ktery dela hardwarova firma (staci se podivat na administracni rozhrani vetsiny domacich routeru). Takze pracujeme na upravach firmare tech kamer tak, abychom ten problem vyresili.

Jenze je to trosku orisek, protoze firmware kamery ma trosku jiny zivotni cyklus nez treba web – update firmware je rizikova zalezitost, ktera vyzaduje spolupraci zakaznika – a plno zakazniku funguje s roky starou verzi. Takze kdyz se nam tam dostane nejaky bug, ktery treba pretezuje nase servery nebo ma bezpecnostni diru, bude to problem. Tady si zadny “good enough” nebo MPV nemuzeme dovolit. Navic, navrhnout tohle pro 1 milion konkurentnich spojeni (tolik planujeme mit kamer par let) je neco, co moc lidi v CR neresilo. Asi proto nam vetsina lidi rikala ze je to za rozumne penize nemozne 🙂

A tak uz pomerne dlouhou dobu planujeme a analyzujeme, nechavame si z ruznych stran oponovat ruzna reseni.. a do programovani jsme se pustili teprve ted.

Ruzne UPnP a dalsi formy NAT traversovani jsme zavrhli, protoze tyhle veci vyzaduji podporu routeru a vstricneho spravce site (co neni moc paranoidni), takze tudy cesta nevede. Zavrhli jsme i to, ze by se kamery prubezne dotazovaly nasich serveru na nejake prikazy – ono vyrizovat treba 1 mil dotazu za vterinu nam neprijde uplne elegantni cesta.

Nakonec se vyber zuzil na dve varianty: OpenVPN + RTSP spojeni nebo XMPP/BOSH + RTMP. Pro OpenVPN uz mame hotovy prototyp (diky Pavle!) a nejakych 12 serveru by to melo zvladnout. Na XMPP prototypu se pracuje a zatim je to nas favorit, protoze jabber server zvladne i 500K konkurentnich spojeni, jabber klient bude (zrejme) mene narocnejsi na vykon atp.

Tak uvidime. Musime vymyslet treba to, aby na nas ty kamery neudelaly vsechny najednou DOS utok kdyz nam treba spadne na chvili cloud, nebo deaktivaci kamery s nasim cloudem v pripade ze kameru si nekdo koupi z druhe ruky atp.

Ja rikam porad, ze kdyz uz nic jineho, tak ze delani startupu je zabava – a presne tohle k tomu patri 🙂

PS: Jinak porad hairujeme (accounty, backend vyvojare), nezavislym vyvojarum nabizime vlozeni jejich audio/video aplikace do naseho app-store a samozrejme si radi popovidame s investory 🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s