Teljesítmény elérése és fenntartása
Védelmet nyújt a teljesítménycsökkenés ellen, miközben a rendszer használatban van, és ahogy fejlődik. |
---|
A fejlesztés nem egyszeri munka. Ez egy folyamatban lévő folyamat. Változások várhatók a teljesítményben a funkciók változásakor. A felhasználói minták és profilok eltérőek, még a többi Azure Well-Architected-pillér optimalizálási változásai is. Minden módosítás megterhelheti a számítási feladat erőforrásait.
Széf óvja a rendszert a változásoktól, hogy ne csúsztassa vissza a teljesítménycélokat. A tesztelés és a monitorozás integrálása a fejlesztési folyamatba. Tesztelje a rendszer teljesítményét éles környezetben valós terheléssel, és szimulálja ezt a terhelést az éles üzem előtti automatizált teszteléssel. Mindkét esetben ellenőrzési célból monitorozási eljárásokat kell alkalmaznia.
A fejlesztési életciklus során különböző típusú teszteket végezhet különböző szakaszokban. A kezdeti szakaszokban tesztelje a koncepció bizonyítékát, hogy a teljesítményeredmények ne legyenek teljesen váratlanok. A fejlesztés előrehaladtával végezzen manuális, alacsony munkamennyiségű teszteket a teljesítménymutatók létrehozásához. A buildelési szakaszban kezdje el az automatizált rutinteljesítmény-tesztek fejlesztését, amelyek kiértékelik a késést, a stresszszinteket, a terhelési kapacitást és a teszttervekben meghatározott egyéb jellemzőket.
A figyelésnek ennek az erőfeszítésnek szerves részét kell képeznie, nem pedig elszigetelt gyakorlatnak. Láthatja, hogy a rendszer és erőforrásai hogyan teljesítenek idővel. Ezután finomhangolhatja őket az érték maximalizálása érdekében, és meggyőződhet arról, hogy továbbra is megfelelnek a teljesítményszabványoknak.
Ne feledje, hogy a teljesítménycélok időről időre változnak, a változásokra reagálva. Frissítse a teljesítménymodellt a tesztelt és figyelt metrikák alapján. Egyértelműen jelezheti a folyamatok teljesítményére gyakorolt megnövekedett, csökkentett vagy nem befolyásolható hatást.
Mindig készen áll arra, hogy újratárgyalja és visszaállítsa az üzleti érdekelt felekkel szembeni elvárásokat.
Példaforgatókönyv
A Contoso Event Solutions olyan terméket kínál, amellyel az eseménybelépő személyzet beolvashatja a jegyeket a mobileszközön, és gyorsan engedélyezheti a belépést egy jegyekkel rendelkező helyszínre az arra jogosultak számára. A rendszer teljesen offline módban és felhőalapú verzióként is elérhető a jegyek duplikációja miatt aggódó helyszínek számára. Az offline mód rendkívül teljesítménnyel rendelkezik, de az online módból hiányoznak a teljesítménycélok. A fejlesztési csapat nemrég fektetett be néhány fejlesztési ciklust, hogy működjön rajta, és most a teljesítmény sokkal javult, és megfelel a céloknak. Az üzleti érdekelt felek hamarosan bővítenék ügyfélkörüket a nagyobb helyszínek támogatása érdekében.
A fejlesztési teljesítmény tesztelése
A teljesítményteszteket olyan minőségi kapukként kell formalizálni, amelyek jóváhagyhatják vagy elutasíthatják a kiadási előléptetést és az éles környezetben történő végső üzembe helyezést.
Ezek az ellenőrzőpontok biztosítják, hogy az üzembe helyezés minden szakasza megfeleljen a szükséges teljesítményszabványoknak, mielőtt továbblép a következőre. Az ellenőrzőpontok segítenek megelőzni a nem szándékos teljesítményregressziót. Ha például a teljesítmény jelentősen elmarad az elvárásoktól, a fejlesztések befejezéséig blokkolhatja a kiadást.
A Contoso kihívása
- A csapat jelentős időt és energiát fektetett abba, hogy elfogadható teljesítményt érjen el az alkalmazás online verziójához, de jelenleg nincs rendszer a regresszió megelőzésére.
- A következő funkció, amelyet a hozzáadásra terveznek, az a lehetőség, hogy a helyszín a résztvevő képének megjelenítését és a további ellenőrzést is lehetővé teszi. Fennáll annak a kockázata, hogy a további fényképkeresés és -letöltés lelassítja a folyamatot.
- Formális folyamat nélkül fennáll annak a kockázata, hogy az online és az offline verziók teljesítményét negatívan befolyásolhatja a további funkció, és ezek a célok alá eshetnek.
A megközelítés és az eredmények alkalmazása
- A csapat automatikus teljesítményteszteket integrál a buildelési folyamatba. Ha szigorú teljesítményalapú "go/no-go" feltételeket implementál a buildelési folyamatban, a csapat biztosabb abban, hogy az új funkció nem fog teljesítményregresszióval megjelenni.
- A csapat bölcsen implementálta ezt a tesztelést, mivel hibát észlelt a build legújabb verziójában. A hiba miatt az alkalmazás megpróbált csatlakozni az internethez, hogy letöltsön egy képet, miközben a képolvasó offline módra lett állítva, ami időtúllépést okozott minden jegyvizsgálatnál. A hiba automatikus teszteléssel való elfogása lehetővé tette, hogy a csapat kijavítsa a hibát, mielőtt kiadta az új verziót.
Optimalizálás megfigyelhetőséggel
Állítson be egy megismételhető folyamatot az éles valós tranzakciók és a teljesítménycélok eltéréseinek monitorozásához. Emellett szintetikus tranzakciókat is használhat az éles környezetben, és monitorozási riasztásokat állíthat be a teljesítményregressziókkal kapcsolatban.
Szeretne betekintést kapni a rendszer tényleges teljesítményébe valós terhelés alatt, amely nem szimulálható tesztekkel. Ezután proaktív módon azonosíthatja a problémákat és a fejlesztési területeket, például a lehetséges szűk keresztmetszeteket, a kihasználatlan erőforrásokat és egyéb problémákat.
A Contoso kihívása
- Egy olyan esemény során, ahol online jegyérvényesítést használnak, a háttérrendszert nagy mértékben használják.
- Létezik egy alkalmazásteljesítmény-monitorozási (APM) rendszer, de nem használták az éles tranzakciók állapotának figyelésére.
A megközelítés és az eredmények alkalmazása
- A csapat úgy döntött, hogy frissített folyamatokat vezet be az állapotmetrikák jobb rögzítése érdekében:
- A riasztásokat a teljesítmény percentilisei és a teljesítmény-kiugró értékek alapján konfigurálják. Nincsenek riasztások, amelyek azt jelzik, hogy a rendszer elfogadható tartományban teljesít a legtöbb jegyvizsgálat esetében.
- Az offline esemény befejezése után a rendszer feltölti a jegyvizsgálatok telemetriáját kötegbe, és ezek a metrikák is végighaladnak egy folyamaton, hogy megkeresse az elfogadható teljesítménytől való eltéréseket.
- A csapat emellett szintetikus tranzakciótesztelést is implementál a teljesítménymonitorozás teljesítményének növeléséhez. Mivel szinte minden esemény hétvégén és este zajlik, a csapat a hét során szintetikus tranzakciós tesztelést használ a teljesítménykonfiguráció konzisztensebb alapkonfigurációjának létrehozásához.
Számítási feladatok változásainak intelligens kezelése
Kezelje a teljesítmény erózióját a használat növekedésével, a funkciók változásának és az adatok időbeli halmozódásának növekedésével a teljesítmény fenntartása érdekében. Az elvárások visszaállítása és új célok létrehozása, ha a finomhangolás csak rövid távú előnyökkel jár.
Ennek a megközelítésnek a használatával megőrizheti a teljesítmény állapotát, mielőtt a romlás olyan problémákká alakul, amelyek negatívan befolyásolják a felhasználói élményt az elfogadható tartományon túl.
A célok módosítása alaphelyzetbe állítja a teljesítménymodellt, és nem pazarolja az időt a kapacitását elérő rendszer optimalizálására.
A Contoso kihívása
- Az értékesítési csapat agresszívan indított új eseményhelyszíneket a rendszerbe. Az üzlet jó.
- A számítási feladatok monitorozási rendszere elkezdte megfigyelni, hogy a teljesítményköltségvetés egyre több és több időt vesz igénybe, még új funkciók bevezetése nélkül is.
- Módosítás nélkül ez a pályák a teljesítmény elfogadhatatlan regressziójához vezethetnek, ami miatt a számítási feladat kimaradásnak van kitéve, ha incidens történik.
A megközelítés és az eredmények alkalmazása
- A csapat tisztában van azzal, hogy az online események adatkeresési mechanizmusa egyre több ügyfelet vesz fel, és nagyon nagy mennyiségű lekérdezést végez az adatokon.
- Egyes lekérdezésoptimalizálások segítettek megőrizni a megnövekedett használatot, ami további károkat okoz. Az elkövetkező hónapokban a csapat azt tervezi, hogy a különböző eseményeket különböző adatpartíciókra bontja, hogy csökkentse a lekérdezések vizsgálatának szükségességét. Ez támogatja a számítási feladatok folyamatos horizontális felskálázását.
- Azt is felismerik, hogy tovább optimalizálhatják a rendszert a növekedésre azáltal, hogy eltávolítják a jegyadatokat a régi eseményekből. A régi események keresése nem olyan dolog, amelyet a jegyérvényesítési rendszernek el kell végeznie, így az adatok áthelyezhetők egy jelentéskészítésre és előzménykeresésre dedikált tárolóba.