Virtual Private Cloud Yandex.Cloud-da qanday ishlaydi va bizning foydalanuvchilarimiz foydali funktsiyalarni amalga oshirishda bizga qanday yordam beradi

Salom, mening ismim Kostya Kramlich, men Yandex.Cloud-da Virtual Private Cloud bo'limining yetakchi ishlab chiquvchisiman. Men virtual tarmoq ustida ishlayapman va siz taxmin qilganingizdek, ushbu maqolada men umuman Virtual Private Cloud (VPC) qurilmasi va xususan virtual tarmoq haqida gapiraman. Shuningdek, biz, xizmat ishlab chiquvchilari, foydalanuvchilarning fikr-mulohazalarini nima uchun qadrlashimizni bilib olasiz. Lekin birinchi narsa birinchi.

Virtual Private Cloud Yandex.Cloud-da qanday ishlaydi va bizning foydalanuvchilarimiz foydali funktsiyalarni amalga oshirishda bizga qanday yordam beradi

VPC nima?

Hozirgi vaqtda xizmatlarni joylashtirishning turli xil variantlari mavjud. Ishonchim komilki, kimdir hali ham administrator stoli ostida serverni ushlab turadi, ammo umid qilamanki, bunday hikoyalar kamroq va kamroq tarqalgan.

Endi xizmatlar umumiy bulutlarga o'tishga harakat qilmoqda va bu erda ular VPC-larga duch kelishadi. VPC - bu foydalanuvchini, infratuzilmani, platformani va boshqa imkoniyatlarni, ular qayerda bo'lishidan qat'i nazar, bizning Bulutimizda yoki undan tashqarida bog'laydigan umumiy bulutning bir qismi. Shu bilan birga, VPC bu imkoniyatlarni Internetga keraksiz ta'sir qilishdan qochish imkonini beradi; ular sizning izolyatsiya qilingan tarmog'ingizda qoladi.

Virtual tarmoq tashqi tomondan qanday ko'rinishga ega

Virtual Private Cloud Yandex.Cloud-da qanday ishlaydi va bizning foydalanuvchilarimiz foydali funktsiyalarni amalga oshirishda bizga qanday yordam beradi

VPC deganda biz birinchi navbatda VPNaaS, NATaas, LBaas va boshqalar kabi tarmoq va tarmoq xizmatlarini nazarda tutamiz. Va bularning barchasi allaqachon muhokama qilingan nosozliklarga chidamli tarmoq infratuzilmasi ustida ishlaydi. ajoyib maqola bu erda Habré-da.

Keling, virtual tarmoq va uning tuzilishini batafsil ko'rib chiqaylik.

Virtual Private Cloud Yandex.Cloud-da qanday ishlaydi va bizning foydalanuvchilarimiz foydali funktsiyalarni amalga oshirishda bizga qanday yordam beradi

Keling, ikkita mavjudlik zonasini ko'rib chiqaylik. Biz VPC deb ataydigan virtual tarmoqni taqdim etamiz. Aslida, bu sizning "kulrang" manzillaringizning o'ziga xoslik maydonini belgilaydi. Har bir virtual tarmoq ichida siz hisoblash resurslariga belgilashingiz mumkin bo'lgan manzillar maydoni ustidan to'liq nazoratga egasiz.

Tarmoq globaldir. Shu bilan birga, u mavjudlik zonalarining har biriga Subnet deb nomlangan ob'ekt shaklida prognoz qilinadi. Har bir quyi tarmoq uchun siz 16 yoki undan kichik o'lchamdagi CIDRni tayinlaysiz. Har bir mavjudlik zonasida bir nechta bunday ob'ektlar bo'lishi mumkin va ular orasida har doim shaffof marshrut mavjud. Bu shuni anglatadiki, bitta VPC ichidagi barcha resurslaringiz, hatto ular turli mavjudlik zonalarida bo'lsa ham, bir-biri bilan "suhbatlasha oladi". Bizning ichki kanallarimiz orqali Internetga kirmasdan "muloqot qiling", ular bir xil shaxsiy tarmoq ichida ekanliklarini "o'ylab".

