Hogyan aludj jól, ha felhőszolgáltatással rendelkezel: alapvető építészeti tippek

Hogyan aludj jól, ha felhőszolgáltatással rendelkezel: alapvető építészeti tippekELVESZTETT a sophiagworld

Ez a cikk néhány gyakori mintát tartalmaz, amelyek segítenek a mérnököknek nagyszabású szolgáltatásokkal dolgozni, amelyekhez több millió felhasználó fér hozzá. 

A szerző tapasztalatai szerint ez nem kimerítő lista, de valóban hatékony tanácsot. Szóval, kezdjük.

Lefordítva támogatással Mail.ru Cloud Solutions.

Első szint

Az alább felsorolt ​​intézkedések végrehajtása viszonylag egyszerű, de hatásuk nagy. Ha még nem próbálta őket, meg fog lepődni a jelentős fejlesztéseken.

Az infrastruktúra kódként

A tanács első része az infrastruktúra kódként való megvalósítása. Ez azt jelenti, hogy programozott módon kell telepítenie a teljes infrastruktúrát. Bonyolultnak hangzik, de valójában a következő kódról beszélünk:

100 virtuális gép telepítése

  • Ubuntuval
  • 2 GB RAM mindegyik
  • a következő kódjuk lesz
  • ezekkel a paraméterekkel

Nyomon követheti az infrastruktúra változásait, és gyorsan visszatérhet hozzájuk a verziókezelés segítségével.

A bennem élő modernista azt mondja, hogy a Kubernetes/Docker segítségével elvégezheti a fentieket, és igaza van.

Ezenkívül automatizálást biztosíthat a Chef, Puppet vagy Terraform segítségével.

Folyamatos integráció és szállítás

Skálázható szolgáltatás létrehozásához fontos, hogy minden lekérési kérelemhez legyen egy összeállítási és tesztelési folyamat. Még ha a teszt nagyon egyszerű is, legalább biztosítja, hogy a telepített kód le legyen fordítva.

Ebben a szakaszban minden alkalommal válaszol a következő kérdésre: az összeállításom összeállítja és átmegy a teszteken, érvényes? Ez alacsony lécnek tűnhet, de sok problémát megold.

Hogyan aludj jól, ha felhőszolgáltatással rendelkezel: alapvető építészeti tippek
Nincs szebb, mint látni ezeket a kullancsokat

Ehhez a technológiához értékelheti a Githubot, a CircleCI-t vagy a Jenkinst.

Terheléselosztók

Tehát egy terheléselosztót szeretnénk futtatni, hogy átirányítsuk a forgalmat, és biztosítsuk az egyenlő terhelést az összes csomóponton, vagy a szolgáltatás továbbra is meghibásodás esetén:

Hogyan aludj jól, ha felhőszolgáltatással rendelkezel: alapvető építészeti tippek
A terheléselosztó általában jó munkát végez a forgalom elosztásában. A legjobb gyakorlat a túlegyensúlyozás, hogy egyetlen hibapont se legyen.

A terheléselosztók általában az Ön által használt felhőben vannak konfigurálva.

RayID, korrelációs azonosító vagy UUID kérésekhez

Találkozott már olyan alkalmazáshibával, amely ehhez hasonló üzenetet mutat: "Valami elromlott. Mentse el ezt az azonosítót, és küldje el támogatási csapatunknak"?

Hogyan aludj jól, ha felhőszolgáltatással rendelkezel: alapvető építészeti tippek
Az egyedi azonosító, korrelációs azonosító, RayID vagy bármely változat olyan egyedi azonosító, amely lehetővé teszi a kérés nyomon követését annak teljes életciklusa során. Ez lehetővé teszi a teljes kérési útvonal nyomon követését a naplókban.

Hogyan aludj jól, ha felhőszolgáltatással rendelkezel: alapvető építészeti tippek
A felhasználó kérést intéz az A rendszerhez, majd A kapcsolatba lép B-vel, amely kapcsolatba lép C-vel, eltárolja X-ben, majd a kérést visszaküldi A-nak.

