Wéi Yandex.Cloud mat Virtual Private Cloud funktionnéiert a wéi eis Benotzer eis hëllefen nëtzlech Funktiounen ëmzesetzen

Moien, mäin Numm ass Kostya Kramlikh, ech sinn de Lead Entwéckler vun der Virtual Private Cloud Divisioun zu Yandex.Cloud. Ech sinn e virtuelle Netzwierker, a wéi Dir et kéint roden, an dësem Artikel schwätzen ech iwwer de Virtual Private Cloud (VPC) Apparat am Allgemengen an de virtuelle Netzwierk besonnesch. An Dir wäert och erausfannen firwat mir, d'Entwéckler vum Service, Feedback vun eise Benotzer schätzen. Awer éischt Saachen éischt.

Wéi Yandex.Cloud mat Virtual Private Cloud funktionnéiert a wéi eis Benotzer eis hëllefen nëtzlech Funktiounen ëmzesetzen

Wat ass VPC?

Hautdesdaags ginn et eng Vielfalt vun Optiounen fir Servicer z'installéieren. Ech si sécher datt een de Server nach ëmmer ënner dem Administrator säi Schreif hält, obwuel ech hoffen datt et manner esou Geschichten gëtt.

Elo probéieren d'Servicer op ëffentlech Wolleken ze goen, an dat ass wou se mat VPCs kollidéieren. VPC ass en Deel vun enger ëffentlecher Cloud déi Benotzer, Infrastruktur, Plattform an aner Kapazitéiten verbënnt, egal wou se sinn, an eiser Cloud oder dobaussen. Zur selwechter Zäit erlaabt VPC Iech dës Kapazitéiten net onnéideg um Internet auszesetzen, si bleiwen an Ärem isoléierten Netzwierk.

Wéi gesäit e virtuellt Netzwierk vu baussen aus?

Wéi Yandex.Cloud mat Virtual Private Cloud funktionnéiert a wéi eis Benotzer eis hëllefen nëtzlech Funktiounen ëmzesetzen

Mat VPC mengen mir virun allem en Iwwerlagernetz an Netzwierkservicer, wéi VPNaaS, NATaas, LBaas, asw.. An dat alles fonctionnéiert uewen op eng fehltolerant Reseauinfrastruktur, déi scho gouf. super Artikel hei, op Habré.

Loosst eis de virtuelle Netzwierk a säin Apparat méi no kucken.

Wéi Yandex.Cloud mat Virtual Private Cloud funktionnéiert a wéi eis Benotzer eis hëllefen nëtzlech Funktiounen ëmzesetzen

Betruecht zwou Disponibilitéit Zonen. Mir bidden e virtuellt Netzwierk - wat mir VPC genannt hunn. Tatsächlech definéiert et de Raum vun der Eenzegaartegkeet vun Ären "groen" Adressen. Bannent all virtuellt Netzwierk hutt Dir komplett Kontroll iwwer de Raum vun Adressen, déi Dir kënnt fir d'Ressourcen ze berechnen.

D'Netz ass global. Zur selwechter Zäit gëtt et op jiddereng vun den Disponibilitéitszonen projizéiert a Form vun enger Entitéit mam Numm Subnet. Fir all Subnet gitt Dir e CIDR vu Gréisst 16 oder manner. Et ka méi wéi eng esou Entitéit an all Disponibilitéitszone sinn, an et gëtt ëmmer transparent Routing tëscht hinnen. Dëst bedeit datt all Är Ressourcen am selwechte VPC matenee "schwätze" kënnen, och wa se a verschiddene Disponibilitéitszonen sinn. "Kommunikéieren" ouni Zougang zum Internet, iwwer eis intern Kanäl, "denken" datt se am selwechte privaten Netzwierk sinn.

