Kumaha Yandex.Cloud tiasa dianggo sareng Virtual Private Cloud sareng kumaha pangguna urang ngabantosan urang ngalaksanakeun fitur anu mangpaat

Halo, nami abdi Kostya Kramlich, abdi pamekar ngarah divisi Virtual Private Cloud di Yandex.Cloud. Kuring nuju damel di jaringan virtual, sareng, sakumaha anu anjeun panginten, dina tulisan ieu kuring bakal ngobrol ngeunaan alat Virtual Private Cloud (VPC) sacara umum sareng jaringan virtual khususna. Sareng anjeun ogé bakal terang naha kami, pamekar jasa, ngahargaan tanggapan ti pangguna urang. Tapi hal kahiji kahiji.

Kumaha Yandex.Cloud tiasa dianggo sareng Virtual Private Cloud sareng kumaha pangguna urang ngabantosan urang ngalaksanakeun fitur anu mangpaat

Naon ari VPC?

Kiwari, aya rupa-rupa pilihan pikeun deploying jasa. Kuring yakin batur masih nyimpen hiji server handapeun meja administrator urang, sanajan kuring miharep carita sapertos anu jadi kirang umum.

Ayeuna jasa narékahan pikeun ngalih ka awan umum, sareng ieu dimana aranjeunna mendakan VPC. VPC mangrupikeun bagian tina awan umum anu ngahijikeun pangguna, infrastruktur, platform sareng kamampuan sanés, dimana waé aranjeunna, dina Awan urang atanapi saluareun. Dina waktos anu sami, VPC ngamungkinkeun anjeun pikeun ngahindarkeun kamampuan ieu ka Internét anu teu perlu; aranjeunna tetep aya dina jaringan terasing anjeun.

Naon rupa jaringan virtual ti luar

Kumaha Yandex.Cloud tiasa dianggo sareng Virtual Private Cloud sareng kumaha pangguna urang ngabantosan urang ngalaksanakeun fitur anu mangpaat

Ku VPC kami hartosna, mimitina, jaringan overlay sareng jasa jaringan, sapertos VPNaaS, NATaas, LBaas, jsb. Sareng sadaya ieu tiasa dianggo di luhur infrastruktur jaringan anu teu toleran, anu parantos dibahas. artikel hébat dieu on Habré.

Hayu urang tingali langkung caket kana jaringan virtual sareng strukturna.

Kumaha Yandex.Cloud tiasa dianggo sareng Virtual Private Cloud sareng kumaha pangguna urang ngabantosan urang ngalaksanakeun fitur anu mangpaat

Hayu urang tingali dua zona kasadiaan. Kami nyayogikeun jaringan virtual - anu kami sebut VPC. Kanyataanna, eta ngahartikeun spasi uniqueness alamat "abu" Anjeun. Dina unggal jaringan virtual, anjeun gaduh kadali pinuh kana rohangan alamat anu anjeun tiasa pasangkeun kana sumber komputasi.

Jaringanna global. Dina waktos anu sami, éta diproyeksikan ka unggal zona kasadiaan dina bentuk éntitas anu disebut Subnet. Pikeun unggal Subnet anjeun ngadaptarkeun CIDR ukuranana 16 atanapi kirang. Unggal zona kasadiaan tiasa gaduh langkung ti hiji éntitas sapertos kitu, sareng aya rute anu transparan antara aranjeunna. Ieu ngandung harti yén sakabéh sumberdaya anjeun dina VPC sarua bisa "ngobrol" ka silih, sanajan aranjeunna dina Zona Kasadiaan béda. "Komunikasi" tanpa aksés ka Internét, ngaliwatan saluran internal urang, "pamikiran" aranjeunna dina jaringan pribadi anu sami.

Diagram di luhur nunjukkeun kaayaan anu umum: dua VPC anu motong di mana waé dina alamatna. Duanana tiasa milik anjeun. Contona, hiji keur ngembangkeun, hiji deui pikeun nguji. Bisa waé aya sababaraha pangguna anu béda - dina hal ieu henteu masalah. Sarta unggal VPC boga hiji mesin virtual.

Kumaha Yandex.Cloud tiasa dianggo sareng Virtual Private Cloud sareng kumaha pangguna urang ngabantosan urang ngalaksanakeun fitur anu mangpaat

Hayu urang nyieun skéma goréng. Anjeun tiasa ngadamel hiji mesin virtual nyambung ka sababaraha Subnet sakaligus. Sareng henteu sapertos kitu, tapi dina jaringan virtual anu béda.

Kumaha Yandex.Cloud tiasa dianggo sareng Virtual Private Cloud sareng kumaha pangguna urang ngabantosan urang ngalaksanakeun fitur anu mangpaat