Yuqoridagi diagramma odatiy vaziyatni ko'rsatadi: ularning manzillarida bir joyda kesishgan ikkita VPC. Ikkalasi ham sizniki bo'lishi mumkin. Masalan, biri ishlab chiqish uchun, ikkinchisi sinov uchun. Turli xil foydalanuvchilar bo'lishi mumkin - bu holda bu muhim emas. Va har bir VPC bitta virtual mashinaga ega.

Virtual Private Cloud Yandex.Cloud-da qanday ishlaydi va bizning foydalanuvchilarimiz foydali funktsiyalarni amalga oshirishda bizga qanday yordam beradi

Keling, sxemani yomonlashtiraylik. Bitta virtual mashinani bir vaqtning o'zida bir nechta pastki tarmoqlarga ulashingiz mumkin. Va nafaqat shunga o'xshash, balki turli xil virtual tarmoqlarda.

Virtual Private Cloud Yandex.Cloud-da qanday ishlaydi va bizning foydalanuvchilarimiz foydali funktsiyalarni amalga oshirishda bizga qanday yordam beradi

Shu bilan birga, agar siz Internetda mashinalarni ochishingiz kerak bo'lsa, bu API yoki UI orqali amalga oshirilishi mumkin. Buni amalga oshirish uchun siz "kulrang", ichki manzilingizning NAT tarjimasini "oq" - umumiy manzilga sozlashingiz kerak. Siz “oq” manzilni tanlay olmaysiz, u bizning manzillar hovuzimizdan tasodifiy tarzda tayinlangan. Tashqi IP-dan foydalanishni to'xtatganingizdan so'ng, u hovuzga qaytadi. Siz faqat "oq" manzildan foydalangan vaqtingiz uchun to'laysiz.

Virtual Private Cloud Yandex.Cloud-da qanday ishlaydi va bizning foydalanuvchilarimiz foydali funktsiyalarni amalga oshirishda bizga qanday yordam beradi

Bundan tashqari, NAT misoli yordamida mashinaga Internetga kirish imkoniyatini berish mumkin. Trafikni statik marshrutlash jadvali orqali namunangizga yo'naltirishingiz mumkin. Biz bunday holatni taqdim etdik, chunki foydalanuvchilarga ba'zan kerak bo'ladi va biz bu haqda bilamiz. Shunga ko'ra, bizning rasmlar katalogimizda maxsus sozlangan NAT tasviri mavjud.

Virtual Private Cloud Yandex.Cloud-da qanday ishlaydi va bizning foydalanuvchilarimiz foydali funktsiyalarni amalga oshirishda bizga qanday yordam beradi

Ammo tayyor NAT tasviri mavjud bo'lganda ham, konfiguratsiya murakkab bo'lishi mumkin. Biz ba'zi foydalanuvchilar uchun bu eng qulay variant emasligini tushundik, shuning uchun biz bir marta bosish orqali kerakli pastki tarmoq uchun NAT-ni yoqishga imkon berdik. Bu xususiyat hali hamjamiyat aʼzolari yordamida sinovdan oʻtkazilayotgan yopiq oldindan koʻrish imkoniyatida.

Virtual tarmoq ichkaridan qanday ishlaydi

Virtual Private Cloud Yandex.Cloud-da qanday ishlaydi va bizning foydalanuvchilarimiz foydali funktsiyalarni amalga oshirishda bizga qanday yordam beradi

Foydalanuvchi virtual tarmoq bilan qanday ishlaydi? Tarmoq API bilan tashqi ko'rinishga ega. Foydalanuvchi API ga keladi va maqsad holati bilan ishlaydi. API orqali foydalanuvchi hamma narsani qanday tartibga solish va sozlash kerakligini ko'radi, u holatni, haqiqiy holat kerakli holatdan qanday farq qilishini ko'radi. Bu foydalanuvchining surati. Ichkarida nima bo'lyapti?

Biz Yandex ma'lumotlar bazasida kerakli holatni yozamiz va VPC-ning turli qismlarini sozlashga o'tamiz. Yandex.Cloud-dagi overlay tarmog'i yaqinda volfram mato deb nomlangan OpenContrail-ning tanlangan komponentlari asosida qurilgan. Tarmoq xizmatlari yagona CloudGate platformasida amalga oshiriladi. CloudGate-da biz bir qator ochiq manba komponentlaridan ham foydalandik: nazorat ma'lumotlarini boshqarish uchun GoBGP, shuningdek, ma'lumotlar yo'li uchun DPDK ustida ishlaydigan dasturiy ta'minot routerini amalga oshirish uchun VPP.

