Yandex.Cloud нь Виртуал Хувийн Клоудтай хэрхэн ажилладаг ба манай хэрэглэгчид бидэнд хэрэгтэй функцуудыг хэрэгжүүлэхэд хэрхэн тусалдаг

Сайн байна уу, намайг Костя Крамлих гэдэг, би Yandex.Cloud дахь Virtual Private Cloud хэлтсийн ахлах хөгжүүлэгч юм. Би виртуал сүлжээний хүн бөгөөд таны таамаглаж байгаачлан энэ нийтлэлд би ерөнхийдөө Virtual Private Cloud (VPC) төхөөрөмж, ялангуяа виртуал сүлжээний талаар ярих болно. Үйлчилгээг хөгжүүлэгчид бид яагаад хэрэглэгчдийнхээ санал хүсэлтийг эрхэмлэдэг болохыг та бас мэдэх болно. Гэхдээ хамгийн түрүүнд хийх зүйл.

Yandex.Cloud нь Виртуал Хувийн Клоудтай хэрхэн ажилладаг ба манай хэрэглэгчид бидэнд хэрэгтэй функцуудыг хэрэгжүүлэхэд хэрхэн тусалдаг

VPC гэж юу вэ?

Өнөө үед үйлчилгээг нэвтрүүлэх олон янзын сонголтууд байдаг. Хэн нэгэн серверийг администраторын ширээн доор хадгалсаар байгаа гэдэгт би итгэлтэй байна, гэхдээ ийм түүх цөөн байх болно гэж найдаж байна.

Одоо үйлчилгээнүүд нийтийн үүлэнд шилжихийг оролдож байгаа бөгөөд энд тэд VPC-тэй мөргөлдөж байна. VPC нь хэрэглэгч, дэд бүтэц, платформ болон бусад хүчин чадлыг хаана ч байсан, манай Cloud дотор эсвэл түүний гадна талд холбодог нийтийн үүлний нэг хэсэг юм. Үүний зэрэгцээ, VPC нь эдгээр хүчин чадлыг интернетэд шаардлагагүйгээр үзүүлэхгүй байх боломжийг олгодог бөгөөд тэдгээр нь таны тусгаарлагдсан сүлжээнд үлддэг.

Виртуал сүлжээ гаднаасаа ямар харагддаг вэ?

Yandex.Cloud нь Виртуал Хувийн Клоудтай хэрхэн ажилладаг ба манай хэрэглэгчид бидэнд хэрэгтэй функцуудыг хэрэгжүүлэхэд хэрхэн тусалдаг

VPC-ээр бид үндсэндээ VPNaaS, NATaas, LBaas гэх мэт давхардсан сүлжээ, сүлжээний үйлчилгээг хэлж байгаа юм. Энэ бүхэн нь аль хэдийн хийгдсэн гэмтэлд тэсвэртэй сүлжээний дэд бүтцийн дээр ажилладаг. гайхалтай нийтлэл энд, Хабре дээр.

Виртуал сүлжээ болон түүний төхөөрөмжийг нарийвчлан авч үзье.

Yandex.Cloud нь Виртуал Хувийн Клоудтай хэрхэн ажилладаг ба манай хэрэглэгчид бидэнд хэрэгтэй функцуудыг хэрэгжүүлэхэд хэрхэн тусалдаг

Боломжтой хоёр бүсийг авч үзье. Бид VPC гэж нэрлэдэг виртуал сүлжээг өгдөг. Үнэн хэрэгтээ энэ нь таны "саарал" хаягуудын өвөрмөц байдлын орон зайг тодорхойлдог. Виртуал сүлжээ бүрийн дотор та нөөцийг тооцоолоход хуваарилж болох хаягийн орон зайг бүрэн хянах боломжтой.

