Kā Yandex.Cloud darbojas ar Virtual Private Cloud un kā mūsu lietotāji palīdz mums ieviest noderīgas funkcijas

Labdien, mani sauc Kostja Kramličs, es esmu Yandex.Cloud Virtual Private Cloud nodaļas vadoÅ”ais izstrādātājs. Es strādāju pie virtuālā tÄ«kla, un, kā jÅ«s varētu nojaust, Å”ajā rakstā es runāŔu par virtuālā privātā mākoņa (VPC) ierÄ«ci kopumā un jo Ä«paÅ”i par virtuālo tÄ«klu. Un jÅ«s arÄ« uzzināsit, kāpēc mēs, pakalpojumu izstrādātāji, augstu vērtējam lietotāju atsauksmes. Bet vispirms vispirms.

Kā Yandex.Cloud darbojas ar Virtual Private Cloud un kā mūsu lietotāji palīdz mums ieviest noderīgas funkcijas

Kas ir VPC?

MÅ«sdienās ir dažādas pakalpojumu izvietoÅ”anas iespējas. Esmu pārliecināts, ka kāds joprojām glabā serveri zem administratora galda, lai gan ceru, ka Ŕādi stāsti paliek arvien retāk.

Tagad pakalpojumi mēģina pāriet uz publiskajiem mākoņiem, un tieÅ”i Å”eit viņi saskaras ar VPC. VPC ir daļa no publiskā mākoņa, kas savieno lietotāju, infrastruktÅ«ru, platformu un citas iespējas neatkarÄ«gi no tā, kur tās atrodas, mÅ«su mākonÄ« vai ārpus tās. Tajā paŔā laikā VPC ļauj izvairÄ«ties no Å”o jaudu nevajadzÄ«gas pakļauÅ”anas internetam, tās paliek jÅ«su izolētajā tÄ«klā.

Kā virtuālais tīkls izskatās no ārpuses

Kā Yandex.Cloud darbojas ar Virtual Private Cloud un kā mūsu lietotāji palīdz mums ieviest noderīgas funkcijas

Ar VPC mēs domājam, pirmkārt, pārklājuma tÄ«klu un tÄ«kla pakalpojumus, piemēram, VPNaaS, NATaas, LBaas utt. Un tas viss darbojas uz kļūmēm izturÄ«gas tÄ«kla infrastruktÅ«ras, kas jau tika apspriesta. lielisks raksts Å”eit uz Habrē.

Apskatīsim tuvāk virtuālo tīklu un tā struktūru.

Kā Yandex.Cloud darbojas ar Virtual Private Cloud un kā mūsu lietotāji palīdz mums ieviest noderīgas funkcijas

ApskatÄ«sim divas pieejamÄ«bas zonas. Mēs nodroÅ”inām virtuālo tÄ«klu - to, ko mēs saucām par VPC. Faktiski tas nosaka jÅ«su ā€œpelēkoā€ adreÅ”u unikalitātes telpu. Katrā virtuālajā tÄ«klā jums ir pilnÄ«ga kontrole pār adreÅ”u vietu, ko varat pieŔķirt skaitļoÅ”anas resursiem.

TÄ«kls ir globāls. Tajā paŔā laikā tas tiek projicēts katrā pieejamÄ«bas zonā entÄ«tijas veidā, ko sauc par apakÅ”tÄ«klu. Katram apakÅ”tÄ«klam jÅ«s pieŔķirat CIDR, kura izmērs ir 16 vai mazāks. Katrai pieejamÄ«bas zonai var bÅ«t vairāk nekā viena Ŕāda entÄ«tija, un starp tām vienmēr ir pārredzama marÅ”rutÄ“Å”ana. Tas nozÄ«mē, ka visi jÅ«su resursi vienā VPC var ā€œsarunātiesā€ savā starpā, pat ja tie atrodas dažādās pieejamÄ«bas zonās. ā€œSazinietiesā€ bez piekļuves internetam, izmantojot mÅ«su iekŔējos kanālus, ā€œdomājotā€, ka viņi atrodas tajā paŔā privātajā tÄ«klā.