D'Diagramm hei uewen weist eng typesch Situatioun: zwee VPCs déi iergendwou an Adressen kräizen. Béid kënnen ären sinn. Zum Beispill, eng fir Entwécklung, déi aner fir Testen. Et kann einfach verschidde Benotzer ginn - an dësem Fall ass et egal. An eng virtuell Maschinn ass an all VPC ugeschloss.

Wéi Yandex.Cloud mat Virtual Private Cloud funktionnéiert a wéi eis Benotzer eis hëllefen nëtzlech Funktiounen ëmzesetzen

Loosst eis de Schema méi schlëmm maachen. Dir kënnt et esou maachen datt eng virtuell Maschinn an e puer Subnets gläichzäiteg ageklemmt ass. An net nëmmen esou, mee a verschiddene virtuellen Netzwierker.

Wéi Yandex.Cloud mat Virtual Private Cloud funktionnéiert a wéi eis Benotzer eis hëllefen nëtzlech Funktiounen ëmzesetzen

Zur selwechter Zäit, wann Dir Maschinnen um Internet aussetzt, kann dat iwwer d'API oder UI gemaach ginn. Fir dëst ze maachen, musst Dir d'NAT Iwwersetzung vun Ärer "groer", interner Adress op "wäiss" konfiguréieren - ëffentlech. Dir kënnt keng "wäiss" Adress wielen, se gëtt zoufälleg aus eisem Pool vun Adressen zougewisen. Soubal Dir ophale mat der externer IP ze benotzen, gëtt se an de Pool zréckgezunn. Dir bezuelt nëmmen fir d'Zäit vun der "wäiss" Adress benotzt.

Wéi Yandex.Cloud mat Virtual Private Cloud funktionnéiert a wéi eis Benotzer eis hëllefen nëtzlech Funktiounen ëmzesetzen

Et ass och méiglech der Maschinn Zougang zum Internet mat enger NAT Instanz ze ginn. Dir kënnt de Traffic op eng Instanz duerch eng statesch Routingtabelle route. Mir hunn esou e Fall geliwwert, well d'Benotzer et heiansdo brauchen, a mir wëssen doriwwer. Deementspriechend enthält eise Bildkatalog e speziell konfiguréiert NAT Bild.

Wéi Yandex.Cloud mat Virtual Private Cloud funktionnéiert a wéi eis Benotzer eis hëllefen nëtzlech Funktiounen ëmzesetzen

Awer och wann et e prett NAT Bild gëtt, kann d'Setup komplizéiert sinn. Mir hunn verstanen datt fir e puer Benotzer dëst net déi bequemste Optioun ass, also hu mir et méiglech gemaach NAT fir de gewënschte Subnet an engem Klick z'aktivéieren. Dës Feature ass nach ëmmer am zouenen Virschau Zougang, wou se mat der Hëllef vu Gemeinschaftsmemberen getest gëtt.

Wéi de virtuelle Netzwierk vu bannen arrangéiert ass

Wéi Yandex.Cloud mat Virtual Private Cloud funktionnéiert a wéi eis Benotzer eis hëllefen nëtzlech Funktiounen ëmzesetzen

Wéi interagéiert de Benotzer mam virtuelle Netzwierk? De Web kuckt no baussen mat senger API. De Benotzer kënnt op d'API a schafft mam Zilstaat. Duerch d'API gesäit de Benotzer wéi alles soll arrangéiert a konfiguréiert sinn, während hien de Status gesäit, wéi vill den aktuellen Zoustand vum gewënschtenen ënnerscheet. Dëst ass e Bild vum Benotzer. Wat leeft dobannen?

Mir schreiwen de gewënschten Zoustand an d'Yandex Datebank a gitt fir verschidden Deeler vun eisem VPC ze konfiguréieren. D'Iwwerlagerungsnetz an Yandex.Cloud baséiert op ausgewielte Komponenten vun OpenContrail, déi viru kuerzem Tungsten Fabric genannt gouf. Netzwierkservicer ginn op enger eenzeger CloudGate Plattform implementéiert. Am CloudGate hu mir och eng Rei vun Open Source Komponenten benotzt: GoBGP - fir Zougang zu Kontrollinformatioun, souwéi VPP - fir e Software Router ëmzesetzen deen uewen op DPDK fir den Datewee leeft.

