Wéi friddlech schlofe wann Dir e Cloud Service hutt: Basis architektonesch Tipps

Wéi friddlech schlofe wann Dir e Cloud Service hutt: Basis architektonesch TippsLOST vun sophiagworld

Dësen Artikel enthält e puer gemeinsam Mustere fir Ingenieuren ze hëllefen mat grousse Servicer ze schaffen, déi vu Millioune Benotzer zougänglech sinn. 

An der Erfahrung vum Auteur ass dëst net eng ustrengend Lëscht, awer wierklech effektiv ass beroden. Also, loosst eis ufänken.

Mat Ënnerstëtzung iwwersat Mail.ru Cloud Léisunge.

Éischten Niveau

Déi hei ënnendrënner opgezielt Moossname si relativ einfach ze realiséieren, awer hunn en héijen Impakt. Wann Dir se nach net probéiert hutt, sidd Dir iwwerrascht iwwer déi bedeitend Verbesserungen.

Infrastruktur als Code

Den éischten Deel vum Berod ass d'Infrastruktur als Code ëmzesetzen. Dëst bedeit datt Dir e programmateschen Wee muss hunn fir déi ganz Infrastruktur z'installéieren. Et kléngt komplizéiert, awer mir schwätzen iwwer de folgende Code:

Deployment vun 100 virtuelle Maschinnen

  • mat Ubuntu
  • 2 GB RAM all
  • si wäerten de folgende Code hunn
  • mat dëse Parameteren

Dir kënnt Ännerungen an Ärer Infrastruktur verfollegen a séier mat Versiounskontrolle zréckgoen.

De Modernist a mir seet datt Dir Kubernetes / Docker benotze kënnt fir all dat hei uewen ze maachen, an hien huet Recht.

Zousätzlech kënnt Dir Automatiséierung mat Chef, Puppet oder Terraform ubidden.

Kontinuéierlech Integratioun a Liwwerung

Fir e skalierbare Service ze kreéieren ass et wichteg eng Pipeline ze bauen an ze testen fir all Pull Ufro. Och wann den Test ganz einfach ass, wäert et op d'mannst suergen datt de Code deen Dir ofsetzt kompiléiert.

All Kéier an dëser Etapp äntwert Dir d'Fro: wäert meng Versammlung Tester kompiléieren a passéieren, ass et valabel? Dëst kann wéi eng niddereg Bar schéngen, mee et léist vill Problemer.

Wéi friddlech schlofe wann Dir e Cloud Service hutt: Basis architektonesch Tipps
Et gëtt näischt méi schéin wéi dës Zecken ze gesinn

Fir dës Technologie kënnt Dir Github, CircleCI oder Jenkins evaluéieren.

Last Balancer

Also, mir wëllen e Laaschtbalancer lafen fir de Verkéier ze redirectéieren an d'selwecht Belaaschtung op all Noden ze garantéieren oder de Service geet weider am Fall vun engem Ausfall:

Wéi friddlech schlofe wann Dir e Cloud Service hutt: Basis architektonesch Tipps
E Lastbalancer mécht normalerweis eng gutt Aarbecht fir de Verkéier ze verdeelen. Déi bescht Praxis ass iwwerbalance sou datt Dir keen eenzege Punkt vum Echec hutt.

Typesch sinn Lastbalancer an der Wollek konfiguréiert déi Dir benotzt.

RayID, Korrelatioun ID oder UUID fir Ufroen

Hutt Dir jeemools en Applikatiounsfehler mat engem Message wéi dës begéint: "Eppes ass falsch gaang. Späichert dës ID a schéckt se un eis Supportteam"?

Wéi friddlech schlofe wann Dir e Cloud Service hutt: Basis architektonesch Tipps
En eenzegaartegen Identifizéierer, Korrelatiouns-ID, RayID, oder eng vun de Variatiounen, ass en eenzegaartegen Identifizéierer deen Iech erlaabt eng Ufro duerch säi Liewenszyklus ze verfolgen. Dëst erlaabt Iech de ganzen Ufrowee an de Logbicher ze verfolgen.

Wéi friddlech schlofe wann Dir e Cloud Service hutt: Basis architektonesch Tipps
De Benotzer mécht eng Ufro un de System A, dann A kontaktéiert B, dee kontaktéiert C, späichert et am X, an da gëtt d'Ufro zréck op A

