Kako preći na oblak za dva sata zahvaljujući Kubernetesu i automatizaciji

Kako preći na oblak za dva sata zahvaljujući Kubernetesu i automatizaciji

Kompanija URUS isprobala je Kubernetes u različitim oblicima: nezavisnu implementaciju na golom metalu, u Google Cloud-u, a zatim je svoju platformu prenijela u oblak Mail.ru Cloud Solutions (MCS). Igor Šiškin priča kako su izabrali novog provajdera u oblaku i kako su uspeli da migriraju na njega za rekordna dva sata (t3ran), viši sistem administrator u URUS-u.

Šta radi URUS?

Postoji mnogo načina da se poboljša kvalitet urbanog okruženja, a jedan od njih je da ga učinimo ekološki prihvatljivim. Upravo na tome radi kompanija URUS - Smart Digital Services. Ovdje implementiraju rješenja koja pomažu preduzećima da prate važne ekološke indikatore i smanje njihov negativan utjecaj na okoliš. Senzori prikupljaju podatke o sastavu vazduha, nivou buke i drugim parametrima, a zatim ih šalju na jedinstvenu URUS-Ekomon platformu na analizu i davanje preporuka.

Kako URUS funkcioniše iznutra

Tipičan klijent URUS-a je kompanija koja se nalazi u ili blizu stambenog naselja. To može biti fabrika, luka, željeznički depo ili bilo koji drugi objekat. Ukoliko je naš klijent već dobio upozorenje, kažnjen zbog zagađenja životne sredine, ili želi da pravi manje buke, smanji količinu štetnih emisija, dolazi kod nas, a mi mu već nudimo gotovo rešenje za monitoring životne sredine.

Kako preći na oblak za dva sata zahvaljujući Kubernetesu i automatizaciji
Grafikon praćenja koncentracije H2S prikazuje redovne noćne emisije iz obližnjeg postrojenja

Uređaji koje koristimo u URUS-u sadrže nekoliko senzora koji prikupljaju informacije o sadržaju određenih gasova, nivoima buke i druge podatke za procenu stanja životne sredine. Tačan broj senzora uvijek je određen specifičnim zadatkom.

Kako preći na oblak za dva sata zahvaljujući Kubernetesu i automatizaciji
Ovisno o specifičnostima mjerenja, uređaji sa senzorima mogu se postaviti na zidove zgrada, stubove i druga proizvoljna mjesta. Svaki takav uređaj prikuplja informacije, agregira ih i šalje gatewayu za primanje podataka. Tamo spremamo podatke za dugotrajno skladištenje i prethodno ih obrađujemo za kasniju analizu. Najjednostavniji primjer onoga što dobijamo kao rezultat analize je indeks kvaliteta zraka, također poznat kao AQI.

Paralelno, na našoj platformi rade mnoge druge usluge, ali su uglavnom uslužne prirode. Na primjer, usluga obavještavanja šalje obavještenja klijentima ako bilo koji od praćenih parametara (na primjer, sadržaj CO2) premašuje dozvoljenu vrijednost.

Kako pohranjujemo podatke. Priča o Kubernetesu na golom metalu

URUS projekat monitoringa životne sredine ima nekoliko skladišta podataka. U jednom čuvamo "sirove" podatke - ono što smo dobili direktno od samih uređaja. Ovo skladište je “magnetna” traka, kao na starim kasetama, sa istorijom svih indikatora. Drugi tip skladištenja koristi se za prethodno obrađene podatke - podatke sa uređaja, obogaćene metapodacima o vezama između senzora i očitavanja samih uređaja, povezanosti s organizacijama, lokacijama itd. Ove informacije vam omogućavaju da dinamički procijenite kako određeni indikator ima menjao u određenom vremenskom periodu. “Sirove” pohranu podataka koristimo, između ostalog, kao sigurnosnu kopiju i za vraćanje prethodno obrađenih podataka, ako se ukaže takva potreba.

Kada smo prije nekoliko godina pokušavali riješiti problem pohrane, imali smo dvije mogućnosti izbora platforme: Kubernetes i OpenStack. Ali pošto potonji izgleda prilično monstruozno (samo pogledajte njegovu arhitekturu da biste se u to uvjerili), odlučili smo se za Kubernetes. Još jedan argument u njegovu korist bila je relativno jednostavna softverska kontrola, mogućnost fleksibilnijeg rezanja čak i hardverskih čvorova prema resursima.