Сүлжээ нь дэлхийн хэмжээний. Үүний зэрэгцээ, энэ нь дэд сүлжээ гэж нэрлэгддэг аж ахуйн нэгж хэлбэрээр боломжтой бүс тус бүр дээр төлөвлөгддөг. Дэд сүлжээ бүрт та 16 буюу түүнээс бага хэмжээтэй CIDR оноодог. Боломжийн бүс бүрт нэгээс олон ийм байгууллага байж болох ба тэдгээрийн хооронд үргэлж ил тод чиглүүлэлт байдаг. Энэ нь нэг VPC доторх таны бүх нөөц өөр өөр Хүртээмжийн бүсэд байсан ч өөр хоорондоо "ярилцаж" чадна гэсэн үг юм. Интернэтэд холбогдохгүйгээр, манай дотоод сувгаар "харилцаж", нэг хувийн сүлжээнд байгаа гэж "бодож".

Дээрх диаграмм нь ердийн нөхцөл байдлыг харуулж байна: хаягуудын хаа нэгтээ огтлолцдог хоёр VPC. Хоёулаа чинийх байж болно. Жишээлбэл, нэг нь хөгжүүлэлт, нөгөө нь туршилтын зориулалттай. Зүгээр л өөр өөр хэрэглэгчид байж болно - энэ тохиолдолд энэ нь хамаагүй. VPC бүрт нэг виртуал машин холбогдсон байна.

Yandex.Cloud нь Виртуал Хувийн Клоудтай хэрхэн ажилладаг ба манай хэрэглэгчид бидэнд хэрэгтэй функцуудыг хэрэгжүүлэхэд хэрхэн тусалдаг

Схемийг улам дордуулъя. Та үүнийг нэг виртуал машин нэг дор хэд хэдэн дэд сүлжээнд гацсан байхаар хийж болно. Зөвхөн үүнтэй адил биш, гэхдээ өөр өөр виртуал сүлжээнд.

Yandex.Cloud нь Виртуал Хувийн Клоудтай хэрхэн ажилладаг ба манай хэрэглэгчид бидэнд хэрэгтэй функцуудыг хэрэгжүүлэхэд хэрхэн тусалдаг

Үүний зэрэгцээ, хэрэв та машинуудыг интернетэд оруулах шаардлагатай бол үүнийг API эсвэл UI ашиглан хийж болно. Үүнийг хийхийн тулд та өөрийн "саарал" дотоод хаягийн NAT орчуулгыг "цагаан" - нийтийн болгож тохируулах хэрэгтэй. Та "цагаан" хаяг сонгох боломжгүй, энэ нь манай хаягийн сангаас санамсаргүй байдлаар өгөгддөг. Гадны IP ашиглахаа больсон даруйд энэ нь усан сан руу буцдаг. Та зөвхөн "цагаан" хаягийг ашигласан хугацаандаа төлбөр төлдөг.

Yandex.Cloud нь Виртуал Хувийн Клоудтай хэрхэн ажилладаг ба манай хэрэглэгчид бидэнд хэрэгтэй функцуудыг хэрэгжүүлэхэд хэрхэн тусалдаг

Мөн NAT жишээ ашиглан машинд интернетэд нэвтрэх боломжийг олгох боломжтой. Та хөдөлгөөнийг статик чиглүүлэлтийн хүснэгтээр дамжуулан жишээ рүү чиглүүлэх боломжтой. Хэрэглэгчид заримдаа хэрэгцээтэй байдаг тул бид ийм тохиолдлыг гаргаж өгсөн. Үүний дагуу манай зургийн каталог нь тусгайлан тохируулсан NAT дүрсийг агуулдаг.

Yandex.Cloud нь Виртуал Хувийн Клоудтай хэрхэн ажилладаг ба манай хэрэглэгчид бидэнд хэрэгтэй функцуудыг хэрэгжүүлэхэд хэрхэн тусалдаг

Гэхдээ бэлэн NAT зураг байгаа ч гэсэн тохиргоо нь төвөгтэй байж болно. Зарим хэрэглэгчдийн хувьд энэ нь хамгийн тохиромжтой сонголт биш гэдгийг бид ойлгосон тул эцэст нь хүссэн дэд сүлжээнд NAT-г нэг товшилтоор идэвхжүүлэх боломжтой болсон. Энэ функцийг олон нийтийн гишүүдийн тусламжтайгаар туршсан хаалттай урьдчилан үзэх хандалттай хэвээр байна.

