Хадамоти фикрию маълумот ҳавопаймо против

Салом, Хабр! Ман ба диққати шумо тарҷумаи мақоларо пешкаш мекунам "Ҳавопаймои маълумотҳои хидматрасонӣ ва ҳавопаймои идоракунӣ" муаллиф Мат Клейн.

Хадамоти фикрию маълумот ҳавопаймо против

Ин дафъа, ман тавсифи ҳам ҷузъҳои шабакаи хидматрасонӣ, ҳам ҳавопаймои додаҳо ва ҳам ҳавопаймои идоракуниро "хостам ва тарҷума кардам". Ин тавсиф ба назари ман аз ҳама фаҳмо ва ҷолибтарин намуд ва муҳимтар аз ҳама ба фаҳмиши "Оё ин умуман лозим аст?"

Азбаски дар ду соли охир идеяи "хизматрасонӣ тор" бештар маъмул гаштааст (Мақолаи аслӣ 10 октябри соли 2017) ва шумораи иштирокчиён дар фазо афзудааст, ман афзоиши мутаносиби нофаҳмиҳо дар байни тамоми ҷомеаи технологӣ дар бораи чӣ гуна муқоиса ва муқоиса кардани ҳалли гуногун.

Вазъият аз рӯи силсилаи твитҳои зерин, ки ман дар моҳи июл навишта будам, беҳтарин ҷамъбаст карда мешавад:

Нофаҳмиҳои шабакаи хидматӣ №1: Linkerd ~ = Nginx ~ = Haproxy ~ = Фиристода. Ҳеҷ кадоми онҳо ба Истио баробар нестанд. Истио чизи тамоман дигар аст. 1 /

Аввалин танҳо ҳавопаймоҳои маълумот мебошанд. Онҳо худашон ҳеҷ коре намекунанд. Онҳо бояд дар кайфияти чизи бештаре бошанд. 2/

Истио як намунаи ҳавопаймои идоракунӣ мебошад, ки қисмҳоро ба ҳам мепайвандад. Ин як қабати дигар аст. /Поён

Дар твитҳои қаблӣ якчанд лоиҳаҳои гуногун (Linkerd, NGINX, HAProxy, Envoy ва Istio) зикр шудаанд, аммо муҳимтар аз он мафҳумҳои умумии ҳавопаймои додаҳо, торҳои хидматрасонӣ ва ҳавопаймои идоракуниро муаррифӣ мекунанд. Дар ин паём, ман як қадам ба ақиб меравам ва дар бораи он, ки истилоҳҳои "ҳавопаймои додаҳо" ва "ҳавопаймои идоракунӣ" дар сатҳи хеле баланд дар назар дорам ва сипас дар бораи чӣ гуна татбиқ кардани ин истилоҳҳо ба лоиҳаҳои дар твитҳо зикршуда сӯҳбат мекунам.

Дар ҳақиқат як шабакаи хидматрасонӣ чист?

Хадамоти фикрию маълумот ҳавопаймо против
Тасвири 1: Шарҳи шабакаи хидматрасонӣ

Расми 1 консепсияи шабакаи хидматрасониро дар сатҳи ибтидоии он нишон медиҳад. Чор кластерҳои хидматрасонӣ (AD) мавҷуданд. Ҳар як мисоли хидматӣ бо сервери прокси маҳаллӣ алоқаманд аст. Ҳама трафики шабакавӣ (HTTP, REST, gRPC, Redis ва ғ.) аз як мисоли барнома тавассути прокси маҳаллӣ ба кластерҳои мувофиқи хидматрасонии беруна интиқол дода мешавад. Ҳамин тариқ, намунаи барнома аз шабака дар маҷмӯъ бехабар аст ва танҳо аз прокси маҳаллии худ огоҳ аст. Дар асл, шабакаи системавии тақсимшуда аз хидмат хориҷ карда шуд.

Ҳавопаймои маълумот