Wann Dir mat virtuelle Maschinnen op afstand verbënnt a probéiert den Ufrowee ze verfolgen (a manuell korreléieren wéi eng Uriff gemaach ginn), géift Dir verréckt ginn. En eenzegaartegen Identifizéierer ze hunn mécht d'Liewen vill méi einfach. Dëst ass eng vun den einfachsten Saachen déi Dir maache kënnt fir Zäit ze spueren wéi Äre Service wiisst.

Mëttelstuf Niveau

D'Berodung hei ass méi komplex wéi déi virdrun, awer déi richteg Tools maachen d'Aufgab méi einfach, e Rendement op Investitiounen och fir kleng a mëttelgrouss Firmen.

Zentraliséiert Logged

Gratulatioun! Dir hutt 100 virtuell Maschinnen ofgesat. Den nächsten Dag kënnt de CEO a beschwéiert sech iwwer e Feeler deen hien beim Test vum Service kritt huet. Et bericht déi entspriechend ID iwwer déi mir hei uewen geschwat hunn, awer Dir musst duerch d'Logbicher vun 100 Maschinnen kucken fir deen ze fannen deen den Crash verursaacht huet. An et muss virun der Presentatioun vu muer fonnt ginn.

Och wann dëst wéi eng lëschteg Aventure kléngt, ass et am beschten sécher ze stellen datt Dir d'Fäegkeet hutt all Zäitschrëften op enger Plaz ze sichen. Ech hunn de Problem vun der Zentraliséierung vu Logbicher geléist mat der agebauter Funktionalitéit vum ELK Stack: et ënnerstëtzt Sichbar Logsammlung. Dëst wäert wierklech hëllefen de Problem ze léisen fir e spezifesche Journal ze fannen. Als Bonus kënnt Dir Charts an aner lëschteg Saachen erstellen.

Wéi friddlech schlofe wann Dir e Cloud Service hutt: Basis architektonesch Tipps
ELK Stack Funktionalitéit

Iwwerwachung Agenten

Elo datt Äre Service op a leeft, musst Dir sécher sinn datt et glat leeft. De beschte Wee fir dëst ze maachen ass e puer ze lafen Agenten, déi parallel funktionnéieren a kucken ob et funktionnéiert an d'Basisoperatioune gemaach ginn.

Zu dësem Zäitpunkt kontrolléiert Dir dat de Lafbau fillt sech gutt a funktionnéiert gutt.

Fir kleng a mëttelgrouss Projete recommandéieren ech Postman fir d'Iwwerwaachung an d'Dokumentatioun vun APIen. Awer allgemeng wëllt Dir just sécherstellen datt Dir e Wee hutt fir ze wëssen wéini en Ausfall geschitt ass a fristgerecht informéiert ginn.

Autoscaling ofhängeg vun der Belaaschtung

Et ass ganz einfach. Wann Dir e VM Service Ufroen hutt an et kënnt op 80% Erënnerungsverbrauch, kënnt Dir entweder seng Ressourcen erhéijen oder méi VMs an de Cluster derbäisetzen. Automatesch Ausféierung vun dësen Operatiounen ass exzellent fir elastesch Kraaftverännerungen ënner Laascht. Awer Dir sollt ëmmer virsiichteg sinn wéi vill Suen Dir verbréngt a raisonnabel Grenzen setzen.

Wéi friddlech schlofe wann Dir e Cloud Service hutt: Basis architektonesch Tipps
Mat de meeschte Cloud-Servicer kënnt Dir et konfiguréieren fir autoscale mat méi Serveren oder méi mächtege Serveren ze benotzen.

Experiment System

E gudde Wee fir Updates sécher auszerollen ass eppes fir 1% vun de Benotzer fir eng Stonn ze testen. Dir hutt natierlech esou Mechanismen an Aktioun gesinn. Zum Beispill weist Facebook Deeler vum Publikum eng aner Faarf oder ännert d'Schrëftgréisst fir ze kucken wéi d'Benotzer d'Ännerunge gesinn. Dëst gëtt A/B Testen genannt.

Och d'Verëffentlechung vun enger neier Feature kann als Experiment gestart ginn an duerno festgeluecht ginn wéi se se verëffentlecht. Dir kritt och d'Fäegkeet ze "erënneren" oder d'Konfiguratioun op der Flucht ze änneren baséiert op der Funktioun déi Degradatioun an Ärem Service verursaacht.

Détailléiert Niveau

Hei sinn Tipps déi zimmlech schwéier ëmzesetzen. Dir wäert wahrscheinlech e bësse méi Ressourcen brauchen, also eng kleng oder mëttelgrouss Firma wäert et schwéier hunn dëst ze managen.