AugŔējā diagramma parāda tipisku situāciju: divi VPC, kas krustojas kaut kur savās adresēs. Abi var bÅ«t jÅ«su. Piemēram, viens izstrādei, otrs testÄ“Å”anai. VienkārÅ”i var bÅ«t dažādi lietotāji ā€“ Å”ajā gadÄ«jumā tam nav nozÄ«mes. Un katram VPC ir viena virtuālā maŔīna.

Kā Yandex.Cloud darbojas ar Virtual Private Cloud un kā mūsu lietotāji palīdz mums ieviest noderīgas funkcijas

PadarÄ«sim shēmu sliktāku. Vienai virtuālajai maŔīnai varat izveidot savienojumu ar vairākiem apakÅ”tÄ«kliem vienlaikus. Un ne tikai tā, bet dažādos virtuālajos tÄ«klos.

Kā Yandex.Cloud darbojas ar Virtual Private Cloud un kā mūsu lietotāji palīdz mums ieviest noderīgas funkcijas

Tajā paŔā laikā, ja jums ir jāatklāj maŔīnas internetā, to var izdarÄ«t, izmantojot API vai lietotāja saskarni. Lai to izdarÄ«tu, jums ir jākonfigurē savas ā€œpelēkāsā€ iekŔējās adreses NAT tulkojums ā€œbaltāā€ ā€“ publiskā adrese. JÅ«s nevarat izvēlēties ā€œbaltoā€ adresi, tā tiek pieŔķirta nejauÅ”i no mÅ«su adreÅ”u kopas. TiklÄ«dz jÅ«s pārtraucat izmantot ārējo IP, tas atgriežas pÅ«lā. JÅ«s maksājat tikai par laiku, kad izmantojat ā€œbaltoā€ adresi.

Kā Yandex.Cloud darbojas ar Virtual Private Cloud un kā mūsu lietotāji palīdz mums ieviest noderīgas funkcijas

Ir iespējams arÄ« nodroÅ”ināt maŔīnai piekļuvi internetam, izmantojot NAT gadÄ«jumu. Varat marÅ”rutēt trafiku uz savu gadÄ«jumu, izmantojot statisku marÅ”rutÄ“Å”anas tabulu. Mēs esam nodroÅ”inājuÅ”i Ŕādu gadÄ«jumu, jo lietotājiem tas dažreiz ir vajadzÄ«gs, un mēs par to zinām. AttiecÄ«gi mÅ«su attēlu direktorijā ir Ä«paÅ”i konfigurēts NAT attēls.

Kā Yandex.Cloud darbojas ar Virtual Private Cloud un kā mūsu lietotāji palīdz mums ieviest noderīgas funkcijas

Bet pat tad, ja ir gatavs NAT attēls, konfigurācija var bÅ«t sarežģīta. Mēs sapratām, ka dažiem lietotājiem tas nav ērtākais variants, tāpēc galu galā mēs ļāvām ar vienu klikŔķi iespējot NAT vēlamajam apakÅ”tÄ«klam. Å ai funkcijai joprojām ir slēgta priekÅ”skatÄ«juma piekļuve, un tā tiek pārbaudÄ«ta ar kopienas dalÄ«bnieku palÄ«dzÄ«bu.

Kā virtuālais tīkls darbojas no iekŔpuses

Kā Yandex.Cloud darbojas ar Virtual Private Cloud un kā mūsu lietotāji palīdz mums ieviest noderīgas funkcijas

Kā lietotājs mijiedarbojas ar virtuālo tÄ«klu? TÄ«kls izskatās uz āru ar savu API. Lietotājs nonāk API un strādā ar mērÄ·a stāvokli. Caur API lietotājs redz, kā viss ir jāsakārto un jākonfigurē, savukārt viņŔ redz statusu, kā faktiskais stāvoklis atŔķiras no vēlamā. Å is ir lietotāja attēls. Kas notiek iekŔā?

Mēs ierakstām vēlamo stāvokli Yandex datu bāzē un ejam, lai konfigurētu dažādas mÅ«su VPC daļas. Pārklājuma tÄ«kls pakalpojumā Yandex.Cloud ir izveidots, pamatojoties uz atlasÄ«tajiem OpenContrail komponentiem, kas nesen tika saukts par Volframa audumu. TÄ«kla pakalpojumi tiek Ä«stenoti vienā CloudGate platformā. Vietnē CloudGate mēs izmantojām arÄ« vairākus atvērtā pirmkoda komponentus: GoBGP, lai apstrādātu vadÄ«bas informāciju, kā arÄ« VPP, lai ieviestu programmatÅ«ras marÅ”rutētāju, kas datu ceļā darbojas, izmantojot DPDK.