Дар шабакаи хидматрасонӣ, сервери прокси, ки барои барнома дар маҳал ҷойгир аст, вазифаҳои зеринро иҷро мекунад:

  • Кашфи хидмат. Кадом хидматҳо/барномаҳо барои дархости шумо дастрасанд?
  • Санҷиши саломатӣ. Оё намунаҳои хидматрасонӣ, ки тавассути кашфи хидмат баргардонида шудаанд, солим ҳастанд ва барои қабули трафики шабака омодаанд? Ин метавонад ҳам санҷишҳои солимии фаъол (масалан, посух/тафтиши саломатӣ) ва ғайрифаъол (масалан, бо истифода аз 3 хатогиҳои пайдарпайи 5xx ҳамчун нишонаи ҳолати хидматрасонии носолим) дохил шавад.
  • Маршрут. Ҳангоми гирифтани дархост ба "/foo" аз хидмати REST, дархост бояд ба кадом кластери хидматрасонӣ фиристода шавад?
  • Мувозинати сарборӣ. Вақте ки кластери хидматрасонӣ ҳангоми масир интихоб шуд, дархост бояд ба кадом намунаи хидматрасонӣ фиристода шавад? Бо кадом вақт-аут? Бо кадом танзимоти шикастани схема? Агар дархост ноком шавад, оё онро дубора санҷидан лозим аст?
  • Аутентификатсия ва иҷозат. Барои дархостҳои воридотӣ, оё хидмати зангро бо истифода аз mTLS ё ягон механизми дигар ба таври криптографӣ муайян/иҷозат додан мумкин аст? Агар он эътироф/иҷозат дода шуда бошад, оё занг задан ба амалиёти дархостшуда (нуқтаи ниҳоӣ) дар хидмат иҷозат дода мешавад ё ҷавоби тасдиқнашуда баргардонида мешавад?
  • Мушоҳидашаванда. Барои ҳар як дархост омори муфассал, гузоришҳо/журналҳо ва маълумоти пайгирии тақсимшуда бояд тавлид карда шаванд, то операторон ҷараёни тақсими трафик ва мушкилоти ислоҳи онҳоро ҳангоми ба миён омаданашон дарк кунанд.

Ҳавопаймои маълумот барои ҳамаи нуқтаҳои қаблӣ дар шабакаи хидматрасонӣ масъул аст. Дарвоқеъ, прокси маҳаллии хидмат (тарафдор) ҳавопаймои додаҳост. Ба ибораи дигар, ҳавопаймои додаҳо барои интиқоли шартӣ, интиқол ва мониторинги ҳар як бастаи шабакавӣ, ки ба хидмат ё аз хидмат фиристода мешавад, масъул аст.

Ҳавопаймои идоракунӣ

Абстраксияи шабака, ки прокси маҳаллӣ дар ҳавопаймои маълумот таъмин мекунад, ҷодугарӣ аст(?). Аммо, чӣ тавр прокси воқеан дар бораи масири "/foo" ба хидмати B медонад? Маълумоти кашфи хидматро, ки бо дархостҳои прокси пур карда мешавад, чӣ гуна метавон истифода бурд? Параметрҳо барои мувозинати сарборӣ, тайм-аут, шикастани схема ва ғайра чӣ гуна танзим карда мешаванд? Чӣ тавр шумо барномаро бо истифода аз усули кабуд/сабз ё усули гузариши трафики зебо ҷойгир мекунед? Танзимоти аутентификатсия ва авторизатсияро дар саросари система кӣ танзим мекунад?

Ҳама чизҳои дар боло зикршуда таҳти назорати ҳавопаймои идоракунии торҳои хидматӣ қарор доранд. Ҳавопаймои идоракунӣ маҷмӯи проксиҳои ҷудошудаи бидуни шаҳрвандӣ мегирад ва онҳоро ба системаи тақсимшуда табдил медиҳад.

Ман фикр мекунам, ки сабаби бисёр технологҳо мафҳумҳои ҷудогонаи ҳавопаймои додаҳо ва ҳавопаймои идоракуниро печида пайдо мекунанд, зеро барои аксари одамон ҳавопаймои додаҳо шинос аст, дар ҳоле ки ҳавопаймои идоракунӣ хориҷӣ/нафаҳмо аст. Мо муддати тӯлонӣ бо роутерҳо ва коммутаторҳои шабакаи физикӣ кор карда истодаем. Мо мефаҳмем, ки бастаҳо/дархостҳо бояд аз нуқтаи А ба нуқтаи B гузаранд ва мо метавонем барои ин кор сахтафзор ва нармафзорро истифода барем. Насли нави прокси нармафзорҳо танҳо версияҳои зебои асбобҳое мебошанд, ки мо муддати тӯлонӣ истифода мебарем.

Хадамоти фикрию маълумот ҳавопаймо против
Расми 2: Ҳавопаймои идоракунии инсон

Бо вуҷуди ин, мо муддати тӯлонӣ аз ҳавопаймоҳои идоракунӣ истифода мебарем, гарчанде ки аксари операторони шабака ин қисми системаро бо ягон ҷузъи технологӣ алоқаманд намекунанд. Сабаб оддӣ аст:
Аксарияти самолётхои идоракунанда, ки имруз истифода мешаванд... мо.

Дар бораи он Тасвири 2 нишон медиҳад, ки ман онро "ҳавопаймои идоракунии инсон" меномам. Дар ин навъи ҷойгиркунӣ, ки то ҳол хеле маъмул аст, як оператори эҳтимолан хашмгин конфигуратсияҳои статикӣ эҷод мекунад - эҳтимолан тавассути скриптҳо - ва онҳоро тавассути як раванди махсус ба ҳамаи проксиҳо ҷойгир мекунад. Пас аз он проксиҳо ба истифодаи ин конфигуратсия шурӯъ мекунанд ва бо истифода аз танзимоти навшуда коркарди ҳавопаймои маълумотро оғоз мекунанд.

