PayPal, známy špecialista na on-line platby, bol obeťou vlastného úspechu. V priebehu rokov vyvinuli toľko služieb a funkcií pre zákazníkov, že im systém trochu prerástol cez rozum . Všetko fungovalo dobre, ale každá zmena trvala dlhšie a vyžadovala viac pracovných síl. Každá zmena mohla spôsobiť problémy v celom systéme, čo znamenalo, že bolo vždy potrebné rozsiahle testovanie, aby všetko fungovalo ako má ešte pred reálnym nasadením.
Služba PayPal vyriešila tento problém takzvanými microservices. Funkcionality boli implementované v separátnych komponentoch, ktoré sa stali zodpovednými za danú službu, niekedy napríklad len za tlačidlo nákupu služby PayPal pre internetové obchody s príslušnými odkazmi. Všetky mikroservisy potom komunikovali prostredníctvom aplikačného programovacieho rozhrania (API), čo je súbor pravidiel, ktorým vzájomné aplikácie navzájom rozumejú. Ak chce služba PayPal teraz pridať funkciu, potrebuje iba upraviť microservices, ktoré priamo súvisia s novou funkciou. Zvyšné komponenty systému ostanú bez zmeny. Výhodou je, že teraz inovujeme rýchlejšie ako kedykoľvek predtým,“ povedal CTO James Barrese v roku 2015 pre Business Insider.
Dodanie do jedného mesiaca
Softvérová spoločnosť Davinci je spoločnosťou iných rozmerov ako spoločnosť Paypal, ale stále sa tu vyskytujú rovnaké problémy, hovorí Michal Šimún, softvérový architekt slovenskej pobočky holandskej spoločnosti špecializujúcej sa na Software as a service (SaaS) pre hypotekárnych a iných poskytovateľov pôžičiek so zákazníkmi ako Nationale Nederlanden, Credit Agricole alebo Aegon.
Michal Šimún do spoločnosti nastúpil pred deviatimi rokmi ako programátor. „V Bratislave sme na začiatku realizovali aplikácie so 7 osobami“. Ale Davinci rástlo rýchlo a v roku 2017 nás už bolo 50. Šimún, ktorý v roku 2014 prešiel na pozíciu softvérového architekta, tvrdí, že situácia sa stávala čoraz menej zvládateľná. „Vyrobili sme monolit z mnohých tehál. Fungoval, ale vždy, keď sme museli zákazníkovi pridať funkciu, museli sme vedieť, či budeme môcť vytiahnuť istú tehlu bez ovplyvnenia celého systému,“ hovorí Šimún. To znamená, že vždy, keď sme museli komplexne testovať – koniec koncov, nič nemohlo pokaziť finančné dáta zákazníkov – dodanie aj jednoduchých funkcionalít pre zákazníka trvala aj viac ako mesiac.
Rýchla inovácia
Prijímanie väčšieho počtu ľudí na urýchlenie procesov nebolo správnou cestou. „Meetingy tímu s 50 ľuďmi už neboli možné. Iba rozdelenie systému mohlo spôsobiť návrat k rýchlym inováciám z počiatočných rokov,“ tvrdí Šimún spolu s jeho tímom. Odvtedy už viac ako polovica funkcií bola umiestnená v microservices. Šimún verí, že výhody microservices sú skvelé. „Sprinty (stanovené obdobie, počas ktorého musí byť projekt dokončený tímom, vyd.) sú oveľa efektívnejšie v malých tímoch. Vďaka microservices je možné spraviť niekoľko nasadení denne. Ďalšou veľkou výhodou je, že je oveľa jednoduchšie prechádzať na nové technológie. V minulosti ste sa s monolitom museli často držať jednej technológie, ktorú ste si vybrali na začiatku, „hovorí Šimún.
Microservices môžu byť veľkým prínosom pre spoločnosti, ktoré pochopili, že inovácie sú čoraz zložitejšie, pretože systémy sa v priebehu rokov rozširujú pridaním čoraz viac funkcií. Zákazníci sú spokojní, pretože sa im pomáha rýchlejšie a spoločnosť ako celok môže aj rýchlejšie inovovať. Šimún upozorňuje, že to tiež vyžaduje niečo od organizácie, hlavne čo sa týka procesov a programátorov. “ Jednou z veľkých výziev je zabezpečiť, aby dáta ostali konzistentné naprieč všetkým microservisom.
Každý systém musí pracovať s presne rovnakými dátami – určite to nie je bezvýznamné v softvérovej spoločnosti, kde sa spracovávajú údaje o hypotékach v cloude. To si vyžaduje, aby programátori striktne dodržiavali pravidlá. Porovnávam to so symfonickým orchestrom. Každý má vlastný nástroj, ale musíte sa uistiť, že prispieva presne k tomu, čo je potrebné.
Tento článok vám prináša Business Insider v spolupráci s Davinci.