László Vargha

Vargha László

  · 4 min read

Skálázható infrastruktúra zéró kieséssel AWS-en

Megbízható, skálázható infrastruktúra a svéd GlobalVET-nek

Megbízható, skálázható infrastruktúra a svéd GlobalVET-nek

Áttekintés

A GlobalVet egy magyar fejlesztésű és tulajdonú, Svédországban üzemeltetett állategészségügyi alkalmazás, ami gazdi és állatorvosi oldalról is megkönnyíti a teljes adminisztrációs folyamatot. Az alkalmazás segítségével a gazdik online foglalhatnak időpontot a GlobalVet-et használó állatorvosokhoz, amit összeszinkronizálhatnak a naptárukkal. Az orvosok számára számos hasznos megoldást kínál a GlobalVet a műszakok kezelésétől kezdve a kórlapok hatékonyabb és gyorsabb kitöltéséig.

Ahhoz, hogy az alkalmazás széles körben, nemzetközileg elérhető legyen, a GlobalVet csapata az AWS felhőalapú megoldásait választotta, a Codefactory csapat szakmai támogatásával. A project során biztosítani kellett a megfelelő infrastruktúrát, ahová a fejlesztett alkalmazások/microservicek automatizált pipelineok segítségével kitelepülnek. Egészségügyi szoftver lévén mindeközben természetesen a svéd adatvédelmi szabályoknak is meg kellett felelni.

AWS infrastruktúra

Az AWS infrastruktúra legfőbb eleme az EKS cluster, ami egy AWS által menedzselt Kubernetes megoldás. Az EKS tökéletesen alkalmas konténerizált alkalmazások izolált környezetben való futtatására. Főbb előnyei:

  • Magas rendelkezésre állás és redundancia

    A Controlplane több AZ-ben fut, amivel megszűnteti az egyetlen hibahely kockázatát. (redundancia = ugyanaz az információ vagy funkció többszörösen is megtalálható)

  • Automatikus skálázás

    Az EKS támogatja a horizontális és vertikális skálázást, lehetővé téve az alkalmazások dinamikus erőforrásigényének kielégítését. Az “autoscaling” megoldásokkal a “node”-ok száma automatikusan növelhető vagy csökkenthető a terhelés függvényében.

  • Hálózatkezelés

    Az EKS “natív” hálózatkezelést kínál, illetve támogatja az “AWS Load Balancer” szolgáltatásokat (ALB, NLB), amelyek segítenek az alkalmazásterhelés hatékony elosztásában.

  • Integráció más AWS szolgáltatásokkal

    Az EKS könnyedén integrálható olyan AWS szolgáltatásokkal, mint az IAM, CloudWatch, Route 53 és ECR.

  • Logok és metrikák gyűjtése

    Az Amazon CloudWatch segítségével valós idejű megfigyelési adatokat gyűjthetünk, beleértve a teljesítmény-, CPU-, memóriahasználati adatokat. A “Container Insights” funkció révén pedig részletes betekintést nyerhetünk a konténeres környezetek állapotába.

  • Biztonság

    Az EKS “natívan” támogatja az IAM-alapú hozzáférést (RBAC), amely lehetővé teszi a finomhangolt jogosultságkezelést. Emellett számos lehetőségünk van az internetes támadások elleni védekezésre, például összeköthetjük az EKS-hez tartozó “ALB”-t azt “AWS WAF” szolgáltatásával, amivel nagyon részletes tűzfalszabályokat határozhatunk meg.

Mindezek alapján az EKS egy könnyen kezelhető és biztonságos megoldást nyújtott a GlobalVet számára, amely biztosítja a folyamatos elérhetőséget és a költséghatékony működést.

Infrastruktúra kezelése

Az AWS-en igénybe vett szolgáltatások (IAM, VPC, EKS) kitelepítése és menedzselése automatizált rendszeren keresztül történik. Ennek eléréséhez “pipeline”-okat írtunk, amik automatikusan érzékelik a fejlesztők által feltöltött kódot, teszteket futtatnak le, végül kitelepítik a legfrissebb konfigurációt AWS-re. Amellett, hogy megkönnyíti és felgyorsítja a fejlesztést, szükség esetén lehetővé teszi a korábbi verziókra való gyors visszaállást is.

Alkalmazások kezelése

Az AWS infrastruktúra kialakítása mellett a project másik fő aspektusa a GlobalVet által fejlesztett és konténerizált “microservice”-k kitelepítése és könnyen kezelhetővé tétele volt. Erre remek megoldást kínált a Helm, ami szintén automatizált “pipeline”-on keresztül telepíti az alkalmazásokat az EKS-re. A Helm főbb előnyei:

  • Egyszerű alkalmazáskezelés és telepítés

    A Helm lehetővé teszi, hogy komplex alkalmazásokat egyetlen parancs segítségével telepítsünk. Emellett a Helm chartok újrafelhasználhatóak, ami megkönnyíti a különböző környezetek kezelését.

  • Konfiguráció

    A values.yaml fájlok segítségével könnyen módosíthatók a konfigurációk különböző környezetekhez anélkül, hogy a sablonokat módosítani kellene. Ezeket a sablonokat így elég egyszer létrehozni, ezt követően csupán az értékek módosításával elérhető a kívánt konfiguráció.

  • Verziókezelés és visszaállítás

    A Helm nyomon követi a telepítéseket, lehetővé téve a korábbi verziókra történő visszaállítást szükség esetén.

  • CI/CD integráció

    A Helm könnyen integrálható “CI/CD pipeline”-okba, ami automatizálja a telepítéseket és a frissítéseket. Ez biztosítja, hogy minden telepítés következetes és reprodukálható legyen.

  • Moduláris struktúra

    A Helm “chartok” moduláris felépítése lehetővé teszi, hogy különböző “microservicek”-hez külön “chart”-okat használjunk, miközben egyetlen fő “chart”-ba integráljuk őket.

Eredmények

A GlobalVet célja az általuk fejlesztett alkalmazás elérhetővé tétele volt egy stablil, biztonságos és gazdaságos környezetben. Ennek a megvalósításában nyújtottunk segítséget, melynek során az AWS által kínált szolgáltatásokat kombináltuk a Helm megoldásaival. Ez a két technológia teljes összehangban képes egymással összedolgozni, a “pipeline”-ok és automatizálás bevezetésével pedig a fejlesztőik teljes egészében az alkalmazásra koncentrálhatnak. Az alkalmazott megoldásoknak köszönhetően a GlobalVet alkalmazása stabilan üzemel AWS környezetből, folyamatosan elérhető és kiesés nélkül frissíthető.


Ha felkeltette az érdeklődésedet ez a cikk vagy szeretnéd igénybe venni Te is valamelyik szolgáltatásunkat, nézz körül itt.

Ha részletesebben is érdekel ez a téma, töltsd le az ingyenes e-book-unkat.

Vissza a cikkekhez