Ha távolról csatlakozna a virtuális gépekhez, és megpróbálná nyomon követni a kérés elérési útját (és manuálisan korrelálni a folyamatban lévő hívásokat), megőrülne. Az egyedi azonosító sokkal könnyebbé teszi az életet. Ez az egyik legegyszerűbb dolog, amellyel időt takaríthat meg szolgáltatása bővülésével.

Középszint

Az itteni tanácsok összetettebbek, mint a korábbiak, de a megfelelő eszközök megkönnyítik a feladatot, még a kis- és középvállalkozások számára is megtérülést biztosítva.

Központi naplózás

Gratulálunk! 100 virtuális gépet telepített. Másnap jön a vezérigazgató és panaszkodik a szolgáltatás tesztelése közben kapott hibára. Jelenti a megfelelő azonosítót, amelyről fentebb beszéltünk, de át kell néznie 100 gép naplóit, hogy megtalálja azt, amelyik az összeomlást okozta. És meg kell találni a holnapi bemutató előtt.

Noha ez egy szórakoztató kalandnak tűnik, a legjobb, ha gondoskodik arról, hogy az összes magazinban egy helyen keressen. A naplók központosításának problémáját az ELK verem beépített funkciójával oldottam meg: támogatja a kereshető naplógyűjtést. Ez valóban segít megoldani egy adott folyóirat megtalálásának problémáját. Bónuszként diagramokat és egyéb szórakoztató dolgokat hozhat létre.

Hogyan aludj jól, ha felhőszolgáltatással rendelkezel: alapvető építészeti tippek
ELK verem funkció

Ellenőrző ügynökök

Most, hogy szolgáltatása beindul és fut, gondoskodnia kell a zökkenőmentes működésről. Ennek legjobb módja több futtatása ügynökök, amelyek párhuzamosan működnek, és ellenőrzik a működését és az alapvető műveletek elvégzését.

Ezen a ponton ezt ellenőrizd a futó felépítés jó érzés és jól működik.

Kis- és közepes projektekhez a Postmant ajánlom az API-k figyelésére és dokumentálására. Általában azonban csak arról szeretne gondoskodni, hogy megtudja, ha kimaradás történt, és hogy időben értesüljön.

Automatikus skálázás a terheléstől függően

Ez nagyon egyszerű. Ha van egy virtuálisgép-szolgáltatási kérelme, és közeledik a 80%-os memóriahasználathoz, növelheti az erőforrásait, vagy további virtuális gépeket adhat hozzá a fürthöz. Ezen műveletek automatikus végrehajtása kiválóan alkalmas terhelés alatti rugalmas teljesítményváltozásokra. De mindig ügyeljen arra, hogy mennyi pénzt költ, és ésszerű határokat állítson fel.

Hogyan aludj jól, ha felhőszolgáltatással rendelkezel: alapvető építészeti tippek
A legtöbb felhőszolgáltatásnál több kiszolgáló vagy nagyobb teljesítményű kiszolgálók használatával konfigurálhatja az automatikus skálázást.

Kísérleti rendszer

A frissítések biztonságos bevezetésének jó módja, ha egy órán keresztül tesztelhet valamit a felhasználók 1%-a számára. Természetesen láttál már ilyen mechanizmusokat működés közben. Például a Facebook a közönség egyes részeit más színnel jeleníti meg, vagy módosítja a betűméretet, hogy lássa, hogyan érzékelik a felhasználók a változásokat. Ezt A/B tesztelésnek hívják.

Még egy új funkció kiadása is elindítható kísérletként, majd meghatározható a kiadás módja. Lehetőséget kap arra is, hogy „emlékezzen” vagy módosítsa a konfigurációt menet közben a szolgáltatás romlását okozó funkció alapján.

Emelt szintű

Íme olyan tippek, amelyeket meglehetősen nehéz megvalósítani. Valószínűleg egy kicsivel több erőforrásra lesz szüksége, így egy kis- vagy közepes méretű cég nehezen tudja kezelni ezt.

Kék-zöld bevetések