Виртуал сүлжээг дотроос хэрхэн зохион байгуулдаг вэ

Yandex.Cloud нь Виртуал Хувийн Клоудтай хэрхэн ажилладаг ба манай хэрэглэгчид бидэнд хэрэгтэй функцуудыг хэрэгжүүлэхэд хэрхэн тусалдаг

Хэрэглэгч виртуал сүлжээтэй хэрхэн харьцдаг вэ? Вэб нь API-аараа гадагшаа харагддаг. Хэрэглэгч API руу ирж, зорилтот төлөвтэй ажилладаг. API-ээр дамжуулан хэрэглэгч бүх зүйлийг хэрхэн зохион байгуулж, тохируулах ёстойг харж, төлөв байдал, бодит байдал нь хүссэнээсээ хэр их ялгаатай байгааг хардаг. Энэ бол хэрэглэгчийн зураг юм. Дотор юу болоод байна аа?

Бид Yandex мэдээллийн санд хүссэн төлөвийг бичиж, VPC-ийн өөр өөр хэсгүүдийг тохируулахаар очдог. Yandex.Cloud дахь давхардсан сүлжээ нь саяхан гянт болдын даавуу гэж нэрлэгддэг OpenContrail-ийн сонгосон бүрэлдэхүүн хэсгүүд дээр суурилдаг. Сүлжээний үйлчилгээг нэг CloudGate платформ дээр хэрэгжүүлдэг. CloudGate дээр бид хэд хэдэн нээлттэй эхийн бүрэлдэхүүн хэсгүүдийг ашигласан: GoBGP - хяналтын мэдээлэлд хандах, түүнчлэн VPP - өгөгдлийн замд зориулсан DPDK дээр ажилладаг програм хангамжийн чиглүүлэгчийг хэрэгжүүлэх.

Tungsten Fabric нь GoBGP-ээр дамжуулан CloudGate-тай холбогддог. Давхардсан сүлжээнд юу болж байгааг хэлнэ. CloudGate нь эргээд давхардсан сүлжээг өөр хоорондоо болон интернеттэй холбодог.

Yandex.Cloud нь Виртуал Хувийн Клоудтай хэрхэн ажилладаг ба манай хэрэглэгчид бидэнд хэрэгтэй функцуудыг хэрэгжүүлэхэд хэрхэн тусалдаг

Одоо виртуал сүлжээ нь масштаб болон хүртээмжтэй холбоотой асуудлыг хэрхэн шийдэж байгааг харцгаая. Энгийн тохиолдлыг авч үзье. Нэг боломжийн бүс байдаг бөгөөд үүнд хоёр VPC бий болсон. Бид нэг гянт болдын даавууны жишээг байрлуулсан бөгөөд энэ нь хэдэн арван мянган сүлжээг татдаг. Сүлжээнүүд CloudGate-тай холбогддог. CloudGate нь бидний аль хэдийн хэлсэнчлэн тэдний бие биетэйгээ болон интернеттэй холбогдох боломжийг баталгаажуулдаг.

Yandex.Cloud нь Виртуал Хувийн Клоудтай хэрхэн ажилладаг ба манай хэрэглэгчид бидэнд хэрэгтэй функцуудыг хэрэгжүүлэхэд хэрхэн тусалдаг

Хоёрдахь боломжийн бүс нэмэгдлээ гэж бодъё. Энэ нь эхнийхээс үл хамааран бүрэн бүтэлгүйтэх ёстой. Тиймээс, бэлэн байдлын хоёр дахь хэсэгт бид Вольфрамын даавууны тусдаа жишээг суулгах ёстой. Энэ нь давхцалтай холбоотой тусдаа систем байх бөгөөд эхний системийн талаар бага зэрэг мэддэг. Мөн манай виртуал сүлжээ нь дэлхийн хэмжээнд байгаа нь бидний VPC API-г бий болгодог. Энэ бол түүний даалгавар.

