Összes cikk
2023. szeptember 1. · írta: Pfeifer László

Azure-költségoptimalizálás

Így csökkenthetők az Azure felhőköltségek

AzureDevOpsCloudLegacy

Egy legacy projekt infrastruktúrájának és CI/CD pipeline-jának újjáépítése.

Legacy projekt, szoros határidővel

Valódi időnyomás alatt kezdtünk dolgozni ezen a legacy projekten — az ügyfél mielőbb élesbe akarta állítani a rendszert. Az első célunk az azonnali tesztelés volt: javítottuk az ismert hibákat, és megpróbáltuk kiadni a változtatásokat.

Az örökölt CI/CD végezte a telepítést, és minden CI-futás több mint fél órán át tartott — akármilyen kicsi volt a változás. Ahogy a tesztelés egyre több hibát hozott felszínre, minden javítás újabb 30 perces telepítést jelentett. Ezzel a tempóval sosem értük volna el a határidőt.

A meglévő CI/CD pipeline problémái

Amikor belenéztünk a pipeline-ba, megdöbbentünk a bonyolultságán. Órákba telt csak megérteni, mit csinálnak az egyedi szkriptek. A projekt egyetlen CI-futás alatt többször is felépült, és a saját fejlesztésű változásérzékelő megoldás így is minden alkalommal a teljes kódbázist újraépítette.

Úgy döntöttünk, minden egyedi szkriptet eltávolítunk, és kizárólag iparági sztenderd eszközöket használunk, amelyeket a fejlesztők széles köre ismer. Így minimálisra csökken a tooling hibázásának kockázata, nem megy el idő a karbantartására — és drámaian gyorsabb lesz az új fejlesztők betanulása.

A CI/CD folyamat optimalizálása

Bevezettük az NX-et a monorepo kezelésére, így csak a változással érintett részek épülnek újra. A telepítéshez Argo CD-t vezettünk be, ami átláthatóbbá és kevésbé hibaérzékennyé tette a telepítéseket, a felesleges CI-lépéseket pedig kiiktattuk.

A telepítési folyamat 30+ percről nagyjából 5–6 percre rövidült. A gyorsabb visszacsatolással a fejlesztők a hibajavításra és a funkciókra fordították az idejüket — nem a release-ek pesztrálására.

Infrastruktúra-kihívások és költségaggályok

A projektnek országonként eltérő konfigurációval kellett futnia, és minden ország saját fejlesztési és staging környezetet kapott. A legacy megközelítésben minden környezethez külön Kubernetes-klaszter és adatbázis tartozott — hat klaszter csak fejlesztésre és tesztelésre, havi nagyjából 2500 fontért, miközben az éles környezet még hátravolt.

A klaszterek 4–5%-os kihasználtsággal üresjáratban futottak. Egyenesen megmondtuk az ügyfélnek: ez hosszú távon nem működik.

Az infrastruktúra újjáépítése

Mindent az alapoktól építettünk újra, két környezettel: egy a fejlesztésre és tesztelésre, egy az éles üzemre. Mindkettő menedzselt adatbázist és menedzselt Kubernetes-klasztert tartalmaz, az alkalmazásokat pedig namespace-ekkel választottuk el virtuálisan.

Az Azure-erőforrásokat Terraformmal hoztuk létre — így amikor eljött az élesítés ideje, ugyanazt a projektet futtattuk le más paraméterekkel.

Költségmegtakarítás és üzleti hatás

Az új infrastruktúrára váltás után a havi költség 300–400 fontra esett, változatlan virtuális környezetek mellett. Az éles környezettel együtt a teljes összeg havi 700–800 font — még mindig az eredeti költség harmada. Évente több ezer fontot takarítottunk meg az ügyfelünknek.

Összegzés

  • A telepítési idő 30+ percről 5–6 percre csökkent.
  • Az infrastruktúra-költség havi 2500 fontról 300–400 fontra esett.
  • A skálázhatóság megmaradt, a költségek kétharmadával csökkentek.
  • Hosszú távú előnyök az ügyfél számára.
Kapcsolódó esettanulmány

Interchange

50%gyorsabb tranzakciók — 70%-kal alacsonyabb infrastruktúra-költség mellett

Következő lépés

Felhőköltségeket csökkentenél és optimalizálnál?

Egy beszélgetésből kiderül, jó partnerek vagyunk-e.

Azure-költségoptimalizálás · Square21