Szerző: Hlács Ferenc

2018. április 11. 09:23

Nyílt forrású canary-elemzőt jelenetett be a Google és a Netflix

A duó a Netflix házon belül használt elemzőrendszerét pofozta ki és tette szabadon használhatóvá.

Nyílt forrású elemzőeszközzel rukkolt elő a Google és a Netflix, amellyel a fejlesztőcsapatoknak könnyítenék meg, illetve tennék biztonságosabbá a különösen tempós deployment feladatokat. A páros által közösen fejlesztett megoldás Kayenta névre hallgat, az lényegében a Netflix házon belül már jó ideje használt canary analízisrendszerének felturbózott verziója, amely nem csak izmosabb elődjénél, de nyitott, illetve különböző kiterjesztésekkel is megbirkózik az összetettebb feladatokhoz.

A canary tesztelés részleges bevezetést jelent, a friss verziót első körben csak az infrastruktúra (illetve a felhasználók) csak kis része kapja meg, a szolgáltatás nagy része marad az előző, stabil, bevált verzión. A folyamat során a változtatásokkal megtűzdelt canary verzió mellett a cégek a stabil változat egy újonnan közzétett, baseline verzióját is kiadják amely a friss deploymenten kívül nem különbözik sem kódjában, sem konfigurációját tekintve az élesben elérhető verziótól. Jellemzően a baseline és a canary verzióból is azonos mennyiség (például virtuális gép) jut ki, amelyeknek aztán éles teljesítményét és a funkcióinak működését a tesztrendszer összehasonlítja. Értelemszerűen akkor érdemes a canary változatot a stabil kategóriába sorolni, ha az legalább úgy vagy jobban teljesít, mint az addig elérhető éles verzió. A megoldással az esetlegesen felbukkanó bugok még gyorsan elcsíphetőek, anélkül hogy a felhasználói bázis jelentősebb részét vagy egészét érintenék.

kay02

Az eljárás fő problémája ugyanakkor, hogy a tesztelési módszert a fejlesztők nem konzisztensen és automatizáltan alkalmazzák, netán az elemzést manuálisan, vagy statisztikailag helytelenül végzik el. Értelemszerűen egy Google vagy Netflix méretű vállalatnál a manuális elemzés nem kivitelezhető, de a continuous delivery alkalmazását lényegében bármilyen cégnél ellehetetleníti, ha a fejlesztőknek maguknak kell akár több száz különböző értéket elemezni a különböző kiadásoknál. Ilyenkor természetesen az emberi hibafaktor is bejön a képbe, nem csak figyelmetlenségek, de az esetleges nem tudatos részrehajlás is problémákat okozhat.

Ennek a feladatnak az automatizálásában segítene tehát Kayenta, amellyel a manuális canary elemzés jócskán visszanyeshető, ezzel pedig az emberi hibák is kiszűrhetők, illetve nem utolsó sorban rengeteg időt is megspórolhatnak a cégek. A Netflix várakozásai szerint házon belül a Kayenta idén év végére napi több ezer canary elemzést zár majd le. A Kayenta az ugyancsak a Netflix által fejlesztett, szintén nyílt forrású Spinnaker multi-cloud continuous delivery platformmal integrálva használható, azaz a fejlesztőcsapatok egyszerűen a Spinnaker pipeline-ba iktathatják be a canary elemzést. Ebben a Kayenta begyűjti a megfelelő felhasználói információkat, lefuttatja a kijelölt teszteket, majd azok alapján egy összesített pontszámot ad az adott vizsgálatra. Azt a fejlesztők adhatják meg, hogy milyen pontszámnál húzzák meg a sikeres teszt minimumát, de adott tartományban a rendszer emberi felülvizsgálatra is továbbküldheti az aktuális tesztverziót.

kay01

A megoldás a cégek szerint a Spinnaker integrációnak hála tetszőleges környezetben használható, a Google Cloud Platformtól a Kubernetesen át a saját, helyi szerverekig, sőt a vizsgált értékek forrásaiként is tetszőleges eszközök állíthatók be, mint a Stackdriver, Prometheus vagy épp a Datadog. A Kayenta emellett kiterjeszthető, a fejlesztők igényeinek megfelelően változó értékek is vizsgálhatók vele. A Kayenta már most igába hajtható, a Spinnaker kiegészítéséhez a cégpáros útmutatót is közzétett, a projekt továbbá természetesen GitHubon is elérhető, illetve a Google és a Netflix hamarosan egy webinart is tart az érdeklődőknek az eszköz bemutatására.

a címlapról