Wolfram Stoff kommunizéiert mat CloudGate iwwer GoBGP. Erzielt wat am Iwwerlagernetz lass ass. CloudGate, am Tour, verbënnt Overlay Netzwierker mateneen a mam Internet.

Wéi Yandex.Cloud mat Virtual Private Cloud funktionnéiert a wéi eis Benotzer eis hëllefen nëtzlech Funktiounen ëmzesetzen

Loosst eis elo kucken wéi e virtuellt Netzwierk d'Problemer vun der Skaléierung an der Disponibilitéit léist. Loosst eis en einfache Fall betruechten. Et gëtt eng Disponibilitéitszone an zwee VPCs ginn dran erstallt. Mir hunn eng Tungsten Fabric Instanz ofgesat, an et zitt e puer Zéngdausende vun Netzwierker. Netzwierker kommunizéieren mat CloudGate. CloudGate, wéi mir scho gesot hunn, garantéiert hir Konnektivitéit mateneen a mam Internet.

Wéi Yandex.Cloud mat Virtual Private Cloud funktionnéiert a wéi eis Benotzer eis hëllefen nëtzlech Funktiounen ëmzesetzen

Loosst eis soen datt eng zweet Disponibilitéitszone bäigefüügt gëtt. Et soll komplett onofhängeg vun der éischter versoen. Dofir, an der zweeter Disponibilitéit Zone, musse mir eng separat Tungsten Fabric Instanz installéieren. Dëst wäert e separaten System sinn, dee sech mat der Iwwerlagerung beschäftegt a wéineg iwwer den éischte System weess. An d'Visibilitéit datt eise virtuelle Netzwierk global ass, erstellt tatsächlech eis VPC API. Dëst ass seng Aufgab.

VPC1 gëtt op d'Verfügbarkeet Zone B kartéiert wann et Ressourcen an der Disponibilitéitszon B sinn déi op VPC1 gedréckt ginn. Wann et keng Ressourcen aus VPC2 an Disponibilitéit Zone B sinn, wäerte mir VPC2 net an dëser Zone materialiséieren. Am Tour, well Ressourcen aus VPC3 existéieren nëmmen an Zone B, VPC3 existéiert net an Zone A. Alles ass einfach a logesch.

Loosst eis e bësse méi déif goen a kucken wéi e bestëmmte Host am Y.Cloud funktionnéiert. D'Haaptsaach, déi ech wëll bemierken, ass datt all Hosten op déiselwecht Manéier arrangéiert sinn. Mir maachen et sou datt nëmmen déi néideg Minimum vu Servicer op Hardware leeft, de Rescht leeft op virtuelle Maschinnen. Mir bauen méi héich Uerdnungsservicer baséiert op Basisinfrastrukturservicer, a benotzen och d'Cloud fir e puer Ingenieursprobleemer ze léisen, zum Beispill am Kader vun der kontinuéierlecher Integratioun.

Wéi Yandex.Cloud mat Virtual Private Cloud funktionnéiert a wéi eis Benotzer eis hëllefen nëtzlech Funktiounen ëmzesetzen

Wa mir e spezifesche Host kucken, kënne mir gesinn datt et dräi Komponenten am Host OS lafen:

  • Berechnen - den Deel verantwortlech fir d'Verdeelung vun de Rechenressourcen um Host.
  • VRouter ass en Deel vum Tungsten Fabric deen en Iwwerlager organiséiert, dat heescht et Tunnel Päckchen duerch en Ënnerlag.
  • VDisks sinn Stécker vu Späichervirtualiséierung.