Paralelno sa savladavanjem samog Kubernetesa, proučavali smo i načine skladištenja podataka, dok smo svu našu pohranu u Kubernetesu držali na vlastitom hardveru, dobili smo odličnu ekspertizu. Sve što smo tada imali živeli smo na Kubernetesu: skladište sa punim stanjem, sistem za praćenje, CI/CD. Kubernetes je za nas postao platforma sve u jednom.

Ali želeli smo da radimo sa Kubernetesom kao servisom, a ne da se bavimo njegovom podrškom i razvojem. Osim toga, nije nam se svidjelo koliko nas je koštalo održavanje na golom metalu, a trebao nam je konstantan razvoj! Na primjer, jedan od prvih zadataka bio je integrirati Kubernetes Ingress kontrolere u mrežnu infrastrukturu naše organizacije. Ovo je glomazan zadatak, posebno ako se uzme u obzir da u to vrijeme ništa nije bilo spremno za programsko upravljanje resursima kao što su DNS zapisi ili dodjela IP adresa. Kasnije smo počeli eksperimentisati sa eksternim skladištenjem podataka. Nikada nismo stigli do implementacije PVC kontrolera, ali je već tada postalo jasno da je to velika oblast posla koja zahtijeva posvećene stručnjake.

Prelazak na Google Cloud Platform je privremeno rješenje

Shvatili smo da se ovo ne može nastaviti i premjestili smo naše podatke sa golog metala na Google Cloud Platform. Zapravo, u to vrijeme nije bilo mnogo zanimljivih opcija za rusku kompaniju: osim Google Cloud Platforma, sličnu uslugu nudio je samo Amazon, ali smo se ipak odlučili na Googleovo rješenje. Tada nam se činilo ekonomski isplativije, bliže Upstreamu, a da ne govorimo o tome da je sam Google svojevrsni PoC Kubernetes u proizvodnji.

Prvi veliki problem pojavio se na horizontu kako je naša baza kupaca rasla. Kada smo imali potrebu da pohranimo lične podatke, bili smo suočeni sa izborom: ili radimo sa Google-om i kršimo ruske zakone, ili tražimo alternativu u Ruskoj Federaciji. Izbor je, u cjelini, bio predvidljiv. 🙂

Kako smo vidjeli idealnu uslugu u oblaku

Do početka pretrage već smo znali šta želimo da dobijemo od budućeg cloud provajdera. Koju uslugu smo tražili:

  • Brz i fleksibilan. Tako da možemo brzo dodati novi čvor ili nešto implementirati u bilo koje vrijeme.
  • Jeftino. Bili smo veoma zabrinuti zbog finansijskog pitanja, jer smo bili ograničeni u resursima. Već smo znali da želimo da radimo sa Kubernetesom, a sada je zadatak bio da minimiziramo njegovu cenu kako bismo povećali ili barem održali efikasnost korišćenja ovog rešenja.
  • Automatizovano. Planirali smo da sa servisom radimo preko API-ja, bez menadžera i telefonskih poziva ili situacija u kojima treba ručno da podignemo nekoliko desetina čvorova u hitnom režimu. Budući da je većina naših procesa automatizirana, isto smo očekivali i od cloud servisa.
  • Sa serverima u Ruskoj Federaciji. Naravno, planirali smo da se pridržavamo ruskog zakonodavstva i tog istog 152-FZ.

U to vrijeme u Rusiji je bilo malo Kubernetes aaS provajdera, a pri odabiru provajdera bilo nam je važno da ne kompromitujemo svoje prioritete. Tim Mail.ru Cloud Solutions, sa kojim smo počeli da radimo i još uvek sarađujemo, pružio nam je potpuno automatizovanu uslugu, sa API podrškom i zgodnom kontrolnom tablom koja uključuje Horizon – sa njom smo mogli brzo da podignemo proizvoljan broj čvorova.

Kako smo uspjeli da migriramo u MCS za dva sata