Ezt nevezem a kibontakozás "Erlang" módjának. Az Erlangot széles körben használták, amikor megjelentek a telefontársaságok. A Softswitcheket kezdték használni a telefonhívások irányítására. Az ezeken a kapcsolókon található szoftverek fő célja az volt, hogy ne szakítsa meg a hívásokat a rendszerfrissítések során. Az Erlang nagyszerű módja annak, hogy új modult töltsön be anélkül, hogy az előző összeomlna.

Ez a lépés a terheléselosztó meglététől függ. Tegyük fel, hogy rendelkezik a szoftver N verziójával, majd telepíteni szeretné az N+1 verziót. 

Ön tudnánk csak állítsa le a szolgáltatást, és tegye közzé a következő verziót egy olyan időpontban, amely a felhasználók számára megfelelő, és némi leállást kap. De tegyük fel, hogy van tényleg szigorú SLA feltételek. Tehát az SLA 99,99% azt jelenti, hogy offline módba léphet csak évi 52 perccel.

Ha valóban ilyen mutatókat szeretne elérni, akkor két telepítésre van szüksége egyszerre: 

  • amelyik éppen van (N);
  • következő verzió (N+1). 

Megkéri a terheléselosztót, hogy irányítsa át a forgalom bizonyos százalékát az új verzióra (N+1), miközben Ön aktívan figyeli a regressziókat.

Hogyan aludj jól, ha felhőszolgáltatással rendelkezel: alapvető építészeti tippek
Itt van egy zöld N telepítés, amely jól működik. Megpróbálunk áttérni a telepítés következő verziójára

Először küldünk egy nagyon kis tesztet, hogy megnézzük, működik-e az N+1 telepítésünk kis forgalom mellett:

Hogyan aludj jól, ha felhőszolgáltatással rendelkezel: alapvető építészeti tippek
Végül van egy sor automatizált ellenőrzésünk, amelyet végül futtatunk, amíg a telepítés be nem fejeződik. Ha te nagyon nagyon Vigyázat, az N telepítést örökre elmentheti, hogy rossz regresszió esetén gyorsan visszaállíthassa:

Hogyan aludj jól, ha felhőszolgáltatással rendelkezel: alapvető építészeti tippek
Ha még magasabb szintre szeretne lépni, hagyja, hogy a kék-zöld telepítésben minden automatikusan fusson.

Anomáliák észlelése és automatikus mérséklése

Tekintettel arra, hogy központosított naplózással és jó naplógyűjtéssel rendelkezik, már magasabb célokat is kitűzhet. Például proaktívan előre jelezze a kudarcokat. A funkciókat monitorokon és naplókban követik, és különféle diagramokat építenek fel – és előre megjósolhatja, hogy mi fog elromlani:

Hogyan aludj jól, ha felhőszolgáltatással rendelkezel: alapvető építészeti tippek
Az anomáliák észlelése után elkezdi megvizsgálni a szolgáltatás által nyújtott nyomokat. Például a CPU-terhelés megugrása azt jelezheti, hogy a merevlemez meghibásodik, míg a kérések megugrása azt jelezheti, hogy növelni kell a méretet. Az ilyen jellegű statisztikai adatok lehetővé teszik a szolgáltatás proaktívvá tételét.

Ezekkel a betekintésekkel bármilyen dimenzióban méretezhet, és proaktívan és reaktívan módosíthatja a gépek, adatbázisok, kapcsolatok és egyéb erőforrások jellemzőit.

Ez minden!

Ez a prioritáslista sok problémától kíméli meg Önt, ha felhőszolgáltatást hoz létre.

Az eredeti cikk szerzője arra kéri az olvasókat, hogy írják meg észrevételeiket és hajtsák végre a változtatásokat. A cikket nyílt forráskódúként terjesztik, a szerző kéri elfogadja a Githubon.

Mit érdemes még olvasni a témában:

  1. Menj és CPU gyorsítótárak
  2. Kubernetes a kalózkodás jegyében egy sablonnal a megvalósításhoz
  3. A Kubernetes körüli csatornánk a Telegramban

Forrás: will.com

Hozzászólás