Zousätzlech ginn Servicer a virtuelle Maschinnen lancéiert: Cloud Infrastrukturservicer, Plattformservicer a Clientskapazitéiten. Client Kapazitéiten a Plattform Servicer ginn ëmmer op d'Iwwerlagerung duerch VRouter.

Infrastrukturservicer kënnen an den Iwwerlager hänken, awer am Fong wëllen se am Ënnerlag schaffen. Si gi mat der Hëllef vum SR-IOV an d'Ënnerlager gestoppt. Tatsächlech schneiden mir d'Kaart an virtuell Netzwierkkaarten (virtuell Funktiounen) an drécken se an d'Infrastruktur virtuell Maschinnen fir net d'Leeschtung ze verléieren. Zum Beispill gëtt dee selwechte CloudGate als eng vun dësen Infrastruktur virtuelle Maschinnen gestart.

Elo datt mir d'global Aufgaben vum virtuelle Netzwierk an d'Struktur vun de Basiskomponente vun der Wollek beschriwwen hunn, kucke mer wéi genau déi verschidden Deeler vum virtuelle Netzwierk matenee interagéieren.

Mir ënnerscheeden dräi Schichten an eisem System:

  • Config Plane - setzt den Zilstaat vum System. Dëst ass wat de Benotzer iwwer d'API konfiguréiert.
  • Kontrollplane - bitt Benotzerdefinéiert Semantik, dat heescht, bréngt den Data Plane Staat op dat wat vum Benotzer am Config Plane beschriwwe gouf.
  • Data Plane - veraarbecht direkt de Benotzer seng Päck.

Wéi Yandex.Cloud mat Virtual Private Cloud funktionnéiert a wéi eis Benotzer eis hëllefen nëtzlech Funktiounen ëmzesetzen

Wéi ech virdru gesot hunn, fänkt alles mat der Tatsaach un datt de Benotzer oder den internen Plattformservice op d'API kënnt an e bestëmmten Zilstaat beschreift.

Dëse Staat gëtt direkt an d'Yandex Datebank geschriwwe, gitt d'asynchron Operatioun ID iwwer d'API zréck, a fänkt eis intern Maschinnen un fir de Staat zréckzebréngen deen de Benotzer wollt. Konfiguratiounsaufgaben ginn op den SDN Controller a soen Tungsten Fabric wat an der Iwwerlagerung ze maachen. Zum Beispill reservéieren se Häfen, virtuell Netzwierker, an dergläiche.

Wéi Yandex.Cloud mat Virtual Private Cloud funktionnéiert a wéi eis Benotzer eis hëllefen nëtzlech Funktiounen ëmzesetzen

Config Plane am Wolfram Stoff schéckt den erfuerderlechen Zoustand an d'Kontrollplane. Duerch et kommunizéiert Config Plane mat den Hosten, a seet wat genee op hinnen geschwënn wäert dréinen.

Wéi Yandex.Cloud mat Virtual Private Cloud funktionnéiert a wéi eis Benotzer eis hëllefen nëtzlech Funktiounen ëmzesetzen

Loosst eis elo kucken wéi de System op de Hosten ausgesäit. Déi virtuell Maschinn huet en Netzwierkadapter an VRouter ugeschloss. VRouter ass e Kär Tungsten Fabric Modul dee Päck kuckt. Wann et schonn e Flux fir e Package ass, veraarbecht de Modul et. Wann et kee Flux ass, mécht de Modul de sougenannte Punting, dat heescht, et schéckt e Paket un de Usermod Prozess. De Prozess parséiert de Paket an reagéiert entweder op et selwer, wéi DHCP an DNS, oder seet VRouter wat mat him ze maachen. Duerno kann VRouter de Paket veraarbechten.

Weider geet de Traffic tëscht virtuelle Maschinnen am selwechte virtuelle Netzwierk transparent, et gëtt net op CloudGate geleet. D'Hosten, op deenen déi virtuell Maschinnen ofgesat ginn, kommunizéieren direkt mateneen. Si tunnelen den Traffic a fuerderen et fir all aner duerch d'Ënnerlag.

Wéi Yandex.Cloud mat Virtual Private Cloud funktionnéiert a wéi eis Benotzer eis hëllefen nëtzlech Funktiounen ëmzesetzen

Kontroll Fligeren kommunizéieren mat all aner tëscht Disponibilitéit Zonen via BGP, wéi mat anere Router. Si erzielen wéi eng Maschinnen op sinn, fir datt VMs an enger Zone direkt mat anere VMs kënne kommunizéieren.

Wéi Yandex.Cloud mat Virtual Private Cloud funktionnéiert a wéi eis Benotzer eis hëllefen nëtzlech Funktiounen ëmzesetzen

A Control Plane kommunizéiert mat CloudGate. Ähnlech bericht et wou a wéi eng virtuell Maschinnen opgewuess sinn, wéi eng Adressen se hunn. Dëst erlaabt Iech den externen Traffic an de Verkéier vu Balancer un hinnen ze riichten.

De Verkéier, deen de VPC verléisst, kënnt op CloudGate, op den Datewee, wou de VPP mat eise Plugins séier gekauft gëtt. Dann gëtt de Verkéier entweder op aner VPCs oder dobausse gebrannt, op Grenzrouter, déi duerch d'Kontrollplane vu CloudGate selwer konfiguréiert sinn.

Pläng fir déi nächst Zukunft

Wa mir alles uewen an e puer Sätz zesummefaassen, kënne mir soen datt VPC an Yandex.Cloud zwee wichteg Aufgaben léist:

  • Bitt Isolatioun tëscht verschiddene Clienten.
  • Kombinéiert Ressourcen, Infrastruktur, Plattform Servicer, aner Wolleken an on-premise an engem eenzegen Netzwierk.

A fir dës Problemer gutt ze léisen, musst Dir Skalierbarkeet a Feelertoleranz um Niveau vun der interner Architektur ubidden, wat VPC mécht.

Lues a lues kritt VPC Funktiounen, mir implementéieren nei Features, mir probéieren eppes a punkto Benotzerkomfort ze verbesseren. E puer Iddie ginn ausgeschwat a kommen op d'Prioritéitslëscht dank de Membere vun eiser Gemeng.

Mir hunn de Moment déi folgend Lëscht vu Pläng fir déi nächst Zukunft:

  • VPN als Service.
  • Privat DNS Instanzen si Biller fir séier virtuell Maschinnen mat engem pre-konfiguréierten DNS-Server opzestellen.
  • DNS als Service.
  • Interne Lastbalancer.
  • Eng "wäiss" IP Adress addéieren ouni déi virtuell Maschinn nei ze kreéieren.

De Balancer an d'Fäegkeet fir d'IP Adress fir eng scho geschaf virtuell Maschinn ze wiesselen waren op dëser Lëscht op Ufro vun de Benotzer. Fir éierlech ze sinn, ouni explizit Feedback, hätte mir dës Funktiounen e bësse méi spéit iwwerholl. An dofir schaffe mir schonn um Problem vun Adressen.

Am Ufank konnt eng "wäiss" IP Adress nëmme bäigefüügt ginn wann Dir eng Maschinn erstellt. Wann de Benotzer dëst vergiess huet, muss déi virtuell Maschinn nei erstallt ginn. Déi selwecht an, wann néideg, ewechzehuelen déi extern IP. Et wäert geschwënn méiglech sinn déi ëffentlech IP un an auszeschalten ouni d'Maschinn nei ze kreéieren.

Fillen gratis Är auszedrécken Iddien an Ënnerstëtzung Virschléi aner Benotzer. Dir hëlleft eis d'Cloud besser ze maachen a wichteg an nëtzlech Funktiounen méi séier ze kréien!

Source: will.com

Setzt e Commentaire