Tungsten Fabric sazinās ar CloudGate, izmantojot GoBGP. Stāsta, kas notiek pārklājuma tīklā. CloudGate savukārt savieno pārklājuma tīklus savā starpā un ar internetu.

Kā Yandex.Cloud darbojas ar Virtual Private Cloud un kā mūsu lietotāji palīdz mums ieviest noderīgas funkcijas

Tagad apskatÄ«sim, kā virtuālais tÄ«kls atrisina mērogojamÄ«bas un pieejamÄ«bas problēmas. ApskatÄ«sim vienkārÅ”u gadÄ«jumu. Ir viena pieejamÄ«bas zona un tajā izveidoti divi VPC. Mēs izvietojām vienu Tungsten Fabric gadÄ«jumu, un tajā ir vairāki desmiti tÅ«kstoÅ”u tÄ«klu. TÄ«kli sazinās ar CloudGate. CloudGate, kā jau teicām, nodroÅ”ina to savienojamÄ«bu savā starpā un ar internetu.

Kā Yandex.Cloud darbojas ar Virtual Private Cloud un kā mūsu lietotāji palīdz mums ieviest noderīgas funkcijas

Pieņemsim, ka ir pievienota otrā pieejamÄ«bas zona. Tam vajadzētu neizdoties pilnÄ«gi neatkarÄ«gi no pirmās. Tāpēc otrajā pieejamÄ«bas zonā mums ir jāinstalē atseviŔķs Volframa auduma gadÄ«jums. Å Ä« bÅ«s atseviŔķa sistēma, kas apstrādā pārklājumu un maz zina par pirmo sistēmu. Un Ŕķiet, ka mÅ«su virtuālais tÄ«kls ir globāls, faktiski rada mÅ«su VPC API. Tas ir viņa uzdevums.

VPC1 tiek kartēts uz pieejamÄ«bas zonu B, ja pieejamÄ«bas zonai B ir resursi, kas iekļaujas VPC1. Ja pieejamÄ«bas zonā B nav resursu no VPC2, mēs VPC2 Å”ajā zonā nerealizējam. Savukārt, tā kā resursi no VPC3 eksistē tikai B zonā, VPC3 neeksistē zonā A. Viss ir vienkārÅ”i un loÄ£iski.

Padziļināsimies un redzēsim, kā darbojas konkrēts Y.Cloud resursdators. Galvenais, ko es gribētu atzÄ«mēt, ir tas, ka visi saimnieki ir izstrādāti vienādi. Mēs pārliecināmies, ka tikai nepiecieÅ”amais pakalpojumu minimums darbojas aparatÅ«rā; visi pārējie darbojas virtuālajās maŔīnās. Mēs veidojam augstāka lÄ«meņa pakalpojumus, pamatojoties uz pamata infrastruktÅ«ras pakalpojumiem, kā arÄ« izmantojam mākoni, lai atrisinātu dažas inženiertehniskās problēmas, piemēram, kā daļu no nepārtrauktās integrācijas.

Kā Yandex.Cloud darbojas ar Virtual Private Cloud un kā mūsu lietotāji palīdz mums ieviest noderīgas funkcijas

Ja skatāmies uz konkrētu resursdatoru, mēs varam redzēt, ka resursdatora OS darbojas trīs komponenti:

  • AprēķināŔana ir daļa, kas ir atbildÄ«ga par skaitļoÅ”anas resursu sadali resursdatorā.
  • VRouter ir daļa no Tungsten Fabric, kas organizē pārklājumu, tas ir, caur apakÅ”klāju pārvieto paketes.
  • VDiski ir krātuves virtualizācijas daļas.

Turklāt virtuālās maŔīnas nodroÅ”ina pakalpojumus: mākoņa infrastruktÅ«ras pakalpojumi, platformas pakalpojumi un klientu jauda. Klientu iespējas un platformas pakalpojumi vienmēr nonāk pārklājumā, izmantojot VRouter.