Tungsten Fabric CloudGate bilan GoBGP orqali aloqa qiladi. Overlay tarmog'ida nima sodir bo'layotganini aytadi. CloudGate, o'z navbatida, qatlamli tarmoqlarni bir-biriga va Internetga ulaydi.

Virtual Private Cloud Yandex.Cloud-da qanday ishlaydi va bizning foydalanuvchilarimiz foydali funktsiyalarni amalga oshirishda bizga qanday yordam beradi

Endi virtual tarmoq miqyosi va mavjudligi bilan bog'liq muammolarni qanday hal qilishini ko'rib chiqaylik. Keling, oddiy ishni ko'rib chiqaylik. Bitta mavjudlik zonasi mavjud va unda ikkita VPC yaratilgan. Biz bitta Tungsten Fabric nusxasini joylashtirdik va u bir necha o'n minglab tarmoqlarni o'z ichiga oladi. Tarmoqlar CloudGate bilan bog'lanadi. CloudGate, yuqorida aytib o'tganimizdek, ularning bir-biri bilan va Internet bilan ulanishini ta'minlaydi.

Virtual Private Cloud Yandex.Cloud-da qanday ishlaydi va bizning foydalanuvchilarimiz foydali funktsiyalarni amalga oshirishda bizga qanday yordam beradi

Aytaylik, ikkinchi mavjudlik zonasi qo'shildi. Birinchisidan butunlay mustaqil ravishda muvaffaqiyatsiz bo'lishi kerak. Shuning uchun biz ikkinchi mavjudlik zonasida alohida volfram mato namunasini o'rnatishimiz kerak. Bu qoplamani boshqaradigan va birinchi tizim haqida ozgina biladigan alohida tizim bo'ladi. Va bizning virtual tarmog'imiz global ko'rinish, aslida bizning VPC API-ni yaratadi. Bu uning vazifasi.

Mavjudlik zonasi B VPC1ga yopishib oladigan resurslarga ega bo'lsa, VPC1 mavjudlik zonasi B bilan taqqoslanadi. Agar mavjudlik zonasi Bda VPC2 dan resurslar bo'lmasa, biz VPC2 ni ushbu zonada amalga oshirmaymiz. O'z navbatida, VPC3 resurslari faqat B zonasida mavjud bo'lgani uchun, VPC3 A zonasida mavjud emas. Hammasi oddiy va mantiqiy.

Keling, bir oz chuqurroq boraylik va Y.Cloud-dagi aniq xost qanday ishlashini ko'rib chiqaylik. Shuni ta'kidlashni istardimki, barcha xostlar bir xil ishlab chiqilgan. Biz xizmatlarning faqat kerakli minimal qismi apparatda, qolganlari esa virtual mashinalarda ishlashiga ishonch hosil qilamiz. Biz asosiy infratuzilma xizmatlariga asoslangan yuqori darajadagi xizmatlarni yaratamiz, shuningdek, ba'zi muhandislik muammolarini hal qilish uchun bulutdan foydalanamiz, masalan, Uzluksiz integratsiyaning bir qismi sifatida.

Virtual Private Cloud Yandex.Cloud-da qanday ishlaydi va bizning foydalanuvchilarimiz foydali funktsiyalarni amalga oshirishda bizga qanday yordam beradi

Agar ma'lum bir xostni ko'rib chiqsak, xost operatsion tizimida uchta komponent ishlayotganini ko'rishimiz mumkin:

  • Hisoblash - bu xostda hisoblash resurslarini taqsimlash uchun mas'ul bo'lgan qism.
  • VRouter tungsten matosining bir qismi bo'lib, u qoplamani tashkil qiladi, ya'ni paketlarni pastki qatlam orqali tunnel qiladi.
  • VDisklar saqlash virtualizatsiyasining bir qismidir.

Bundan tashqari, virtual mashinalar xizmatlarni boshqaradi: bulutli infratuzilma xizmatlari, platforma xizmatlari va mijozlar imkoniyatlari. Mijozlarning imkoniyatlari va platforma xizmatlari har doim VRouter orqali ustki qatlamga o'tadi.

