Zlepšovanie produktu, nepretržitá prevádzka, kapacita a celosvetový dosah je technologická výzva. Viac nám o tom, ako Slido funguje pod kapotou, porozprávali Števo Chromik, VP of IT Operations a Ľubo Drobný, Head of Engineering.
Števo pracuje v Slido od začiatku 2016. Za posledných 10 rokov robil všeličo. Zašpinil si ruky od prachu v klasických data centrách, zaoberal sa cloudovou architektúrou vysokodostupných riešení, fušoval do projektového manažmentu a začítal sa aj do európskej legislatívy a biznis kontraktov. V súčasnosti je zodpovedný za stratégiu, efektivitu, spoľahlivosť a bezpečnosť Slido IT Operations.

Ľubo je expert na dynamiku technologických tímov a organizáciu ich práce. 15 rokov sa venoval programovaniu a analýze riešení. Neskôr sa popasoval s rozbehnutím vývojárskeho tímu pre švajčiarsky start-up a implementáciou agile v korporácii. Dnes úspešne vedie náš technologický tím.
V Slido pracuje okolo 150 ľudí, koľkí z nich sa primárne venujú vývoju produktu?
Je to asi 50 ľudí rôznych profesií: od produkt manažmentu, cez dizajn, grafiku, testing až po programovanie a infraštruktúru. Vyvíjame vlastný produkt, o ktorý sa aj staráme, takže je to tímová hra.
Slido má svojich ľudí po celom svete, kde sa však robí vývoj?
Väčšina vývojárov je v Bratislave, no niektorí kolegovia pracujú na diaľku alebo nomádujú po svete (Nitra, Brno, Praha, Štokholm, Londýn, San Francisco, Bali...). Práca z domu či z coworkingu je dnes uz bežná vec, takže to berieme ako samozrejmosť. Zhodneme sa však, že časový posun, komunikačné nástroje a možnosti internetu sú veci, s ktorými potrebujeme niekedy zápasiť, aby sme boli efektívni.
Ako sú vývojári organizovaní do tímov?
V podstate je to matica. Vertikálny pohľad tvoria tzv. feature tímy, kde sú zastúpení všetci, ktorí sú potrební, aby daná funkcionalita mohla byť uvedená do produkcie. Takýto tím je vedený produkt manažérom (cross-functional team). Horizontálny pohľad, čiže expertíza, je riadená technickým lídrom alebo softvérovým architektom.
Zistili sme, že medzi-tímová koordinácia je často kameňom úrazu, takže sa ju snažíme eliminovať. Ideálne je, ak sú tímy autonómne a nepotrebujú sa synchronizovať ohľadom úloh a plánov. Na druhej strane však vidíme, že podpora komunikácie na úrovni expertízy výrazne pomáha vzdelávaniu, štandardizácii a experimentovaniu.
Zdá sa, že nad organizáciou práce intenzívne rozmýšľate. Často sa v tomto smere skloňuje slovo agile, čo to vlastne znamená a ako je to u vás?
Agile sa teraz používa ako buzzword, no často neznamená nič konkrétne. V tom lepšom prípade si každá firma nastaví svoju implementáciu “agile” podľa aktuálnych potrieb, v tom horšom skopíruje len nejaký múdry článok na internete, bez ohľadu na okolnosti a dúfa, že to zafunguje.
Z tohto pohľadu sa nesnažíme robiť agile, no byť agilní. Robíme vlastný produkt a jedine naši zákazníci ovplyvňujú, čo a ako budeme robiť ďalej. Preto agilitu vnímame hlavne cez jej základné princípy - schopnosť počúvať, čo naši zákazníci potrebujú; našu reakciu na zmeny; rýchlosť dodávania prvotriedne fungujúceho softvéru zákazníkovi; schopnosť ovplyvňovať celofiremné KPI na úrovni produktu a pracovať spolu v prvom rade ako ľudia a nie ako “zdroje”.
Na čom teda tieto tímy pracujú?
Hlavnou devízou produktu je jeho jednoduchosť a že sa ľahko používa. Aby však bolo niečo ľahké pre používateľa, vývojári neraz riešia veľmi komplikované problémy. Štandardne pripravujeme roadmapu na približne 3 mesiace. Slúži pre naše core tímy, ktoré sa primárne sústreďujú na vylepšovanie a pridávanie novej funkcionality do produktu pre nových alebo aktuálnych zákazníkov. Tieto tímy sa snažia priamo ovplyvniť základné firemné ciele. Potom máme menšie tímy, ktoré pracujú na experimentálnych projektoch, kde hľadáme nové segmenty a možnosti. A samozrejme máme aj tímy, ktoré pomáhajú ostatným v ich práci, čiže zlepšujú platformu pre vývoj alebo integráciu či delivery pipeline pre produkt alebo biznis.
Veľa softvérových produktov je určených pre limitovaný počet používateľov, čiže ak sa systém urobí dobre, tak môže slúžiť pri bežnej údržbe celkom dlho. Treba si však uvedomiť, že v roku 2012 bolo Slido použité na 12 eventoch, tento rok to bude 140 000 a na budúci rok očakávame dvojnásobok. Je jasné, že nároky na Slido sa každoročne násobia a preto potrebujeme neustále hľadať a odstraňovať úzke miesta v infraštruktúre alebo v zdrojovom kóde, aby sme boli čo najefektívnejší.
V čom spočíva najväčšia výzva pri takomto tempe rastu? Nestačí zapnúť pár serverov navyše?
Nie je to také jednoduché. Oproti tradičným IT riešeniam má Slido u každého zákazníka práve jednu šancu na úspech. Keď vám občas nefunguje vaša obľúbená sociálna appka, noviny či dokonca internet banking - trochu si ponadávate, vrátite sa o pár minút neskôr a na ďalší deň si už ani nespomeniete, že ste mali nejaký problém. Ak však stojíte uprostred pódia na konferencii s 3000 ľuďmi alebo na dôležitom firemnom stretnutí, ktoré ste chceli spestriť použitím technológie, je viac ako pravdepodobné, že to tak skoro znovu neskúsite a nikomu nič dobré o produkte nepoviete.
Toto je zodpovednosť na našich pleciach. Už to zrazu nie je len o kapacite, ale aj o dátovej integrite, stopercentnej kvalite a v neposlednom rade o bezpečnosti.