InfrastruktÅ«ras pakalpojumus var pievienot pārklājumam, bet galvenokārt tie vēlas strādāt apakÅ”klājā. Tie tiek ielÄ«mēti apakÅ”klājā, izmantojot SR-IOV. Faktiski mēs sagriežam karti virtuālās tÄ«kla kartēs (virtuālajās funkcijās) un ievietojam tās infrastruktÅ«ras virtuālajās maŔīnās, lai nezaudētu veiktspēju. Piemēram, tas pats CloudGate tiek palaists kā viena no Ŕīm infrastruktÅ«ras virtuālajām maŔīnām.

Tagad, kad esam aprakstÄ«juÅ”i virtuālā tÄ«kla globālos uzdevumus un mākoņa pamatkomponentu dizainu, apskatÄ«sim, kā tieÅ”i dažādās virtuālā tÄ«kla daļas mijiedarbojas viena ar otru.

Mēs savā sistēmā izŔķiram trÄ«s slāņus:

  • Konfigurācijas plakne ā€“ iestata sistēmas mērÄ·a stāvokli. Tas ir tas, ko lietotājs konfigurē, izmantojot API.
  • VadÄ«bas plakne ā€“ nodroÅ”ina lietotāja norādÄ«tu semantiku, tas ir, tas nodroÅ”ina datu plaknes stāvokli lÄ«dz tam, ko lietotājs aprakstÄ«ja konfigurācijas plaknē.
  • Datu plakne ā€“ tieÅ”i apstrādā lietotāja paketes.

Kā Yandex.Cloud darbojas ar Virtual Private Cloud un kā mūsu lietotāji palīdz mums ieviest noderīgas funkcijas

Kā jau teicu iepriekÅ”, viss sākas ar to, ka lietotājs vai iekŔējās platformas pakalpojums nonāk API un apraksta noteiktu mērÄ·a stāvokli.

Å is stāvoklis tiek nekavējoties ierakstÄ«ts Yandex datu bāzē, atgriež asinhronās operācijas ID, izmantojot API, un palaiž mÅ«su iekŔējo iekārtu, lai izveidotu lietotāja vēlamo stāvokli. Konfigurācijas uzdevumi pāriet uz SDN kontrolleri un paziņojiet Tungsten Fabric, kas ir jādara pārklājumā. Piemēram, viņi rezervē portus, virtuālos tÄ«klus un tamlÄ«dzÄ«gi.

Kā Yandex.Cloud darbojas ar Virtual Private Cloud un kā mūsu lietotāji palīdz mums ieviest noderīgas funkcijas

Tungsten Fabric konfigurācijas plakne augÅ”upielādē nepiecieÅ”amo stāvokli vadÄ«bas plaknē. Izmantojot to, Config Plane sazinās ar saimniekiem, precÄ«zi pastāstot, kas tuvākajā nākotnē viņiem darbosies.

Kā Yandex.Cloud darbojas ar Virtual Private Cloud un kā mūsu lietotāji palīdz mums ieviest noderīgas funkcijas

Tagad paskatÄ«simies, kā sistēma izskatās uz saimniekiem. Virtuālajai maŔīnai VRouter ir pievienots noteikts tÄ«kla adapteris. VRouter ir volframa auduma pamata modulis, kas aplÅ«ko paketes. Ja kādai paketei jau ir plÅ«sma, modulis to apstrādā. Ja plÅ«smas nav, modulis veic tā saukto punting, tas ir, nosÅ«ta paketi usermod procesam. Process parsē paketi un pats uz to reaģē, piemēram, DHCP un DNS, vai arÄ« norāda VRouter, ko ar to darÄ«t. Pēc tam VRouter var apstrādāt paketi.

Turklāt satiksme starp virtuālajām maŔīnām tajā paŔā virtuālajā tÄ«klā plÅ«st caurspÄ«dÄ«gi, tā netiek nosÅ«tÄ«ta uz CloudGate. Saimnieki, kuros ir izvietotas virtuālās maŔīnas, tieÅ”i sazinās savā starpā. Viņi tuneli satiksmi un nosÅ«ta to viens otram caur apakÅ”klāju.