Хадамоти фикрию маълумот ҳавопаймо против
Тасвири 3: Ҳавопаймои идоракунии торҳои хидматрасонии пешрафта

Дар бораи он Тасвири 3 хатти идораку-нии «васеъ»-и торхои хизматиро нишон медихад. Он аз қисмҳои зерин иборат аст:

  • Инсон: Ҳанӯз шахсе вуҷуд дорад (умедворам камтар хашмгин), ки дар бораи тамоми система дар маҷмӯъ қарорҳои сатҳи баланд қабул мекунад.
  • UI ҳавопаймои идоракунӣ: Шахсе бо баъзе намуди интерфейси корбар барои идоракунии система ҳамкорӣ мекунад. Ин метавонад портали веб, барномаи сатри фармон (CLI) ё ягон интерфейси дигар бошад. Бо истифода аз интерфейси корбар, оператор ба параметрҳои конфигуратсияи глобалии система дастрасӣ дорад, ба монанди:
    • Назорати ҷойгиркунӣ, кабуд/сабз ва/ё гузариши тадриҷии трафик
    • Имконоти аутентификатсия ва авторизатсия
    • Мушаххасоти ҷадвали масир, масалан, вақте ки барномаи A маълумотро дар бораи "/foo" дархост мекунад, ки чӣ мешавад
    • Танзимоти мувозинати сарборӣ, аз қабили мӯҳлатҳо, кӯшишҳои такрорӣ, танзимоти шикастани схема ва ғайра.
  • Нақшаи сарбории корӣ: Хидматҳо дар инфрасохтор тавассути баъзе намуди системаи банақшагирӣ/оркестрӣ, ба монанди Kubernetes ё Nomad, иҷро карда мешаванд. Банақшагир барои боркунии хидмат дар якҷоягӣ бо прокси маҳаллии худ масъул аст.
  • Кашфи хидмат. Вақте ки банақшагир мисолҳои хидматро оғоз ва қатъ мекунад, он вазъи саломатиро ба системаи кашфи хидмат хабар медиҳад.
  • API-ҳои конфигуратсияи прокси Sidecar : Проксиҳои маҳаллӣ ба таври динамикӣ ҳолати аз ҷузъҳои гуногуни системаро бо истифода аз модели дар ниҳоят пайваста бидуни дахолати оператор истихроҷ мекунанд. Тамоми система, ки аз ҳама намунаҳои хидматрасонии ҳозира ва серверҳои прокси маҳаллӣ иборат аст, дар ниҳоят ба як экосистема муттаҳид мешавад. API-и универсалии ҳавопаймои додаҳои Envoy як мисоли он аст, ки ин дар амал чӣ гуна кор мекунад.

Аслан, ҳадафи ҳавопаймои идоракунӣ муқаррар кардани сиёсатест, ки дар ниҳоят аз ҷониби ҳавопаймои додаҳо қабул карда мешавад. Ҳавопаймоҳои пешрафтаи идоракунӣ қисмҳои бештари баъзе системаҳоро аз оператор хориҷ мекунанд ва кори дастиро камтар талаб мекунанд, ба шарте ки онҳо дуруст кор кунанд!...

Ҳавопаймои маълумот ва ҳавопаймои идоракунӣ. Ҳавопаймо маълумот против хулосаи ҳавопаймои назорат

  • Ҳавопаймои маълумотҳои хидматрасонӣ: Ба ҳар як баста/дархост дар система таъсир мерасонад. Масъул барои кашфи барнома/хизмат, санҷиши саломатӣ, масир, мувозинати сарборӣ, аутентификатсия/иҷозатнома ва мушоҳида.
  • Ҳавопаймои идоракунии торҳои хидматӣ: Сиёсат ва конфигуратсияро барои ҳама ҳавопаймоҳои маълумот дар дохили шабакаи хидматрасонӣ таъмин мекунад. Ба ҳеҷ гуна бастаҳо/дархостҳо дар система даст нарасонад. Ҳавопаймои идоракунӣ ҳамаи ҳавопаймоҳои маълумотро ба системаи тақсимшуда табдил медиҳад.

Манзараи лоиҳаи ҷорӣ

Пас аз фаҳмидани шарҳи боло, биёед ба ҳолати кунунии лоиҳаи шабакаи хидматрасонӣ назар андозем.

  • Ҳавопаймоҳои маълумот: Linkerd, NGINX, HAProxy, фиристода, Traefik
  • Ҳавопаймоҳои идоракунӣ: Истио, Нелсон, SmartStack

