Kako migrirati u oblak u dva sata zahvaljujući Kubernetesu i automatizaciji

Kako migrirati u oblak u dva sata zahvaljujući Kubernetesu i automatizaciji

Tvrtka URUS isprobala je Kubernetes u različitim oblicima: neovisna implementacija na golom metalu, u Google Cloudu, a zatim je svoju platformu prenijela u oblak Mail.ru Cloud Solutions (MCS). Igor Shishkin priča kako su odabrali novog cloud providera i kako su na njega uspjeli migrirati u rekordna dva sata (t3ran), viši sistem administrator u URUS-u.

Što URUS radi?

Mnogo je načina kako poboljšati kvalitetu urbanog okoliša, a jedan od njih je učiniti ga ekološki prihvatljivijim. Upravo na tome radi tvrtka URUS - Smart Digital Services. Ovdje implementiraju rješenja koja pomažu poduzećima u praćenju važnih ekoloških pokazatelja i smanjenju njihovog negativnog utjecaja na okoliš. Senzori prikupljaju podatke o sastavu zraka, razini buke i drugim parametrima te ih šalju na jedinstvenu platformu URUS-Ekomon na analizu i davanje preporuka.

Kako URUS djeluje iznutra

Tipičan klijent URUS-a je tvrtka koja se nalazi u ili u blizini stambenog naselja. To može biti tvornica, luka, željezničko skladište ili bilo koji drugi objekt. Ukoliko je naš klijent već dobio opomenu, kažnjen za onečišćenje okoliša ili želi manje bučiti, smanjiti količinu štetnih emisija, dolazi kod nas, a mi mu već nudimo gotovo rješenje za nadzor okoliša.

Kako migrirati u oblak u dva sata zahvaljujući Kubernetesu i automatizaciji
Grafikon praćenja koncentracije H2S pokazuje redovite noćne emisije iz obližnjeg postrojenja

Uređaji koje koristimo u URUS-u sadrže nekoliko senzora koji prikupljaju podatke o sadržaju pojedinih plinova, razini buke i druge podatke za procjenu stanja okoliša. Točan broj senzora uvijek je određen specifičnim zadatkom.

Kako migrirati u oblak u dva sata zahvaljujući Kubernetesu i automatizaciji
Ovisno o specifičnostima mjerenja, uređaji sa senzorima mogu se postaviti na zidove zgrada, stupove i druga proizvoljna mjesta. Svaki takav uređaj prikuplja informacije, agregira ih i šalje pristupniku za primanje podataka. Tamo spremamo podatke za dugotrajnu pohranu i prethodnu obradu za naknadnu analizu. Najjednostavniji primjer onoga što dobijemo kao rezultat analize je indeks kvalitete zraka, poznat i kao AQI.

Paralelno, na našoj platformi rade mnoge druge usluge, ali one su uglavnom servisne prirode. Na primjer, usluga obavješćivanja šalje obavijesti klijentima ako neki od nadziranih parametara (primjerice sadržaj CO2) prelazi dopuštenu vrijednost.

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

Projekt praćenja okoliša URUS ima nekoliko skladišta podataka. U jednom čuvamo “sirove” podatke – ono što smo dobili izravno od samih uređaja. Ova pohrana je "magnetna" vrpca, kao na starim kazetama, s poviješću svih pokazatelja. Druga vrsta pohrane koristi se za prethodno obrađene podatke - podatke s uređaja, obogaćene metapodacima o vezama između senzora i očitanjima samih uređaja, povezanosti s organizacijama, lokacijama itd. Ove informacije omogućuju dinamičku procjenu koliko je određeni pokazatelj mijenjao u određenom vremenskom razdoblju. „Sirovu“ pohranu podataka koristimo, između ostalog, kao sigurnosnu kopiju i za vraćanje prethodno obrađenih podataka, ako se ukaže takva potreba.

Kad smo prije nekoliko godina htjeli riješiti problem pohrane, imali smo dvije mogućnosti izbora: Kubernetes i OpenStack. No budući da potonji izgleda prilično monstruozno (dovoljno je pogledati njegovu arhitekturu da se uvjerite u to), odlučili smo se za Kubernetes. Drugi argument u njegovu korist bila je relativno jednostavna softverska kontrola, mogućnost fleksibilnijeg rezanja čak i hardverskih čvorova prema resursima.

Paralelno sa svladavanjem samog Kubernetesa, proučavali smo i načine pohrane podataka, dok smo svu svoju pohranu u Kubernetesu držali na vlastitom hardveru, dobili smo izvrsnu ekspertizu. Sve što smo tada živjeli na Kubernetesu: pohrana s punim stanjem, sustav nadzora, CI/CD. Kubernetes je za nas postao platforma sve u jednom.

No htjeli smo raditi s Kubernetesom kao uslugom, a ne baviti se njegovom podrškom i razvojem. Osim toga, nije nam se sviđalo koliko nas je koštalo održavanje na golom metalu, a stalno nam je trebao razvoj! Primjerice, jedan od prvih zadataka bio je integrirati Kubernetes Ingress kontrolere u mrežnu infrastrukturu naše organizacije. To je glomazan zadatak, posebno ako se uzme u obzir da u to vrijeme ništa nije bilo spremno za programsko upravljanje resursima poput DNS zapisa ili dodjele IP adresa. Kasnije smo počeli eksperimentirati s vanjskom pohranom podataka. Nikada nismo stigli implementirati PVC kontroler, ali već tada je postalo jasno da je to veliko područje rada koje zahtijeva posvećene stručnjake.

Prelazak na Google Cloud Platform privremeno je rješenje

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

