Případová studie: Přenos informačního systému do cloudu

Přečtěte si o tom, jak jsme už v roce 2017 transformovali historický informační systém do zcela nového řešení, běžícího výhradně na cloudové infrastruktuře.

V lednu 2017 mi do emailové schránky přistál nenápadně se tvářící email od našeho klienta, kterému jsme spravovali jeho starý informační systém:

 “Ahoj Honzo, nastal čas, abychom se začali bavit o našem novém informačním systému”.

Ke zprávě byl přiložen vyfocený náčrtek, kde bylo v pár bodech napsáno, co má systém umět. Cíl byl poměrně jasný – přejít ze starého ERP/CRM, napsaného na míru v PHP, a připomínajícího spíše velký školní projekt na něco, co by odpovídalo firmě, která poskytuje služby jednotkám tisíc klientů a má podstatnou část agendy automatizovanou.

Google Cloud

Přechod do Google cloudu

Je potřeba říct, že zákazník na přechodu do cloudu netrval. Spíš se nechal přesvědčit námi, protože nám už důvěřoval a zpětně hodnoceno to bylo určitě velmi odvážné. Psal se totiž rok 2017 a v té době o cloudu sice každý mluvil, ale v praxi jeho využití bylo v ČR minimální, speciálně u české netechnologické firmy. 

Protože my jsme již praktické zkušenosti s podnikovými aplikacemi v cloudu měli, a některé komponenty jsme si vyvinuli tzv. In-house v rámci naší platformy AVIS, k návrhu jsme přistupovali takto:

  • Informační systému bude serverless, aby odpadla nutnost starat se o fyzický nebo virtuální server, aktualizovat operační systém, řešit nefunkční pevné disky atp. Nutno říct, že náš zákazník neměl vlastního IT specialistu, takže tím spíš dávalo smysl vytvořit aplikaci na Google App Engine, což je vlastně prostředí, na kterém můžete celou aplikaci zprovoznit. I v rámci produktivního běhu jsme se navíc zpočátku vešli do tzv. Free tier mode, takže věřte nebo ne, samotný běh produktivního systému stál první rok 0 Kč.
  • Databázi zajistíme formou SaaS.  Důvod byl podobný – proč se někde starat o server, když potřebujeme jen databázi. Navíc pro naše účely bohatě postačovala MySQL databáze. V budoucnu jsme přidali do infrastruktury i PostgreSQL. Obojí Google Cloud podporuje a zprovoznění nebo nastavení pravidelných záloh, je skutečně jen na pár kliknutí.
  • IS bude používat moderní API (integrační rozhraní) pro komunikaci s okolím. Komunikaci mezi backendem a frontendem jsme chtěli řešit moderně a zároveň jsme se potřebovali integrovat na 6 různých dalších aplikací (např. Raynet CRM, datové schránky a SMS bránu). Proto jsme postavili moderní REST API za pomocí  Google Cloud Endpoints.
  • Autentifikaci budeme řešit externí komponentou, umožňující Single sign-on.  Použili jsme Google Firebase a v našem případě to řešení bylo (a dodnes je) opět zcela zdarma, přestože jde o SaaS službu.

Nemá smysl tajit, že jsme byly a jsme nadšenci do Google Cloud Plartform, a tak jsme se snažili  využívat i další možnosti, které nám cloudové platforma (většinou  zdarma nebo za pár korun měsíčně) nabízela. Úložiště dokumentů? V Google Cloud Storage. Kam se zdrojovými kódy? Google Cloud nabízí GIT repozitář jako službu. Aplikační logování? Jasně, že pomocí Cloud Logging.

Délka a rozsah projektu

Když nepočítáme analyticko-koncepční část, kdy se specifikovali požadavky a dělal poměrně detailní design aplikace, tak samotná implementace (začínali jsme úplně od začátku a na místo PHP jsme použili Javu 1.8 + Spring Framework a Angular 2), včetně migrace starých dat a náběhu produkce, byla hotová asi do 5 měsíců. Vyvíjeli jsme agilně? Ne. Zákazník byl v analytické fází velmi pečlivý, měli jsme proti sobě prakticky jen jen 2 klíčové uživatele, takže jsme postupovali pěkně po staru “vodopádem” s fixním rozpočtem. Ukázalo se to jako dobrá a bezproblémová volba

Přestože jsme vytvořili systém prakticky na zelené louce, pracností jsme dostali někam k rozsahu zhruba 100 člověkodnů (cca 800 hodin čisté práce). Kamarád ze známého českého software-housu mi rozsah nechtěl věřit a tvrdil s vážnou tváří, že u nich by to byl trojnásobek. My ale nejsme korporát a navíc jsme některé části vytáhli už tzv. z šuplíku.

Zhodnocení po 5 letech provozu

Během 5 let se rozsah řešení zvětšil asi o 20% a zároveň se zněkolikanásobil objem dat v systému. Z toho důvodu jsme museli trochu navýšit prostředky pro backend a pro databázi. Vzhledem k tomu, že obojí je ve formě SaaS služby, znamenalo to jen pár kliknutí myší a zvýšený monitoring výkonnosti po dobu několika dní.

Měsíční náklady na provoz produktivní aplikace jsou nyní asi 3.500 Kč, kde asi třetinu představují náklady na MySQL databázi a zbytek je běh aplikace v Google App Engine.

Pokud jde o výpadky, za celou dobu jsme se ale potýkali pouze s jedním významnější omezením funkčnosti, způsobeným pravděpodobně problémem na straně Google Cloud infrastruktury. Vyřešili jsme to přesunem části aplikace do jiné geografické polohy, což byla operace na pár hodin. K žádné výrazné změně rozhraní, zrušení podpory nějaké komponenty nebo jiného podobnému problému za celých 5 let také nedošlo, což nás příjemně překvapilo.

Celkově jsou hladký běh informačního systému v cloudu i velmi rozumné náklady na běh potvrzením toho, že jsme našemu klientovi před lety poradili správně. On díky tomu mohl dál investovat do rozvoje aplikace místo  provozu, což je win-win situace.

Kontaktní formulář