Blo-gréng Détachementer

Dat nennen ech den "Erlang" Manéier fir sech z'entwéckelen. Erlang gouf wäit benotzt wann Telefonsfirmen opgetaucht sinn. Softswitches hunn ugefaang fir Telefonsuriff ze routen. Den Haaptzweck vun der Software op dëse Schalter war net Uruff während Systemupdates ze falen. Erlang huet e flotte Wee fir en neie Modul ze lueden ouni dee virdrun ze crashen.

Dëse Schrëtt hänkt vun der Präsenz vun engem Lastbalancer of. Loosst eis virstellen datt Dir Versioun N vun Ärer Software hutt, an da wëllt Dir Versioun N+1 ofsetzen. 

Dir mir kéinten stoppt just de Service a rullt déi nächst Versioun aus an enger Zäit déi fir Är Benotzer funktionnéiert a kritt e puer Ausbroch. Awer ugeholl Dir hutt wierklech strikt SLA Konditiounen. Also, SLA 99,99% heescht datt Dir offline kënnt nëmmen vun 52 Minutten pro Joer.

Wann Dir wierklech esou Indikatoren wëllt erreechen, braucht Dir zwee Deployementer zur selwechter Zäit: 

  • deen deen elo richteg ass (N);
  • nächst Versioun (N+1). 

Dir sot de Lastbalancer fir e Prozentsaz vum Traffic op déi nei Versioun (N + 1) ze redirectéieren, während Dir aktiv fir Regressiounen iwwerwaacht.

Wéi friddlech schlofe wann Dir e Cloud Service hutt: Basis architektonesch Tipps
Hei hu mir e grénge N Deployment dee gutt funktionnéiert. Mir probéieren op déi nächst Versioun vun dëser Deployment ze plënneren

Als éischt schécken mir e wierklech klengen Test fir ze kucken ob eis N+1 Deployment mat enger klenger Quantitéit vum Traffic funktionnéiert:

Wéi friddlech schlofe wann Dir e Cloud Service hutt: Basis architektonesch Tipps
Schlussendlech hu mir eng Rei vun automatiséierte Kontrollen déi mir schlussendlech lafen bis eis Détachement fäerdeg ass. Wann s du ganz ganz virsiichteg, Dir kënnt och Är N Détachement fir ëmmer späicheren fir e schnelle Réckroll am Fall vu schlechter Regressioun:

Wéi friddlech schlofe wann Dir e Cloud Service hutt: Basis architektonesch Tipps
Wann Dir op en nach méi fortgeschrattem Niveau wëllt goen, loosst alles am blo-gréngen Deployment automatesch lafen.

Anomalie Detektioun an automatesch Ofsenkung

Gitt datt Dir zentraliséiert Logged a gutt Logsammlung hutt, kënnt Dir scho méi héich Ziler setzen. Zum Beispill, proaktiv Feeler virauszesoen. D'Funktioune ginn op Monitore verfollegt an a Logbicher a verschidde Diagrammer gi gebaut - an Dir kënnt am Viraus viraussoen wat falsch geet:

Wéi friddlech schlofe wann Dir e Cloud Service hutt: Basis architektonesch Tipps
Wann Anomalien entdeckt ginn, fänkt Dir un e puer vun den Hiweiser z'ënnersichen, déi de Service ubitt. Zum Beispill kann e Spike an der CPU-Laascht uginn datt eng Festplack feelt, während e Spike an Ufroe kann uginn datt Dir musst opskaléieren. Dës Zort vu statisteschen Donnéeën erlaabt Iech de Service proaktiv ze maachen.

Mat dësen Abléck kënnt Dir an all Dimensioun skala an proaktiv a reaktiv d'Charakteristike vu Maschinnen, Datenbanken, Verbindungen an aner Ressourcen änneren.

Dat ass alles!

Dës Lëscht vu Prioritéite spuert Iech vill Probleemer wann Dir e Cloud-Service ophëlt.

Den Auteur vum ursprénglechen Artikel invitéiert d'Lieser hir Kommentaren ze verloossen an Ännerungen ze maachen. Den Artikel gëtt als Open Source verdeelt, Pull Ufroe vum Auteur akzeptéiert op Github.

Wat soss iwwer dëst Thema ze liesen:

  1. Go an CPU Cache
  2. Kubernetes am Geescht vu Piraterie mat enger Schabloun fir Ëmsetzung
  3. Eise Kanal Around Kubernetes am Telegram

Source: will.com

Setzt e Commentaire