Kuinka nukkua hyvin, kun sinulla on pilvipalvelu: arkkitehtonisia perusvinkkejä

Kuinka nukkua hyvin, kun sinulla on pilvipalvelu: arkkitehtonisia perusvinkkejäLOST by sophiagworld

Tämä artikkeli sisältää joitakin yleisiä malleja, jotka auttavat insinöörejä työskentelemään suurten palvelujen kanssa, joita miljoonat käyttäjät käyttävät. 

Kirjoittajan kokemuksen mukaan tämä ei ole tyhjentävä luettelo, mutta todellakin tehokas neuvoja. Joten aloitetaan.

Käännetty tuella Mail.ru Pilviratkaisut.

Entry level

Alla luetellut toimenpiteet ovat suhteellisen yksinkertaisia ​​toteuttaa, mutta niillä on suuri vaikutus. Jos et ole kokeillut niitä aiemmin, tulet yllättymään merkittävistä parannuksista.

Infrastruktuuri koodina

Ensimmäinen osa neuvoista on toteuttaa infrastruktuuri koodina. Tämä tarkoittaa, että sinulla on oltava ohjelmallinen tapa ottaa käyttöön koko infrastruktuuri. Se kuulostaa monimutkaiselta, mutta puhumme itse asiassa seuraavasta koodista:

100 virtuaalikoneen käyttöönotto

  • Ubuntun kanssa
  • 2 Gt RAM-muistia kussakin
  • heillä on seuraava koodi
  • näillä parametreilla

Voit seurata infrastruktuurin muutoksia ja palata niihin nopeasti versionhallinnan avulla.

Minun modernisti sanoo, että voit käyttää Kubernetes/Dockeria tehdäksesi kaikki edellä mainitut, ja hän on oikeassa.

Lisäksi voit tarjota automaatiota Chefin, Puppetin tai Terraformin avulla.

Jatkuva integrointi ja toimitus

Skaalautuvan palvelun luomiseksi on tärkeää rakentaa ja testata putki jokaista vetopyyntöä varten. Vaikka testi on hyvin yksinkertainen, se varmistaa ainakin, että käyttämäsi koodi käännetään.

Joka kerta tässä vaiheessa vastaat kysymykseen: tuleeko kokoonpanoni kokoamaan ja läpäisemään testit, onko se voimassa? Tämä saattaa tuntua matalalta rimalta, mutta se ratkaisee monia ongelmia.

Kuinka nukkua hyvin, kun sinulla on pilvipalvelu: arkkitehtonisia perusvinkkejä
Mikään ei ole kauniimpaa kuin näiden punkkien näkeminen

Tämän tekniikan osalta voit arvioida Githubin, CircleCI:n tai Jenkinsin.

Kuormantasaajat

Haluamme siis suorittaa kuormantasaajan ohjaamaan liikennettä ja varmistaaksemme tasaisen kuormituksen kaikille solmuille tai palvelun jatkumisen epäonnistuessa:

Kuinka nukkua hyvin, kun sinulla on pilvipalvelu: arkkitehtonisia perusvinkkejä
Kuormantasauslaite tekee yleensä hyvää työtä liikenteen jakamisessa. Paras käytäntö on ylitasapainottaa, jotta sinulla ei ole yhtäkään vikakohtaa.

Tyypillisesti kuormituksen tasaajat määritetään käyttämääsi pilveen.

RayID, korrelaatiotunnus tai UUID pyyntöjä varten

Oletko koskaan törmännyt sovellusvirheeseen, jossa on tällainen viesti: "Jotain meni pieleen. Tallenna tämä tunnus ja lähetä se tukitiimillemme"?

Kuinka nukkua hyvin, kun sinulla on pilvipalvelu: arkkitehtonisia perusvinkkejä
Yksilöllinen tunniste, korrelaatiotunnus, RayID tai mikä tahansa muunnelmista on yksilöllinen tunniste, jonka avulla voit seurata pyyntöä koko sen elinkaaren ajan. Tämän avulla voit seurata koko pyyntöpolkua lokeissa.

Kuinka nukkua hyvin, kun sinulla on pilvipalvelu: arkkitehtonisia perusvinkkejä
Käyttäjä tekee pyynnön järjestelmälle A, sitten A ottaa yhteyttä B:hen, joka ottaa yhteyttä C:hen, tallentaa sen X:ään ja sitten pyyntö palautetaan A:lle.