Zostáva popri raste a udržateľnosti celého riešenia čas aj na inovácie?
Bez inovácií to dnes ani nejde. Ak chceme byť lídrom na trhu, nestačí len vylepšovať to, čo už máme, ale aj prinášať nové veci, ako napr. integráciu so Slackom či Google Slides. V backlogu máme mnoho nápadov, čo by sme mohli urobiť, no kapacitne za kvartál dokážeme urobiť asi 10.
V neposlednom rade experimentujeme aj s umelou inteligenciu na riešenie problémov, ako napr. duplikácia otázok, sentiment otázok a eventu alebo trending otázok.
Kapitola sama o sebe je, že z konferencií sa Slido posúva aj na firemné mítingy, kde potrebujeme splniť nové nároky, ktoré platia v tomto segmente. To znamená hlavne vyššiu úroveň bezpečnosti a administrácie aplikácie či používateľov.
Aké výzvy súvisia s firemným segmentom?
Z technického pohľadu sa to najčastejšie točí okolo bezpečnosti dát. Klienti sa zaujímajú o rôzne možnosti šifrovania. Niektorí z nich by najradšej videli Slido nainštalované na ich vlastnej infraštruktúre, odizolované od ostatných klientov.
Čo sa funkcionality týka, je to pochopiteľne úplne iný segment so svojimi potrebami. Súčasťou tohto sveta sú aj integrácie s nástrojmi, ktoré sa už vo firmách bežne používajú. Slido musí byť jednoduchým doplnkom. Je to vlastne taký tetris - najlepšie sa pracuje s takým tvarom, ktorý nie je komplikovaný a je ľahko zakomponovateľný medzi ostatné tvary. A to je práve tá výzva :-)
Korporátni zákazníci nám neodpustia nič len preto, že sme mladá firma. Musíme spĺňať požiadavky na bezpečnosť či compliance rovnako ako ktorýkoľvek ich iný dodávateľ.
Na čom je Slido technologicky postavené?
Slido je webová aplikácia postavená na Angular technológii, ktorá komunikuje cez REST API so serverovou vrstvou, ktorá beží na NodeJS. Čize na oboch vrstvách je použitý programovací jazyk Javascript, konkrétne Typescript. Ako databázu používame MySQL v konfigurácii Master s viacerými replikami na čítanie, cache obstaráva Redis cluster, ktorý taktiež používame ako pub/sub službu. Celé toto beží na AWS, na viacerých EC2 serveroch, ktoré sa automaticky škálujú podľa potreby. Z AWS používame, samozrejme, aj mnoho iných služieb. Stratégia je taká, že v rámci AWS cloudu používame už hotové mikroslužby a nesnažíme sa znova vymyslieť koleso. Vďaka tomu je náš infraštruktúrny tím pomerne malý a počet incidentov, ktoré je nutné okamžite riešiť, je rádovo v jednotkách za mesiac.
Spomenuli ste Typescritpt, pracujete aj s inými jazykmi?
Máme aj interný vývojový tím, ktorý používa PHP (Laravel) a dátový tím, ktorý intenzívne využíva Python alebo R a, samozrejme, SQL.
Aké zmeny v technológii plánujete?
Z pohľadu infraštruktúry sa primárne snažíme odpovedať na zvyšujúcu sa záťaž na serveroch a v databázach. Čiže uvažujeme o expanzii našej infraštruktúry do ďalších regiónov (US alebo APAC) a s tým je spojený sharding databázy a migrácia na Amazon Aurora. Prináša to zopár nových výziev, zatiaľ sme mali zabezpečenú vysokú dostupnosť našich služieb v rámci jedného regiónu. Zabezpečiť rovnako spoľahlivé riešenie naprieč rôznymi regiónmi a pre distribuovanú aplikáciu znamená nakresliť úplne nový obrázok :-)
Trafil nás aj koncept Infrastructure as a Code či dokerizácia. Je to stále živá vec a takéto technológie zavádzame všade tam, kde nám dávajú zmysel. Odpoveďou u nás sú konkrétne nástroje Terraform a Cubernetes.
Ďalšia veľká zmena je, že budujeme dátový sklad (DWH), kde chceme spracovávať a analyzovať všetky dáta, ktoré o používaní Slido zbierame za účelom lepších data-informed rozhodnutí pre biznis alebo produkt. Riešenie budujeme na AWS, čiže ako data lake používame S3, ETL robí Glue, query servis je Athena, manažment úloh je Apache Airflow a o vizualizáciu sa postará Superset a Tableau.
Zdá sa, že máte veľa plánov.
To áno, preto aj náš tím postupne rastie a hľadáme ľudí, ktorí nám pomôžu nájsť odpovede na tieto, ale aj ďalšie plány, ktoré máme.
Chceli byť súčasťou nášho tímu v Slido? Pozrite si voľné pozície a pridajte sa k nám.