Dina waktos anu sami, upami anjeun kedah ngalaan mesin dina Internét, ieu tiasa dilakukeun ngaliwatan API atanapi UI. Jang ngalampahkeun ieu, anjeun kedah ngonpigurasikeun tarjamahan NAT tina "abu" alamat internal anjeun, kana "bodas" - alamat umum. Anjeun teu tiasa milih alamat "bodas"; éta ditugaskeun sacara acak tina kolam renang alamat kami. Pas anjeun eureun ngagunakeun IP éksternal, eta balik ka kolam renang nu. Anjeun ngan mayar waktos Anjeun nganggo alamat "bodas".

Kumaha Yandex.Cloud tiasa dianggo sareng Virtual Private Cloud sareng kumaha pangguna urang ngabantosan urang ngalaksanakeun fitur anu mangpaat

Éta ogé mungkin pikeun masihan mesin aksés Internét nganggo conto NAT. Anjeun tiasa ngalihkeun lalu lintas ka conto anjeun ngalangkungan tabel rute statik. Kami parantos nyayogikeun kasus sapertos kitu kusabab pangguna kadang peryogi éta, sareng kami terang ngeunaan éta. Sasuai, dina diréktori gambar kami aya gambar NAT anu dikonpigurasi khusus.

Kumaha Yandex.Cloud tiasa dianggo sareng Virtual Private Cloud sareng kumaha pangguna urang ngabantosan urang ngalaksanakeun fitur anu mangpaat

Tapi sanajan aya gambar NAT siap-dijieun, konfigurasi bisa jadi kompléks. Kami ngartos yén pikeun sababaraha pangguna ieu sanés pilihan anu pangmerenahna, janten dina tungtungna kami ngamungkinkeun pikeun ngaktipkeun NAT pikeun Subnet anu dipikahoyong dina hiji klik. Fitur ieu masih aya dina aksés sawangan anu ditutup, dimana éta diuji kalayan bantosan anggota komunitas.

Kumaha jaringan virtual dianggo ti jero

Kumaha Yandex.Cloud tiasa dianggo sareng Virtual Private Cloud sareng kumaha pangguna urang ngabantosan urang ngalaksanakeun fitur anu mangpaat

Kumaha pamaké berinteraksi sareng jaringan virtual? Jaringan kasampak kaluar kalawan API na. Pamaké datang ka API tur dianggo kalayan kaayaan target. Ngaliwatan API, pamaké nilik kumaha sagalana kudu diatur sarta ngonpigurasi, bari anjeunna nilik status, kumaha kaayaan sabenerna béda ti nu dipikahoyong. Ieu gambar pamaké. Aya naon di jero?

Kami ngarékam kaayaan anu dipikahoyong dina Pangkalan Data Yandex sareng angkat pikeun ngonpigurasikeun bagian anu béda tina VPC kami. Jaringan overlay dina Yandex.Cloud diwangun dina dasar komponén anu dipilih tina OpenContrail, anu nembe disebut Tungsten Fabric. Ladenan jaringan dilaksanakeun dina platform CloudGate tunggal. Di CloudGate, urang ogé ngagunakeun sababaraha komponén open source: GoBGP pikeun nanganan informasi kontrol, kitu ogé VPP pikeun nerapkeun hiji router software ngajalankeun on luhureun DPDK pikeun jalur data.

Tungsten Fabric komunikasi sareng CloudGate via GoBGP. Ngabejaan naon anu lumangsung dina jaringan overlay. CloudGate, kahareupna nyambungkeun jaringan overlay ka silih sareng ka Internét.

Kumaha Yandex.Cloud tiasa dianggo sareng Virtual Private Cloud sareng kumaha pangguna urang ngabantosan urang ngalaksanakeun fitur anu mangpaat

Ayeuna hayu urang tingali kumaha jaringan virtual ngabéréskeun masalah skalabilitas sareng kasadiaan. Hayu urang nganggap kasus basajan. Aya hiji zona kasadiaan sareng dua VPC parantos didamel di jerona. Urang nyebarkeun hiji conto Tungsten Fabric, sareng ngandung sababaraha puluhan rébu jaringan. Jaringan komunikasi sareng CloudGate. CloudGate, sakumaha anu parantos kami nyarios, ngajamin konektipitasna saling sareng Internét.

Kumaha Yandex.Cloud tiasa dianggo sareng Virtual Private Cloud sareng kumaha pangguna urang ngabantosan urang ngalaksanakeun fitur anu mangpaat

Hayu urang nyebutkeun hiji Zona Kasadiaan kadua ditambahkeun. Sakuduna gagal sagemblengna bebas tina kahiji. Ku alatan éta, urang kudu masang conto Tungsten lawon misah di zone kasadiaan kadua. Ieu bakal sistem misah nu handles overlay jeung nyaho saeutik ngeunaan sistem munggaran. Sareng penampilan yén jaringan virtual urang global, nyatana, nyiptakeun API VPC urang. Ieu tugasna.