Jos muodostaisit etäyhteyden virtuaalikoneen ja yrittäisit jäljittää pyyntöpolun (ja manuaalisesti korreloida soitettavat puhelut), tulisit hulluksi. Yksilöllinen tunniste tekee elämästä paljon helpompaa. Tämä on yksi yksinkertaisimmista asioista, jonka voit tehdä säästääksesi aikaa palvelusi kasvaessa.

Keskitaso

Tässä olevat neuvot ovat monimutkaisempia kuin aiemmat, mutta oikeat työkalut helpottavat työtä ja tuovat sijoitetun pääoman tuottoa myös pienille ja keskisuurille yrityksille.

Keskitetty kirjaus

Onnittelut! Olet ottanut käyttöön 100 virtuaalikonetta. Seuraavana päivänä toimitusjohtaja tulee ja valittaa virheestä, jonka hän sai testattaessa palvelua. Se ilmoittaa vastaavan tunnuksen, josta puhuimme edellä, mutta sinun on selattava 100 koneen lokit löytääksesi kaatumisen aiheuttaneen tunnuksen. Ja se on löydettävä ennen huomista esitystä.

Vaikka tämä kuulostaa hauskalta seikkailulta, on parasta varmistaa, että voit etsiä kaikista aikakauslehdistä yhdestä paikasta. Ratkaisin lokien keskittämisongelman ELK-pinon sisäänrakennetulla toiminnallisuudella: se tukee haettavaa lokikeräystä. Tämä todella auttaa ratkaisemaan tietyn lehden löytämisen ongelman. Bonuksena voit luoda kaavioita ja muita hauskoja asioita.

Kuinka nukkua hyvin, kun sinulla on pilvipalvelu: arkkitehtonisia perusvinkkejä
ELK-pinotoiminto

Valvontaagentit

Nyt kun palvelusi on käytössä, sinun on varmistettava, että se toimii sujuvasti. Paras tapa tehdä tämä on ajaa useita agentit, jotka toimivat rinnakkain ja tarkistavat, että se toimii ja perustoiminnot suoritetaan.

Tässä vaiheessa tarkistat sen juoksurakenne tuntuu hyvältä ja toimii hyvin.

Pienille ja keskisuurille projekteille suosittelen Postmania API:iden seurantaan ja dokumentointiin. Mutta yleensä haluat vain varmistaa, että sinulla on tapa tietää, milloin katkos on tapahtunut, ja saada ilmoituksen ajoissa.

Automaattinen skaalaus kuormituksesta riippuen

Se on hyvin yksinkertaista. Jos sinulla on VM:n huoltopyyntöjä ja sen muistin käyttö lähestyy 80 %, voit joko lisätä sen resursseja tai lisätä klusteriin lisää virtuaalikoneita. Näiden toimintojen automaattinen suorittaminen sopii erinomaisesti elastisiin tehonmuutoksiin kuormituksen alaisena. Mutta sinun tulee aina olla varovainen kuluttamasi rahan suhteen ja asettaa kohtuulliset rajat.

Kuinka nukkua hyvin, kun sinulla on pilvipalvelu: arkkitehtonisia perusvinkkejä
Useimmissa pilvipalveluissa voit määrittää sen skaalautumaan automaattisesti käyttämällä useampia tai tehokkaampia palvelimia.

Kokeilujärjestelmä

Hyvä tapa ottaa päivitykset käyttöön turvallisesti on testata jotain 1 %:lle käyttäjistä tunnin ajan. Olet tietysti nähnyt tällaisia ​​mekanismeja toiminnassa. Esimerkiksi Facebook näyttää osan yleisöstä eri värillä tai muuttaa kirjasinkokoa nähdäkseen, miten käyttäjät näkevät muutokset. Tätä kutsutaan A/B-testaukseksi.

Jopa uuden ominaisuuden julkaiseminen voidaan aloittaa kokeiluna ja sitten päättää, kuinka se julkaistaan. Saat myös mahdollisuuden "muistaa" tai muuttaa kokoonpanoa lennossa sen toiminnon perusteella, joka aiheuttaa palvelusi huononemista.

Edistynyt taso

Tässä on vinkkejä, joita on melko vaikea toteuttaa. Tarvitset todennäköisesti hieman enemmän resursseja, joten pienen tai keskisuuren yrityksen on vaikea hallita tätä.

Sinivihreät käyttöönotot