Kā Yandex.Cloud darbojas ar Virtual Private Cloud un kā mūsu lietotāji palīdz mums ieviest noderīgas funkcijas

VadÄ«bas plaknes sazinās viena ar otru pieejamÄ«bas zonās, izmantojot BGP, tāpat kā ar citu marÅ”rutētāju. Tie norāda, kuras maŔīnas kur ir instalētas, lai vienā zonā esoŔās virtuālās maŔīnas varētu tieÅ”i sazināties ar citām virtuālajām maŔīnām.

Kā Yandex.Cloud darbojas ar Virtual Private Cloud un kā mūsu lietotāji palīdz mums ieviest noderīgas funkcijas

Control Plane sazinās arÄ« ar CloudGate. Tāpat tas ziņo, kur un kuras virtuālās maŔīnas ir instalētas, kādas ir to adreses. Tas ļauj novirzÄ«t ārējo trafiku un trafiku no balansieriem uz tiem.

DatplÅ«sma, kas atstāj VPC, nonāk CloudGate datu ceļā, kur VPP ar mÅ«su spraudņiem tiek ātri sakoŔļāts. Pēc tam satiksme tiek virzÄ«ta vai nu uz citiem VPC, vai uz āru, uz malu marÅ”rutētājiem, kas tiek konfigurēti, izmantojot paÅ”u CloudGate vadÄ«bas plakni.

Tuvākās nākotnes plāni

Ja mēs apkopojam visu iepriekÅ” minēto dažos teikumos, mēs varam teikt, ka VPC pakalpojumā Yandex.Cloud atrisina divas svarÄ«gas problēmas:

  • NodroÅ”ina izolāciju starp dažādiem klientiem.
  • Apvieno resursus, infrastruktÅ«ru, platformas pakalpojumus, citus mākoņus un lokālos resursus vienā tÄ«klā.

Un, lai Ŕīs problēmas atrisinātu labi, iekŔējās arhitektÅ«ras lÄ«menÄ« ir jānodroÅ”ina mērogojamÄ«ba un kļūdu tolerance, ko arÄ« dara VPC.

Pamazām VPC apgÅ«st funkcijas, ievieÅ”am jaunas iespējas un cenÅ”amies kaut ko uzlabot lietotāju ērtÄ«bu ziņā. Dažas idejas tiek izteiktas un iekļautas prioritāŔu sarakstā, pateicoties mÅ«su kopienas locekļiem.

Tagad mums ir aptuveni Ŕāds tuvākās nākotnes plānu saraksts:

  • VPN kā pakalpojums.
  • Privātie DNS gadÄ«jumi ā€” attēli, kas paredzēti, lai ātri iestatÄ«tu virtuālās maŔīnas ar iepriekÅ” konfigurētu DNS serveri.
  • DNS kā pakalpojums.
  • IekŔējais slodzes balansētājs.
  • ā€œBaltāsā€ IP adreses pievienoÅ”ana, neizveidojot virtuālo maŔīnu.

Balansētājs un iespēja pārslēgt IP adresi jau izveidotai virtuālajai maŔīnai Å”ajā sarakstā tika iekļauti pēc lietotāju pieprasÄ«juma. GodÄ«gi sakot, bez skaidras atsauksmes mēs Ŕīs funkcijas bÅ«tu pārņēmuÅ”as nedaudz vēlāk. Un tāpēc mēs jau strādājam pie problēmas par adresēm.

Sākotnēji ā€œbaltoā€ IP adresi varēja pievienot tikai, veidojot maŔīnu. Ja lietotājs aizmirsa to izdarÄ«t, virtuālā maŔīna bija jāizveido no jauna. Tas pats attiecas uz ārējā IP noņemÅ”anu, ja nepiecieÅ”ams. DrÄ«zumā bÅ«s iespējams ieslēgt un izslēgt publisko IP, neizveidojot iekārtu no jauna.

Jūtieties brīvi izteikt savu idejas un atbalsta ierosinājumi citiem lietotājiem. Jūs palīdzat mums uzlabot mākoni un ātrāk iegūt svarīgas un noderīgas funkcijas!

Avots: www.habr.com

Pievieno komentāru