VPC1 dipetakeun kana Zona Kasadiaan B upami Zona Kasadiaan B gaduh sumber daya anu lengket kana VPC1. Upami teu aya sumber daya ti VPC2 dina zona kasadiaan B, kami henteu ngawujudkeun VPC2 di zona ieu. Sabalikna, saprak sumberdaya ti VPC3 ngan aya di zone B, VPC3 teu aya di zone A. Sagalana basajan tur logis.

Hayu urang balik saeutik deeper tur tingal kumaha hiji host husus dina Y.Cloud jalan. Hal utama anu kuring hoyong perhatikeun nyaéta yén sadaya host dirancang sami. Kami mastikeun yén ngan ukur minimum jasa anu dijalankeun dina hardware; sadayana sésana dijalankeun dina mesin virtual. Kami ngawangun jasa tingkat luhur dumasar kana jasa infrastruktur dasar, sareng ogé nganggo Cloud pikeun ngabéréskeun sababaraha masalah rékayasa, contona, salaku bagian tina Integrasi Kontinyu.

Kumaha Yandex.Cloud tiasa dianggo sareng Virtual Private Cloud sareng kumaha pangguna urang ngabantosan urang ngalaksanakeun fitur anu mangpaat

Upami urang ningali host khusus, urang tiasa ningali yén aya tilu komponén anu dijalankeun dina OS host:

  • Komputasi mangrupikeun bagian anu tanggung jawab pikeun nyebarkeun sumber komputasi dina host.
  • VRouter mangrupa bagian tina Tungsten Fabric, nu organizes overlay nu, nyaeta, torowongan pakét ngaliwatan underlay nu.
  • VDisks mangrupikeun potongan virtualisasi panyimpenan.

Salaku tambahan, mesin virtual ngajalankeun jasa: jasa infrastruktur awan, jasa platform sareng kapasitas palanggan. Kapasitas palanggan sareng jasa platform sok angkat ka overlay via VRouter.

jasa infrastruktur bisa nyolok kana overlay nu, tapi lolobana maranéhna rék dianggo dina underlay nu. Éta nyangkut kana underlay ngagunakeun SR-IOV. Kanyataanna, urang motong kartu kana kartu jaringan virtual (fungsi virtual) jeung nyorong kana infrastruktur mesin virtual ku kituna teu leungit kinerja. Salaku conto, CloudGate sami diluncurkeun salaku salah sahiji mesin virtual infrastruktur ieu.

Ayeuna urang parantos ngajelaskeun tugas global jaringan virtual sareng desain komponén dasar awan, hayu urang tingali kumaha persisna bagian-bagian jaringan virtual saling berinteraksi.

Kami ngabédakeun tilu lapisan dina sistem kami:

  • Config Plane - nyetél kaayaan target sistem. Ieu naon pamaké configures via API.
  • Control Plane - nyadiakeun semantik-spésifik pamaké, nyaeta, brings kaayaan Data Plane kana naon anu dijelaskeun ku pamaké dina Config Plane.
  • Data Plane - langsung ngolah pakét pangguna.

Kumaha Yandex.Cloud tiasa dianggo sareng Virtual Private Cloud sareng kumaha pangguna urang ngabantosan urang ngalaksanakeun fitur anu mangpaat

Sakumaha anu kuring nyarios di luhur, éta sadayana dimimitian ku pangguna atanapi jasa platform internal anu sumping ka API sareng ngajelaskeun kaayaan target anu tangtu.

Kaayaan ieu langsung diserat ka Yandex Database, mulihkeun ID operasi Asynchronous via API, sareng ngaluncurkeun mesin internal kami pikeun ngahasilkeun kaayaan anu dipikahoyong ku pangguna. tugas Konfigurasi buka SDN controller sarta ngabejaan Tungsten lawon naon anu kudu dipigawé dina overlay nu. Contona, aranjeunna cagar palabuhan, jaringan virtual, jeung sajabana.

Kumaha Yandex.Cloud tiasa dianggo sareng Virtual Private Cloud sareng kumaha pangguna urang ngabantosan urang ngalaksanakeun fitur anu mangpaat

The Config Plane di Tungsten Fabric unggah kaayaan anu diperyogikeun ka Control Plane. Ngaliwatan éta, Config Plane komunikasi sareng host, nyarioskeun ka aranjeunna naon anu bakal dijalankeun dina waktosna.

Kumaha Yandex.Cloud tiasa dianggo sareng Virtual Private Cloud sareng kumaha pangguna urang ngabantosan urang ngalaksanakeun fitur anu mangpaat