Tätä kutsun "Erlang"-tapoja avautua. Erlangia käytettiin laajalti puhelinyhtiöiden ilmestyessä. Puheluiden reitittämiseen alettiin käyttää ohjelmistokytkimiä. Näiden kytkimien ohjelmiston päätarkoitus oli olla katkaisematta puheluita järjestelmäpäivitysten aikana. Erlangilla on mukava tapa ladata uusi moduuli kaatamatta edellistä.

Tämä vaihe riippuu kuormituksen tasapainottimen läsnäolosta. Oletetaan, että sinulla on ohjelmistosi versio N ja haluat sitten ottaa käyttöön version N+1. 

Sinä voisi vain lopeta palvelu ja julkaise seuraava versio kerrallaan, joka toimii käyttäjillesi ja saat käyttökatkoksia. Mutta oletetaan, että sinulla on todella tiukat SLA-ehdot. Joten SLA 99,99% tarkoittaa, että voit siirtyä offline-tilaan vain 52 minuuttia vuodessa.

Jos todella haluat saavuttaa tällaisia ​​indikaattoreita, tarvitset kaksi käyttöönottoa samanaikaisesti: 

  • se, joka on juuri nyt (N);
  • seuraava versio (N+1). 

Pyydät kuormantasainta ohjaamaan prosenttiosuuden liikenteestä uuteen versioon (N+1) samalla kun tarkkailet aktiivisesti regressioita.

Kuinka nukkua hyvin, kun sinulla on pilvipalvelu: arkkitehtonisia perusvinkkejä
Meillä on vihreä N-käyttöönotto, joka toimii hyvin. Yritämme siirtyä tämän käyttöönoton seuraavaan versioon

Ensin lähetämme todella pienen testin nähdäksemme, toimiiko N+1-käyttöönottomme pienellä liikennemäärällä:

Kuinka nukkua hyvin, kun sinulla on pilvipalvelu: arkkitehtonisia perusvinkkejä
Lopuksi meillä on joukko automaattisia tarkistuksia, jotka suoritamme lopulta, kunnes käyttöönotto on valmis. Jos sinä erittäin hyvin varovainen, voit myös tallentaa N-käyttöönottosi ikuisesti nopeaa palautusta varten, jos regressio on huono:

Kuinka nukkua hyvin, kun sinulla on pilvipalvelu: arkkitehtonisia perusvinkkejä
Jos haluat mennä vielä edistyneemmälle tasolle, anna kaiken sinivihreän käyttöönoton suorittaa automaattisesti.

Poikkeamien havaitseminen ja automaattinen lievennys

Koska sinulla on keskitetty hakkuu ja hyvä lokinkeruu, voit asettaa jo korkeampia tavoitteita. Esimerkiksi ennakoivasti epäonnistumisia. Toimintoja seurataan monitoreissa ja lokeissa ja rakennetaan erilaisia ​​kaavioita - ja voit ennustaa etukäteen, mikä menee pieleen:

Kuinka nukkua hyvin, kun sinulla on pilvipalvelu: arkkitehtonisia perusvinkkejä
Kun poikkeamat havaitaan, alat tutkia joitain palvelun tarjoamia vihjeitä. Esimerkiksi prosessorin kuormituksen piikki voi osoittaa, että kiintolevyssä on vika, kun taas pyyntöjen piikki voi tarkoittaa, että sinun on skaalattava. Tällaisten tilastotietojen avulla voit tehdä palvelusta proaktiivisen.

Näiden oivallusten avulla voit skaalata mihin tahansa ulottuvuuteen ja muuttaa ennakoivasti ja reaktiivisesti koneiden, tietokantojen, yhteyksien ja muiden resurssien ominaisuuksia.

Siinä kaikki!

Tämä prioriteettiluettelo säästää sinua monilta ongelmilta, jos nostat pilvipalvelua.

Alkuperäisen artikkelin kirjoittaja kehottaa lukijoita jättämään kommenttinsa ja tekemään muutoksia. Artikkeli jaetaan avoimena lähdekoodina, tekijän vetopyynnöt hyväksyy Githubissa.

Mitä muuta luettavaa aiheesta:

  1. Mene ja suorittimen välimuistit
  2. Kubernetes piratismin hengessä toteutusmallilla
  3. Kanavamme Kubernetesin ympärillä Telegramissa

Lähde: will.com

Lisää kommentti