Prvi veliki problem pojavio se na horizontu kako je naša baza kupaca rasla. Kada smo imali potrebu za pohranjivanjem osobnih podataka, bili smo suočeni s izborom: ili radimo s Googleom i kršimo ruske zakone ili tražimo alternativu u Ruskoj Federaciji. Izbor je, u cjelini, bio predvidljiv. 🙂

Kako smo mi vidjeli idealnu uslugu u oblaku

Na početku potrage već smo znali što želimo dobiti od budućeg cloud providera. Koju uslugu smo tražili:

  • Brzo i fleksibilno. Tako da možemo brzo dodati novi čvor ili implementirati nešto u bilo kojem trenutku.
  • Jeftin. Bili smo jako zabrinuti zbog financijskog pitanja, budući da smo bili ograničeni u sredstvima. Već smo znali da želimo raditi s Kubernetesom, a sada je zadatak bio minimizirati njegove troškove kako bismo povećali ili barem održali učinkovitost korištenja ovog rješenja.
  • Automatizirano. Planirali smo raditi s uslugom putem API-ja, bez menadžera i telefonskih poziva ili situacija u kojima trebamo ručno podići nekoliko desetaka čvorova u hitnom načinu rada. Budući da je većina naših procesa automatizirana, isto smo očekivali i od usluge u oblaku.
  • S poslužiteljima u Ruskoj Federaciji. Naravno, planirali smo se pridržavati ruskog zakonodavstva i tog istog 152-FZ.

U to je vrijeme u Rusiji bilo malo Kubernetes aaS pružatelja usluga, a pri odabiru pružatelja bilo nam je važno da ne ugrozimo svoje prioritete. Tim Mail.ru Cloud Solutions, s kojim smo počeli raditi i još uvijek surađujemo, pružio nam je potpuno automatiziranu uslugu, s API podrškom i praktičnom kontrolnom pločom koja uključuje Horizon - s njom smo mogli brzo podići proizvoljan broj čvorova.

Kako smo uspjeli migrirati na MCS u dva sata

U ovakvim potezima mnoge tvrtke susreću se s poteškoćama i zastojima, ali u našem slučaju toga nije bilo. Imali smo sreće: budući da smo već radili na Kubernetesu prije početka migracije, jednostavno smo ispravili tri datoteke i pokrenuli svoje usluge na novoj platformi u oblaku, MCS. Dopustite mi da vas podsjetim da smo do tada konačno napustili bare metal i živjeli na Google Cloud Platformi. Dakle, samo premještanje nije trajalo više od dva sata, plus nešto više vremena (oko sat vremena) potrošeno je na kopiranje podataka s naših uređaja. Tada smo već koristili Spinnaker (multi-cloud CD uslugu za kontinuiranu isporuku). Također smo ga brzo dodali u novi klaster i nastavili raditi kao i obično.

Zahvaljujući automatizaciji razvojnih procesa i CI/CD-u, Kubernetesom na URUS-u upravlja jedan stručnjak (a to sam ja). U nekoj fazi sa mnom je radio još jedan administrator sustava, ali onda se pokazalo da smo već automatizirali svu glavnu rutinu i bilo je sve više i 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 providera, jer smo u suradnju krenuli bez iluzija. Ako je i bilo incidenata, oni su većinom bili tehničke prirode i oni koji se lako mogu objasniti relativnom svježinom usluge. Glavna stvar je da MCS tim brzo uklanja nedostatke i brzo odgovara na pitanja u glasnicima.

Ako usporedim svoje iskustvo s Google Cloud Platformom, u njihovom slučaju nisam ni znao gdje se nalazi tipka za povratnu informaciju, jer za njom jednostavno nije bilo potrebe. A ako se ikakvi problemi i pojave, Google je jednostrano slao obavijesti. Ali u slučaju MCS-a, mislim da je velika prednost to što su što bliži ruskim klijentima – i geografski i mentalno.

Kako vidimo rad s oblacima u budućnosti

Sada je naš rad usko vezan uz Kubernetes i potpuno nam odgovara s gledišta infrastrukturnih zadataka. Stoga ne planiramo nikamo migrirati s njega, iako neprestano uvodimo nove prakse i usluge 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 stvorio Netflix. Chaos Monkey radi jednu jednostavnu stvar: briše nasumično Kubernetes pod u nasumično vrijeme. To je potrebno kako bi naš servis mogao normalno živjeti s brojem instanci n–1, tako da se treniramo da budemo spremni za sve probleme.

Sada kao jedinu pravu stvar za mlade tvrtke vidim korištenje tuđih rješenja – istih tih cloud platformi. Obično su na početku svog puta ograničeni u resursima, ljudskim i financijskim, a izgradnja i održavanje vlastitog oblaka ili podatkovnog centra preskupo je i radno zahtjevno. Pružatelji usluga u oblaku omogućuju minimiziranje ovih troškova, od njih možete brzo dobiti resurse potrebne za rad usluga ovdje i sada i platiti te resurse naknadno. Što se tiče tvrtke URUS, za sada ostajemo vjerni Kubernetesu u oblaku. Ali tko zna, možda ćemo se morati geografski proširiti ili implementirati rješenja temeljena na nekoj specifičnoj opremi. Ili će možda količina potrošenih resursa opravdati vlastiti Kubernetes na golom metalu, kao u dobra stara vremena. 🙂

Što smo naučili radeći s 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 vendor lock-in i prelazak između cloud providera će trajati nekoliko sati, a živčane stanice će ostati s nama. Možemo savjetovati druge tvrtke: ako želite pokrenuti vlastitu (cloud) uslugu, s ograničenim resursima i maksimalnom brzinom za razvoj, počnite odmah sa iznajmljivanjem resursa u oblaku i izgradite svoj podatkovni centar nakon što Forbes piše o vama.

Izvor: www.habr.com

Dodajte komentar