Хэрэв VPC1-д түлхэгдсэн нөөцүүд байгаа бол VPC1-г Боломжийн бүсийн В-д оруулна. Хэрэв боломжийн В бүсэд VPC2-ийн нөөц байхгүй бол бид энэ бүсэд VPC2-г хэрэгжүүлэхгүй. Хариуд нь VPC3-ийн нөөц зөвхөн В бүсэд байдаг тул VPC3 нь А бүсэд байдаггүй. Бүх зүйл энгийн бөгөөд логиктой.

Жаахан гүнзгийрээд Y.Cloud дахь тодорхой хост хэрхэн ажилладагийг харцгаая. Миний тэмдэглэхийг хүсч буй гол зүйл бол бүх хостууд ижил байдлаар зохион байгуулагдсан явдал юм. Бид үүнийг зөвхөн шаардлагатай хамгийн бага үйлчилгээ нь техник хангамж дээр, бусад нь виртуал машин дээр ажилладаг байхаар хийдэг. Бид дэд бүтцийн үндсэн үйлчилгээнд суурилсан дээд зэрэглэлийн үйлчилгээг бий болгохоос гадна инженерийн зарим асуудлыг шийдвэрлэхэд, жишээлбэл, Тасралтгүй интеграцийн хүрээнд Cloud ашигладаг.

Yandex.Cloud нь Виртуал Хувийн Клоудтай хэрхэн ажилладаг ба манай хэрэглэгчид бидэнд хэрэгтэй функцуудыг хэрэгжүүлэхэд хэрхэн тусалдаг

Хэрэв бид тодорхой хостыг харвал хост үйлдлийн систем дээр гурван бүрэлдэхүүн хэсэг ажиллаж байгааг харж болно.

  • Тооцоолох - хост дээр тооцоолох нөөцийг хуваарилах үүрэгтэй хэсэг.
  • VRouter нь Гянт болд даавууны нэг хэсэг бөгөөд давхаргыг зохион байгуулдаг, өөрөөр хэлбэл пакетуудыг доод давхаргаар дамжуулдаг.
  • VDisk нь санах ойн виртуалчлалын хэсгүүд юм.

Нэмж дурдахад виртуал машинуудад үйлчилгээ үзүүлдэг: үүлэн дэд бүтцийн үйлчилгээ, платформын үйлчилгээ, хэрэглэгчийн хүчин чадал. Хэрэглэгчийн чадавхи болон платформын үйлчилгээнүүд үргэлж VRouter-ээр дамжуулан давхцдаг.

Дэд бүтцийн үйлчилгээ нь давхаргын дотор үлдэж болох ч үндсэндээ тэд суурь дээр ажиллахыг хүсдэг. Тэд SR-IOV-ийн тусламжтайгаар доод давхаргад наалддаг. Үнэн хэрэгтээ бид картыг виртуал сүлжээний картууд (виртуал функцууд) болгон хувааж, гүйцэтгэлийг алдахгүйн тулд тэдгээрийг дэд бүтцийн виртуал машинууд руу түлхдэг. Жишээлбэл, ижил CloudGate-ийг эдгээр дэд бүтцийн виртуал машинуудын нэг болгон эхлүүлсэн.

Одоо бид виртуал сүлжээний глобал үүрэг даалгаврууд болон үүлний үндсэн бүрэлдэхүүн хэсгүүдийн бүтцийг тодорхойлсон тул виртуал сүлжээний өөр өөр хэсгүүд хоорондоо яг хэрхэн харьцаж байгааг харцгаая.

Бид системдээ гурван давхаргыг ялгадаг.

  • Config Plane - системийн зорилтот төлөвийг тогтооно. Үүнийг хэрэглэгч API-ээр тохируулдаг.
  • Control Plane - хэрэглэгчийн тодорхойлсон семантикийг хангадаг, өөрөөр хэлбэл, Config Plane-д хэрэглэгчийн тайлбарласан төлөвт Data Plane-ийн төлөвийг авчирдаг.
  • Data Plane - хэрэглэгчийн пакетуудыг шууд боловсруулдаг.

