Zagotavljanje stabilnega, prilagodljivega in varnegaokolja na AWS za gostovanje „cloud-native“ aplikacij

Cilji projekta

Eden izmed ključnih ciljev je bil zagotoviti stabilnost in razpoložljivost aplikacije, ki jo je razvilo podjetje Presta, z ustrezno zasnovanim okoljem na oblaku AWS in uporabo orodij za avtomatizacijo. Kritičen vidik projekta je bila varnost gostiteljskega okolja glede na to, da aplikacija zbira občutljive podatke, kot so finančni, zdravstveni in osebni podatki.    

Rezultati, ki smo jih dosegli

• Varnost: v skladu z zahtevami naročnika je Mainstream ekipa zasnovala okolje skladno s standardom SOC 2.

• Enostavnost ter hitrejši razvoj novih funkcionalnosti z avtomatiziranim provizioniranjem infrastrukture in strokovno zasnovanim pipelin-om CI/CD.

 Skalabilnost: projekt je omogočil avtomatizirano skaliranje gruč Kubernetes z uporabo upravljanestoritve AWS EKS.

Razvoj okolja na AWS za gostovanje OoPe aplikacij  

Podjetje Presta je zasnovalo “cloud-native” aplikacijo za povračilo stroškov iz lastnih sredstev (out of pocket expenses – OoPE). Gostovanje aplikacije pa je zahtevalo izdelavo infrastrukturnega okolja na AWS-u. Za realizacijo tega projekta se je podjetje odločilo angažirati Mainstreamovo ekipo, saj so z nami že prej uspešno sodelovali, vendar tudi zaradi uveljavljenega strokovnega znanja na področju oblaka AWS, implementacije procesov in orodij DevOps.  

Dostop in tehnologije  

Z osredotočenostjo na hiter razvojni cikel in večjo avtonomijo pri nastavitvah virov so se Mainstreamovi strokovnjaki odločili za kombinacijo Terraforma, Kubernetesa in GitHub-a v dogovoru z naročnikom. 

1. Z uporabo Terraform smo zasnovali razvojno in uprizoritveno okolje (development in staging environment) brez uporabe modula Terraform – samostojno smo nastavili komponente posameznega vira (ECR, EKS, IAM, RDS, REDIS, S3 itd.). Ko gre za izbiro orodja, je naša ekipa priporočila Terraform zaradi avtomatizacije procesov postavljanja, posodabljanja in skaliranja virov, s tem smo obenem stranki tudi zagotovili manjše možnosti za napake in pospešili dobavo IT-infrastrukture.

2. Za vsako okolje smo postavili eno gručo Kubernetes v dveh različnih regijah. Da zagotovimo varnost aplikacije, ki obdeluje občutljive podatke in ne sme imeti dostopa do interneta, smo dostop konfigurirali na način, da do instanc in strežnikov lahko dostopa le naša ekipa in razvojna ekipa naročnika. Kar pa smo dosegli z uporabo bastion instance, ki služi kot edina dostopna točka za pooblaščene uporabnike.

3. Za avtomatizacijo deployment kode na gručo Kubernetes smo zasnovali GitHub Actions workflow in s tem zagotovili, da se vse spremembe kode izvajajo takoj v produkcijskem okolju. To pa je obenem omogočilo tudi pomembno prednost: hitrejše objavljanje sprememb kode.

Varnost v središču pozornosti

Glede na to, da naročnik deluje v Združenih državah Amerike ter da je aplikacija podvržena lokalnim predpisom, med drugim tudi standardu SOC2 za varstvo podatkov, je bila ena od kritičnih zahtev projekta vzpostavitev varnega okolja. Ne glede na zahtevnost te naloge nam je uspelo izpolniti vse zahteve, in sicer na podlagi tesnega sodelovanja z naročnikom, z uporabo najstrožjih varnostnih standardov ter s temeljitim preverjanjem vseh vpeljanih mehanizmov. Aplikacija je uspešno prestala revizijo, ki je razen avtomatskega varnostnega preverjanja vključevala tudi ročno preverjanje aspektov, kot sta AWS in GitHub ter revizijo zasnove CI/CD. 

Naš angažma na področju varnosti je upošteval:

  • preverjanje ranljivosti CVE na vseh slikah ECR enkripcijo Elastic Load Balancer v tranzitu
  • integracijo CloudTraila s CloudWatch dnevniki
  • CloudTrail S3 bucket MFA (preverjanje vseh pravil znotraj varnostnih skupin)
  • revizijo WAF in notranjega požarnega zidu
  • revizijo konfiguracije IDS/IPS
  • nastavitev orodja AWS Macie za odkrivanje morebitnih tveganj znotraj bucket S3 (vedra)
  • nastavitev orodja AWS Inspector, ki skenira morebitna varnostna tveganja nad vsebniki.

Poleg zgoraj navedenih aktivnosti in ukrepov smo za šifriranje zaupnih podatkov uporabili orodje Kubernetes Sealed Secrets.  

Kaj smo dosegli?  

Prejšnje izkušnje pri delu s podjetjem Presta so prispevale k hitrejšemu dogovarjanju ter usklajeni komunikaciji med našimi ekipami, kar je omogočilo hitrejšo realizacijo projekta. Strokovno znanje in izkušnje Mainstream ekipe s področja uporabe AWS well-architected framework pri zasnovi infrastrukture, skupaj s priporočili orodjaza avtomatizacijo, kot je Terraform, so omogočile doseganje zastavljenih ciljev: stabilno, razpoložljivo in prilagodljivo okolje za aplikacijo.  

"Ko gre za načrtovanje, uvajanje in optimizacijo javne infrastrukture v oblaku, je Mainstream naša izbira že skoraj 10 let. Od preverjanja okolja v oblaku, pripravljenega za proizvodnjo, do zagotavljanja največjega časa delovanja in vrhunske zmogljivosti aplikacij, njihova ekipa ima strokovno znanje in izkušnje v celotnem ciklu, da kar najbolje izkoristi kateri koli javni oblak."

Vladeta Radovanović

CEO

Odkrijte, kako lahko Mainstream izboljša vaše poslovanje.

Kontaktirajte nas na business.si@mainstream.eu ali izpolnite naš kontaktni obrazec.

Druge študije primerov

Intelisale: Migracija in upravljanje naročnine Microsoft Azure

Podjetje Intelisale, razvijalec napredne platforme omnichannel B2B, se je pri migraciji in upravljanju naročnine Microsoft Azure zaneslo na strokovno znanje ekipe Mainstream.

Šport Ljubljana: Migracija Office aplikacij, DMS in ERP programske opreme na Mainstream Managed Environment  

Šport Ljubljana je uspešno preselil aplikacije Office, ERP in programsko opremo DMS v Managed Environment podjetja Mainstream, pri čemer je pridobil stabilnost infrastrukture, varnost, razširljivost in strokovno podporo.

Posodobitev aplikacije in optimizacija IT-operacij s procesi Kubernetes in DevOps

S sklicevanjem na glavno podporo je Fitpass uspešno preoblikoval svojo IT infrastrukturo s strateško uvedbo Kubernetesa in tehnologije CI/CD.