Infratuzilma xizmatlari ustki qatlamga ulanishi mumkin, lekin ular asosan pastki qatlamda ishlashni xohlashadi. Ular SR-IOV yordamida taglikka yopishtirilgan. Aslida, biz kartani virtual tarmoq kartalariga (virtual funktsiyalar) kesib, ishlashni yo'qotmaslik uchun ularni infratuzilma virtual mashinalariga suramiz. Masalan, xuddi shu CloudGate ushbu infratuzilma virtual mashinalaridan biri sifatida ishga tushiriladi.

Endi biz virtual tarmoqning global vazifalarini va bulutning asosiy komponentlarini loyihalashni tasvirlab berdik, keling, virtual tarmoqning turli qismlari bir-biri bilan qanday aniq o'zaro ta'sir qilishini ko'rib chiqaylik.

Biz tizimimizda uchta qatlamni ajratamiz:

  • Config Plane - tizimning maqsadli holatini o'rnatadi. Bu foydalanuvchi API orqali sozlagan narsadir.
  • Boshqaruv tekisligi - foydalanuvchi tomonidan belgilab qo'yilgan semantikani ta'minlaydi, ya'ni ma'lumotlar tekisligi holatini foydalanuvchi tomonidan konfiguratsiya tekisligida tasvirlangan holatga keltiradi.
  • Ma'lumotlar tekisligi - foydalanuvchi paketlarini bevosita qayta ishlaydi.

Virtual Private Cloud Yandex.Cloud-da qanday ishlaydi va bizning foydalanuvchilarimiz foydali funktsiyalarni amalga oshirishda bizga qanday yordam beradi

Yuqorida aytganimdek, barchasi foydalanuvchi yoki ichki platforma xizmati API ga kelishi va ma'lum bir maqsad holatini tavsiflashi bilan boshlanadi.

Bu holat darhol Yandex ma'lumotlar bazasiga yoziladi, API orqali asinxron operatsiya identifikatorini qaytaradi va foydalanuvchi xohlagan holatni ishlab chiqarish uchun ichki mexanizmimizni ishga tushiradi. Konfiguratsiya vazifalari SDN tekshirgichiga o'tadi va Tungsten Fabric-ga qoplamada nima qilish kerakligini aytadi. Masalan, ular portlarni, virtual tarmoqlarni va shunga o'xshash narsalarni zahiraga oladi.

Virtual Private Cloud Yandex.Cloud-da qanday ishlaydi va bizning foydalanuvchilarimiz foydali funktsiyalarni amalga oshirishda bizga qanday yordam beradi

Tungsten matodagi konfiguratsiya tekisligi boshqaruv tekisligiga kerakli holatni yuklaydi. U orqali Config Plane xostlar bilan bog‘lanib, ularga yaqin kelajakda ularda aynan nimalar ishlashini aytib beradi.

Virtual Private Cloud Yandex.Cloud-da qanday ishlaydi va bizning foydalanuvchilarimiz foydali funktsiyalarni amalga oshirishda bizga qanday yordam beradi

Endi tizim hostlarda qanday ko'rinishini ko'rib chiqamiz. Virtual mashinada VRouter-ga ulangan ma'lum bir tarmoq adapteri mavjud. VRouter - bu paketlarga qaraydigan volfram matosining asosiy moduli. Agar ba'zi paketlar uchun oqim mavjud bo'lsa, modul uni qayta ishlaydi. Agar oqim bo'lmasa, modul punting deb ataladigan ishni bajaradi, ya'ni paketni usermod jarayoniga yuboradi. Jarayon paketni tahlil qiladi va DHCP va DNS kabi unga o'zi javob beradi yoki VRouterga u bilan nima qilish kerakligini aytadi. Keyin VRouter paketga ishlov berishi mumkin.

Bundan tashqari, bir xil virtual tarmoq ichidagi virtual mashinalar orasidagi trafik shaffof tarzda oqadi, u CloudGate-ga yuborilmaydi. Virtual mashinalar o'rnatilgan xostlar bir-biri bilan bevosita muloqot qiladi. Ular traffikni tunnel qiladi va uni pastki qatlam orqali bir-biriga uzatadi.