Yandex.Cloud нь Виртуал Хувийн Клоудтай хэрхэн ажилладаг ба манай хэрэглэгчид бидэнд хэрэгтэй функцуудыг хэрэгжүүлэхэд хэрхэн тусалдаг

Дээр дурдсанчлан, энэ бүхэн хэрэглэгчийн эсвэл дотоод платформын үйлчилгээ API-д ирж, тодорхой зорилтот төлөвийг дүрсэлсэнээс эхэлдэг.

Энэ төлөвийг Yandex мэдээллийн санд шууд бичиж, API-ээр дамжуулан асинхрон үйлдлийн ID-г буцаан өгч, хэрэглэгчийн хүссэн төлөвийг буцаахын тулд бидний дотоод машиныг ажиллуулдаг. Тохиргооны даалгаварууд SDN хянагч руу очиж, Гянт болд даавуунд давхарлаж юу хийхийг хэлж өгнө. Жишээлбэл, тэд порт, виртуал сүлжээ гэх мэтийг нөөцөлж авдаг.

Yandex.Cloud нь Виртуал Хувийн Клоудтай хэрхэн ажилладаг ба манай хэрэглэгчид бидэнд хэрэгтэй функцуудыг хэрэгжүүлэхэд хэрхэн тусалдаг

Гянт болд даавуун доторх тохиргооны онгоц нь хяналтын хавтгай руу шаардлагатай төлөвийг илгээдэг. Түүгээр дамжуулан Config Plane нь хостуудтай холбогдож, удахгүй яг юу болж байгааг хэлж өгдөг.

Yandex.Cloud нь Виртуал Хувийн Клоудтай хэрхэн ажилладаг ба манай хэрэглэгчид бидэнд хэрэгтэй функцуудыг хэрэгжүүлэхэд хэрхэн тусалдаг

Одоо систем хостууд дээр хэрхэн харагдахыг харцгаая. Виртуал машин нь VRouter-д холбогдсон сүлжээний адаптертай. VRouter нь пакетуудыг хардаг гянт болд даавууны үндсэн модуль юм. Хэрэв зарим багцын урсгал аль хэдийн байгаа бол модуль үүнийг боловсруулдаг. Хэрэв урсгал байхгүй бол модуль нь punting гэж нэрлэгддэг үйлдлийг гүйцэтгэдэг, өөрөөр хэлбэл хэрэглэгчийн модулийн процесс руу пакет илгээдэг. Процесс нь пакетыг задлан шинжилж, DHCP болон DNS гэх мэт түүнд өөрөө хариу үйлдэл үзүүлэх эсвэл VRouter-д үүнийг юу хийхийг хэлж өгдөг. Үүний дараа VRouter багцыг боловсруулж болно.

Цаашилбал, ижил виртуал сүлжээн дэх виртуал машинуудын хоорондох траффик нь CloudGate руу чиглээгүй, ил тод явагддаг. Виртуал машинуудыг байрлуулсан хостууд хоорондоо шууд харилцдаг. Тэд замын хөдөлгөөнийг хонгилоор дамжуулж, бие биедээ дамжуулдаг.

Yandex.Cloud нь Виртуал Хувийн Клоудтай хэрхэн ажилладаг ба манай хэрэглэгчид бидэнд хэрэгтэй функцуудыг хэрэгжүүлэхэд хэрхэн тусалдаг

Хяналтын онгоцууд нь өөр чиглүүлэгчтэй адил BGP-ээр дамжуулан хүртээмжтэй бүсийн хооронд хоорондоо холбогддог. Тэд аль машинууд хаана байгааг хэлж өгдөг бөгөөд ингэснээр нэг бүсийн VM-үүд бусад VM-уудтай шууд холбогдох боломжтой болно.