U ovakvim potezima mnoge kompanije se suočavaju sa poteškoćama i zastojima, ali u našem slučaju ih nije bilo. Imali smo sreće: pošto smo već radili na Kubernetesu pre početka migracije, jednostavno smo ispravili tri fajla i pokrenuli naše usluge na novoj platformi u oblaku, MCS. Da vas podsjetim da smo do tada konačno napustili goli metal i živjeli na Google Cloud platformi. Dakle, sama selidba nije trajala više od dva sata, plus nešto više vremena (oko sat vremena) utrošeno je na kopiranje podataka sa naših uređaja. Tada smo već koristili Spinnaker (multi-cloud CD servis za pružanje kontinuirane isporuke). Također smo ga brzo dodali u novi klaster i nastavili s radom kao i obično.

Zahvaljujući automatizaciji razvojnih procesa i CI/CD-u, Kubernetesom u URUS-u upravlja jedan stručnjak (a to sam ja). U nekoj fazi sa mnom je radio još jedan sistem administrator, ali onda se pokazalo da smo već automatizirali svu glavnu rutinu i da je bilo sve više zadataka na dijelu našeg glavnog proizvoda i imalo je smisla usmjeriti resurse na to.

Dobili smo ono što smo očekivali od cloud provajdera, budući da smo saradnju započeli bez iluzija. Ako je bilo incidenata, uglavnom su bili tehnički i oni koji bi se lako mogli objasniti relativnom svježinom usluge. Glavna stvar je da MCS tim brzo otklanja nedostatke i brzo odgovara na pitanja u glasnicima.

Ako uporedim svoje iskustvo sa Google Cloud Platformom, u njihovom slučaju nisam znao ni gdje je dugme za povratne informacije, jer jednostavno nije bilo potrebe. A ako je bilo problema, sam Google je slao obavještenja jednostrano. Ali u slučaju MCS-a, mislim da je velika prednost to što su što bliže ruskim klijentima – i geografski i mentalno.

Kako vidimo rad sa oblacima u budućnosti

Sada je naš rad usko vezan za Kubernetes i potpuno nam odgovara sa stanovišta infrastrukturnih zadataka. Stoga ne planiramo nigdje seliti sa njega, iako stalno uvodimo nove prakse i servise kako bismo pojednostavili rutinske zadatke i automatizirali nove, povećali stabilnost i pouzdanost usluga... Sada pokrećemo uslugu Chaos Monkey (konkretno , koristimo chaoskube, ali to ne mijenja koncept: ), koji je izvorno kreirao Netflix. Chaos Monkey radi jednu jednostavnu stvar: briše nasumični Kubernetes pod u nasumično vrijeme. Ovo je neophodno da bi naš servis normalno živio sa brojem instanci n–1, tako da se obučavamo da budemo spremni za sve probleme.

Sada vidim korištenje rješenja treće strane - istih cloud platformi - kao jedinu ispravnu stvar za mlade kompanije. Obično su na početku svog puta ograničeni u resursima, ljudskim i finansijskim, a izgradnja i održavanje vlastitog oblaka ili podatkovnog centra preskupo je i radno intenzivno. Provajderi u oblaku vam omogućavaju da minimizirate ove troškove; od njih možete brzo dobiti resurse potrebne za rad servisa ovdje i sada, te platiti te resurse naknadno. Što se tiče kompanije URUS, za sada ćemo ostati vjerni Kubernetesu u oblaku. Ali ko zna, možda ćemo se morati geografski proširiti ili implementirati rješenja bazirana na nekoj specifičnoj opremi. Ili će možda količina utrošenih resursa opravdati vlastiti Kubernetes na golom metalu, kao u dobra stara vremena. 🙂

Šta smo naučili iz rada sa uslugama u oblaku

Počeli smo koristiti Kubernetes na golom metalu, a čak je i tamo bio dobar na svoj način. Ali njegove prednosti su otkrivene upravo kao aaS komponenta u oblaku. Ako postavite cilj i automatizirate sve što je više moguće, moći ćete izbjeći zaključavanje dobavljača i kretanje između cloud provajdera će trajati nekoliko sati, a nervne ćelije će ostati s nama. Možemo savjetovati druge kompanije: ako želite pokrenuti vlastitu (cloud) uslugu, s ograničenim resursima i maksimalnom brzinom za razvoj, počnite odmah iznajmljivanjem cloud resursa i izgradite svoj data centar nakon što Forbes piše o vama.

izvor: www.habr.com

Dodajte komentar