Virtual Private Cloud Yandex.Cloud-da qanday ishlaydi va bizning foydalanuvchilarimiz foydali funktsiyalarni amalga oshirishda bizga qanday yordam beradi

Boshqaruv samolyotlari boshqa yo'riqnoma bilan bo'lgani kabi, BGP orqali mavjudlik zonalari bo'ylab bir-biri bilan aloqa qiladi. Ular sizga qaysi mashinalar qayerda o'rnatilganligini aytadilar, shunda bitta zonadagi virtual mashinalar boshqa virtual mashinalar bilan to'g'ridan-to'g'ri bog'lanishi mumkin.

Virtual Private Cloud Yandex.Cloud-da qanday ishlaydi va bizning foydalanuvchilarimiz foydali funktsiyalarni amalga oshirishda bizga qanday yordam beradi

Control Plane CloudGate bilan ham aloqa qiladi. Xuddi shunday, u qayerda va qaysi virtual mashinalar o'rnatilganligi, ularning manzillari qanday ekanligi haqida xabar beradi. Bu sizga tashqi trafik va trafikni balanschilardan ularga yo'naltirish imkonini beradi.

VPC-dan chiqadigan trafik CloudGate-ga, ma'lumotlar yo'liga keladi, bu erda bizning plaginlarimiz bilan VPP tezda chaynaladi. Keyin trafik boshqa VPC-larga yoki tashqariga, CloudGate boshqaruv tekisligi orqali sozlangan chekka marshrutizatorlarga o'tkaziladi.

Yaqin kelajak uchun rejalar

Agar biz yuqorida aytilganlarning barchasini bir necha jumla bilan umumlashtirsak, Yandex.Cloud-dagi VPC ikkita muhim muammoni hal qiladi, deb aytishimiz mumkin:

  • Turli mijozlar o'rtasida izolyatsiyani ta'minlaydi.
  • Resurslarni, infratuzilmani, platforma xizmatlarini, boshqa bulutlarni va mahalliyni yagona tarmoqqa birlashtiradi.

Va bu muammolarni yaxshi hal qilish uchun siz VPC bajaradigan ichki arxitektura darajasida miqyoslilik va xatolarga chidamlilikni ta'minlashingiz kerak.

Asta-sekin VPC funktsiyalarga ega bo'lmoqda, biz yangi xususiyatlarni joriy qilmoqdamiz va foydalanuvchilar uchun qulaylik nuqtai nazaridan nimanidir yaxshilashga harakat qilmoqdamiz. Jamoamiz a'zolari tufayli ba'zi g'oyalar aytiladi va ustuvorliklar ro'yxatiga kiritiladi.

Endi bizda yaqin kelajak uchun taxminan quyidagi rejalar ro'yxati mavjud:

  • VPN xizmat sifatida.
  • Shaxsiy DNS nusxalari - oldindan tuzilgan DNS serveri bilan virtual mashinalarni tezda sozlash uchun tasvirlar.
  • DNS xizmat sifatida.
  • Ichki yuk balansi.
  • Virtual mashinani qayta yaratmasdan "oq" IP manzilini qo'shish.

Foydalanuvchilarning iltimosiga binoan ushbu ro'yxatga muvozanatlashtiruvchi va allaqachon yaratilgan virtual mashina uchun IP-manzilni almashtirish imkoniyati kiritilgan. Rostini aytsam, aniq fikr-mulohazalarsiz biz bu funktsiyalarni biroz keyinroq qabul qilgan bo'lardik. Va shuning uchun biz allaqachon manzillar muammosi ustida ishlamoqdamiz.

Dastlab, "oq" IP-manzil faqat mashina yaratishda qo'shilishi mumkin edi. Agar foydalanuvchi buni unutgan bo'lsa, virtual mashina qayta yaratilishi kerak edi. Agar kerak bo'lsa, tashqi IPni olib tashlash ham xuddi shunday. Tez orada umumiy IP-ni mashinani qayta yaratmasdan yoqish va o'chirish mumkin bo'ladi.

O'z fikringizni bildiring g'oyalar va qo'llab-quvvatlash takliflari boshqa foydalanuvchilar. Siz bizga Bulutni yaxshilash va muhim va foydali funksiyalarni tezroq olishimizga yordam berasiz!

Manba: www.habr.com

a Izoh qo'shish