Yandex.Cloud нь Виртуал Хувийн Клоудтай хэрхэн ажилладаг ба манай хэрэглэгчид бидэнд хэрэгтэй функцуудыг хэрэгжүүлэхэд хэрхэн тусалдаг

Мөн Control Plane нь CloudGate-тай холбогддог. Үүний нэгэн адил, энэ нь хаана, ямар виртуал машинуудыг суулгаж, ямар хаягтай болохыг мэдээлдэг. Энэ нь тэнцвэржүүлэгчээс гадаад урсгал болон урсгалыг чиглүүлэх боломжийг танд олгоно.

VPC-ээс гарах урсгал нь CloudGate руу, өгөгдлийн зам руу ирдэг бөгөөд манай залгаастай VPP хурдан зажлагддаг. Дараа нь траффик нь бусад VPC эсвэл гадна талд, CloudGate-ийн хяналтын хавтгайгаар тохируулагдсан чиглүүлэгч рүү чиглэгддэг.

Ойрын ирээдүйд хийх төлөвлөгөө

Хэрэв бид дээр дурдсан бүх зүйлийг хэдэн өгүүлбэрээр дүгнэвэл Yandex.Cloud дахь VPC нь хоёр чухал ажлыг шийддэг гэж хэлж болно.

  • Янз бүрийн үйлчлүүлэгчдийн хооронд тусгаарлалтыг хангадаг.
  • Нөөц, дэд бүтэц, платформ үйлчилгээ, бусад үүл болон газар дээрх үйлчилгээг нэг сүлжээнд нэгтгэдэг.

Эдгээр асуудлыг сайн шийдвэрлэхийн тулд та VPC-ийн хийдэг дотоод архитектурын түвшинд өргөтгөх чадвар, алдааг тэсвэрлэх чадвартай байх хэрэгтэй.

Аажмаар VPC функцүүдтэй болж, бид шинэ функцуудыг хэрэгжүүлж, хэрэглэгчийн тав тухтай байдлын үүднээс ямар нэг зүйлийг сайжруулахыг хичээдэг. Манай нийгэмлэгийн гишүүдийн ачаар зарим санаанууд гарч, тэргүүлэх жагсаалтад ордог.

Бидэнд ойрын ирээдүйд хийх төлөвлөгөөний жагсаалт одоогоор байна.

  • VPN үйлчилгээ
  • Хувийн DNS жишээнүүд нь урьдчилан тохируулсан DNS сервер бүхий виртуал машинуудыг хурдан тохируулахад зориулагдсан зургууд юм.
  • DNS үйлчилгээ.
  • Дотоод ачаалал тэнцвэржүүлэгч.
  • Виртуал машиныг дахин үүсгэхгүйгээр "цагаан" IP хаяг нэмэх.

Тэнцвэржүүлэгч болон аль хэдийн үүсгэсэн виртуал машины IP хаягийг солих чадвар нь хэрэглэгчдийн хүсэлтээр энэ жагсаалтад байсан. Үнэнийг хэлэхэд, тодорхой санал хүсэлтгүйгээр бид эдгээр функцийг хэсэг хугацааны дараа авах байсан. Тиймээс бид хаягийн асуудал дээр аль хэдийн ажиллаж байна.

Эхэндээ "цагаан" IP хаягийг зөвхөн машин үүсгэх үед нэмж болно. Хэрэв хэрэглэгч үүнийг хийхээ мартсан бол виртуал машиныг дахин үүсгэх шаардлагатай болсон. Үүнтэй адил бөгөөд шаардлагатай бол гадаад IP-г устгана уу. Удахгүй машиныг дахин үүсгэхгүйгээр нийтийн IP-г асаах, унтраах боломжтой болно.

Өөрийн бодлоо чөлөөтэй илэрхийлж болно санаа, дэмжлэг үзүүлэх бусад хэрэглэгчид. Та Cloud-ыг сайжруулахад бидэнд тусалж, чухал, хэрэгцээтэй функцуудыг хурдан авахад тусална уу!

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх