Raiffeisenbank CZ & ORBIT
Namísto několikahodinové manuální práce různých týmů umí dnes novou aplikaci nasadit automatizovaně během několika minut. Raiffeisenbank k tomu využila princip „infrastructure as code“. Díky němu může banka počítat s jednoduchou správou všech budoucích aplikací a s vysokou efektivitou provozu s minimem manuálních zásahů. Jak se tato změna „urodila“?
Poctivá ruční výroba? Ne, díky…
Již před zahájením projektu provozovala Raiffeisenbank (RB) kontejnerizované aplikace v on-premise. V procesu testování–nasazení–správa aplikace však byly automatizovány jen dílčí části.
Řada kroků probíhala (semi)manuálně a vyžadovala kooperaci mnoha týmů. Mohlo tak docházet k nekonzistenci mezi jednotlivými prostředími, která následně vyžadovala (ruční) nápravu.
Veškerý provoz on-premise infrastruktury se navíc odehrával v režimu 24×7, což je neekonomické. Zejména nižší, neprodukční prostředí (vývoj a testování) má smysl provozovat jen v době, kdy jsou reálně potřeba (např. při nasazení nové verze aplikace).
…raději automatizace nasazení aplikací s využitím principu IaC
Společný projekt RB a ORBIT si dal proto za cíl najít cloudové řešení, které:
- co nejvíce zkrátí dobu nasazení nové aplikace,
- využije přitom end-to-end automatizace,
- bude co nejjednodušší na správu (využití PaaS služeb atp.).
Pro tento účel jsme vybrali pilotní aplikaci BAAPI (viz box), která teprve vznikala a nebyla reálně nasazena v on-premise infrastruktuře. Mohli jsme tak stanovit moderní „cloudový postup“ nasazování kontejnerizovaných aplikací do AWS, který se stane základem uceleného frameworku, podle něhož bude Raiffeisenbank instalovat aplikace v budoucnu.
RB si vybrala ORBIT kvůli jeho orientaci v AWS službách a jeho detailní znalosti prostředí i procesů v bance.
Bank Aggregation API Platform (BAAPI)
Důležitá aplikace (součást většího celku) umožňující budoucím klientům banky ověření pomocí bankovní identity. Aplikaci bance dodávala externí firma, a nebylo tedy možné ji přizpůsobit aktuálním potřebám projektu.
Každá společnost, která se snaží využít cloud naplno, začne dříve či později přemýšlet nad automatizací. Raiffeisenbank se rozhodla opřít o koncept Infrastructure as Code (IaC), jehož cílem je mít infrastrukturu definovanou podobným způsobem jako zdrojové kódy aplikace.
O tom, kdy je nejrozumnější IaC využít a které nástroje je vhodné použít, se dočtete v tomto článku Encyklopedie cloudu.
Průběh projektu automatizace nasazení aplikací
Výsledného moderního řešení se nám nakonec podařilo docílit cestou „částečné revoluce“ (některé oblasti řešení zůstaly spíše evolučním posunem on-prem stavu), která zahrnovala tyto fáze:
- sumarizace požadavků a potřeb RB
- návrh cílové cloud architektury řešení
- příprava dílčích Infrastructure as Code komponent
- customizace image pilotní aplikace BAAPI
- příprava Continuous Integration a Continuous Delivery pipelines
- monitoring a logging celého řešení
„To stačí jen tady zapnout?“
Byla pro nás radost pozorovat údiv na tvářích administrátorů, když zjistili, že procesy, které řešili v on-premise poměrně dlouho a s rizikem chyby, jsou ve výsledku záležitostí několika kliknutí s jasným výsledkem.
Hlavní komponenty řešení
Klíčovými benefity automatizace nasazování aplikací do AWS jsou tedy jednoduchost a spolehlivost. Nasazení nové verze aplikace nyní v RB obnáší změnit jediný parametr v GIT repozitáři. CD pipeline se už postará o nasazení bez jediného manuálního zásahu.
Pokud bude třeba provést větší změnu v samotné infrastruktuře, administrátoři upraví dílčí část Infrastructure as Code template a změna se opět zcela automatizovaně nasadí ve stejné podobě do všech prostředí.
Výstupy automatizace nasazení aplikací
Vytvořili jsme framework, podle kterého může Raiffeisenbank v budoucnu nasadit novou aplikaci do cloudu zcela automaticky. Díky využití konceptu Infrastructure as Code je naše řešení velmi jednoduché na správu. Šetří tedy spoustu času i finančních prostředků a nevyžaduje budoucí zapojení odborníků ORBITu.
Realizace v on-premise | Realizace v AWS cloudu | |
---|---|---|
Nasazení aplikace | Několik hodin, mnoho manuálních úkonů, zapojení různých týmů | Několik minut, zcela automaticky |
Konzistence prostředí | Změny v jednom prostředí se neřízeně přenášejí na vyšší prostředí, nutné manuální zásahy | 100% konzistentnost prostředí, díky IaC jsou všechna prostředí nasazována z identického template |
Správa řešení | Jednotlivé komponenty vyžadují rutinní správu, patch management apod. | Všechny komponenty jsou fully-managed (PaaS), minimální nároky na správu |
Efektivní využití infrastruktury | Všechny komponenty (ve všech prostředích) běží v režimu 24×7, vysoké náklady | Development prostředí se zapíná pouze při vývoji, neprodukční prostředí běží automaticky pouze v pracovní době, minimalizace nákladů |
Škálování aplikací ve špičkách | Fixní infrastruktura, není možné ad-hoc škálovat | Dynamické škálování aplikačních komponent dle reálné zátěže a využití |
Obecné srovnání realizace v on-premise a v AWS cloudu