Ба ҷои ба таҳлили амиқи ҳар як ҳалли дар боло овардашуда, ман ба таври мухтасар ба баъзе нуқтаҳое муроҷиат мекунам, ки ба бовари ман ҳоло боиси нофаҳмиҳои зиёди экосистема мегарданд.

Linkerd яке аз аввалин серверҳои прокси ҳавопаймои додаҳо барои шабакаи хидматрасонӣ дар аввали соли 2016 буд ва кори афсонавӣ оид ба баланд бардоштани огоҳӣ ва таваҷҷӯҳ ба модели тарроҳии хидматрасониро анҷом дод. Тақрибан 6 моҳ пас аз он, фиристодашуда ба Линкерд пайваст (гарчанде ки вай аз охири соли 2015 бо Lyft буд). Linkerd ва Envoy ду лоиҳа мебошанд, ки ҳангоми муҳокимаи торҳои хидматӣ бештар зикр мешаванд.

Истио моҳи майи соли 2017 эълон шуда буд. Ҳадафҳои лоиҳаи Истио ба ҳавопаймои идоракунии васеъ, ки дар он нишон дода шудааст, хеле монанданд Тасвири 3. Фиристодаи Истио прокси пешфарз аст. Ҳамин тариқ, Истио ҳавопаймои идоракунӣ ва фиристодашуда ҳавопаймои додаҳост. Дар муддати кӯтоҳ, Истио ҳаяҷони зиёд ба вуҷуд овард ва дигар ҳавопаймоҳои додашуда ҳамчун ивазкунандаи Envoy ҳамгироӣ шуданд (ҳам Linkerd ва ҳам NGINX ҳамгироиро бо Истио нишон доданд). Далели он, ки ҳавопаймоҳои гуногуни додаҳо метавонанд дар як ҳавопаймои идоракунӣ истифода шаванд, маънои онро дорад, ки ҳавопаймои идоракунӣ ва ҳавопаймои додаҳо ҳатман зич алоқаманд нестанд. API, ба монанди API-и генералии ҳавопаймои додаҳои Envoy метавонад байни ду қисми система пуле ташкил кунад.

Нелсон ва SmartStack барои тасвири минбаъдаи ҷудошавии ҳавопаймои идоракунӣ ва ҳавопаймои маълумот кӯмак мекунанд. Нелсон Envoy-ро ҳамчун прокси худ истифода мебарад ва як ҳавопаймои боэътимоди идоракуниро барои шабакаи хидматрасонӣ дар асоси стек HashiCorp месозад, яъне. Nomad ва ғайра. SmartStack шояд аввалин мавҷи нави шабакаҳои хидматрасонӣ буд. SmartStack як ҳавопаймои идоракуниро дар атрофи HAProxy ё NGINX месозад, ки қобилияти ҷудо кардани ҳавопаймои идоракуниро аз шабакаи хидматрасонӣ аз ҳавопаймои додаҳо нишон медиҳад.

Меъмории Microservice бо шабакаи хидматрасонӣ диққати бештарро ба худ ҷалб мекунад (дуруст!) ва бештари лоиҳаҳо ва фурӯшандагон дар ин самт ба кор шурӯъ мекунанд. Дар тӯли чанд соли оянда мо ҳам дар ҳавопаймои додаҳо ва ҳам ҳавопаймои идоракунӣ, инчунин омехтаи минбаъдаи ҷузъҳои гуногун навовариҳои зиёдеро хоҳем дид. Дар ниҳоят, меъмории хидматрасонии микросервис бояд барои оператор шаффофтар ва ҷодугарӣ (?) шавад.
Умедворам, ки камтар ва камтар хашмгин мешаванд.

Баррасиҳои асосӣ

  • Шабакаи хидматрасонӣ аз ду қисмати гуногун иборат аст: ҳавопаймои маълумот ва ҳавопаймои идоракунӣ. Ҳарду ҷузъҳо лозиманд ва бе онҳо система кор намекунад.
  • Ҳама бо ҳавопаймои идоракунӣ шиносанд ва дар ин лаҳза, ҳавопаймои идоракунӣ метавонад шумо бошед!
  • Ҳама ҳавопаймоҳои додашуда аз рӯи хусусиятҳо, иҷроиш, конфигуратсия ва васеъшавӣ бо ҳамдигар рақобат мекунанд.
  • Ҳама ҳавопаймоҳои идоракунӣ дар хусусиятҳо, конфигуратсия, васеъшавӣ ва осонии истифода бо ҳамдигар рақобат мекунанд.
  • Як ҳавопаймои идоракунӣ метавонад абстраксияҳо ва API-ҳои дурустро дар бар гирад, то якчанд ҳавопаймоҳои додашуда истифода шаванд.

Манбаъ: will.com

Илова Эзоҳ