Ayeuna hayu urang tingali kumaha sistem éta dina host. Mesin virtual ngabogaan adaptor jaringan tangtu plugged kana VRouter nu. VRouter mangrupikeun modul inti Tungsten Fabric anu ningali pakét. Upami parantos aya aliran pikeun sababaraha pakét, modul ngolah éta. Upami teu aya aliran, modul ngalakukeun anu disebut punting, nyaéta, ngirim pakét kana prosés usermod. Prosésna parses pakét jeung boh ngabales eta sorangan, kawas DHCP jeung DNS, atawa ngabejaan VRouter naon nu kudu jeung eta. VRouter teras tiasa ngolah pakét.

Salajengna, lalu lintas antara mesin virtual dina jaringan virtual anu sami ngalir sacara transparan, éta henteu dikirim ka CloudGate. Host dimana mesin virtual dipasang saling komunikasi langsung. Aranjeunna torowongan lalulintas sarta teruskeun ka silih ngaliwatan underlay nu.

Kumaha Yandex.Cloud tiasa dianggo sareng Virtual Private Cloud sareng kumaha pangguna urang ngabantosan urang ngalaksanakeun fitur anu mangpaat

Control Planes saling komunikasi di sakuliah Zona Kasadiaan via BGP, kawas router sejen. Aranjeunna ngabejaan Anjeun nu mesin dipasang dimana, ku kituna mesin virtual dina hiji zone bisa komunikasi langsung jeung mesin virtual lianna.

Kumaha Yandex.Cloud tiasa dianggo sareng Virtual Private Cloud sareng kumaha pangguna urang ngabantosan urang ngalaksanakeun fitur anu mangpaat

Control Plane ogé komunikasi sareng CloudGate. Nya kitu, éta ngalaporkeun dimana sareng mana mesin virtual dipasang, naon alamatna. Hal ieu ngamungkinkeun anjeun ngarahkeun lalu lintas éksternal sareng lalu lintas ti pangimbang ka aranjeunna.

Lalu lintas anu ninggalkeun VPC datang ka CloudGate, dina jalur data, dimana VPP sareng plugins kami gancang dikunyah. Lajeng lalulintas ditémbak boh ka VPC séjén, atawa ka luar, ka ujung routers, nu ngonpigurasi ngaliwatan Control Plane of CloudGate sorangan.

Rencana pikeun mangsa nu bakal datang

Upami urang nyimpulkeun sadayana anu nyarios di luhur dina sababaraha kalimat, urang tiasa nyarios yén VPC di Yandex.Cloud ngarengsekeun dua masalah penting:

  • Nyadiakeun isolasi antara klien béda.
  • Ngahijikeun sumberdaya, prasarana, jasa platform, awan sanés sareng di premis kana jaringan tunggal.

Sareng pikeun ngabéréskeun masalah ieu, anjeun kedah mastikeun skalabilitas sareng kasabaran kasalahan dina tingkat arsitéktur internal, anu dilakukeun ku VPC.

Saeutik demi saeutik, VPC ngagaduhan fungsi, urang ngalaksanakeun fitur-fitur anyar, sareng nyobian ningkatkeun hal dina hal genah pikeun pangguna. Sababaraha ideu disuarakeun sareng kalebet dina daptar prioritas berkat anggota komunitas urang.

Ayeuna urang gaduh kira-kira daptar di handap ieu rencana pikeun masa depan anu caket:

  • VPN salaku jasa.
  • Inpo DNS swasta - gambar pikeun gancang nyetél mesin virtual sareng server DNS anu tos dikonpigurasikeun.
  • DNS salaku jasa.
  • Pangimbangan beban internal.
  • Nambahkeun alamat IP "bodas" tanpa nyiptakeun mesin virtual.

Balancer sareng kamampuan pikeun ngalihkeun alamat IP pikeun mesin virtual anu parantos didamel kalebet dina daptar ieu dumasar kana pamundut pangguna. Jujur, tanpa eupan balik eksplisit kami bakal nyandak fungsi ieu sakedik engké. Janten kami parantos ngusahakeun masalah ngeunaan alamat.

Mimitina, alamat IP "bodas" ngan ukur tiasa nambihan nalika nyiptakeun mesin. Upami pangguna hilap ngalakukeun ieu, mesin virtual kedah didamel deui. Sami lumaku pikeun nyoplokkeun IP éksternal lamun perlu. Moal lami deui bakal tiasa ngaktipkeun sareng mareuman IP umum tanpa kedah nyiptakeun deui mesin.

Ngarasa Luncat pikeun nganyatakeun anjeun gagasan jeung saran pangrojong pamaké séjén. Anjeun ngabantosan kami ngajantenkeun Awan langkung saé sareng kéngingkeun fitur penting sareng mangpaat langkung gancang!

sumber: www.habr.com

Tambahkeun komentar