Силсилаи паёмҳо дар Istio Service Mesh

Мо як қатор паёмҳоро оғоз мекунем, ки баъзе аз қобилиятҳои зиёди Istio Service Meshро ҳангоми якҷоя бо Red Hat OpenShift ва Kubernetes нишон медиҳанд.

Силсилаи паёмҳо дар Istio Service Mesh

Қисми якум, имрӯз:

  • Биёед консепсияи контейнерҳои паҳлӯи Kubernetes-ро шарҳ диҳем ва лейтмотиви ин силсилаи паёмҳоро таҳия кунем: "ба шумо лозим нест, ки чизеро дар коди худ тағир диҳед".
  • Биёед чизи асосии Истио - қоидаҳои масирро муаррифӣ кунем. Ҳамаи дигар хусусиятҳои Istio бар онҳо сохта шудаанд, зеро ин қоидаҳоест, ки ба шумо имкон медиҳанд, ки трафикро ба микросервисҳо бо истифода аз файлҳои YAML берун аз рамзи хидмат равона кунед. Мо инчунин нақшаи ҷойгиркунии Canary Deployment-ро баррасӣ мекунем. Бонус барои солинавӣ – 10 дарси интерактивӣ дар Истио


Қисми дуюм, ки ба наздикӣ меояд, ба шумо мегӯяд:

  • Чӣ тавр Istio Ejection Pool-ро дар якҷоягӣ бо Circuit Breaker амалӣ мекунад ва нишон медиҳад, ки чӣ тавр Istio ба шумо имкон медиҳад, ки як паҳлӯи мурда ё суст иҷрошавандаро аз схемаи мувозинат хориҷ кунед.
  • Мо инчунин мавзӯи Circuit Breaker-ро аз паёми аввал дида мебароем, то бубинем, ки чӣ тавр Истио дар ин ҷо истифода мешавад. Мо ба шумо нишон медиҳем, ки чӣ гуна масири трафик ва идора кардани хатогиҳои шабакаро бо истифода аз файлҳои конфигуратсияи YAML ва фармонҳои терминал бидуни каме тағирот дар коди хидматрасонӣ.

Қисми сеюм:

  • Ҳикоя дар бораи пайгирӣ ва мониторинг, ки аллакай дарунсохт ё ба осонӣ ба Истио илова карда шудааст. Мо ба шумо нишон медиҳем, ки чӣ гуна абзорҳоро ба мисли Prometheus, Jaeger ва Grafana дар якҷоягӣ бо миқёси OpenShift барои идора кардани меъмории хурди хидматрасонӣ ба осонӣ истифода баред.
  • Мо аз назорат ва коркарди хатогиҳо ба ворид кардани онҳо ба система дидаю дониста мегузарем. Ба ибораи дигар, мо мефаҳмем, ки чӣ гуна ворид кардани хатогиҳоро бидуни тағир додани рамзи ибтидоӣ анҷом диҳем, ки ин аз нуқтаи назари санҷиш хеле муҳим аст - зеро агар шумо худи кодро барои ин иваз кунед, хатари ворид кардани хатогиҳои иловагӣ вуҷуд дорад.

Дар ниҳоят, дар паёми ниҳоӣ дар Istio Service Mesh:

  • Биёед ба тарафи торик равем. Аниқтараш, мо истифодаи схемаи Dark Launch-ро меомӯзем, вақте ки код мустақиман дар маълумоти истеҳсолӣ ҷойгир ва санҷида мешавад, аммо ба ҳеҷ ваҷҳ ба кори система таъсир намерасонад. Дар ин ҷо қобилияти Истио барои тақсим кардани трафик муфид аст. Ва қобилияти санҷиши маълумот оид ба истеҳсоли зинда бидуни таъсир ба кори системаи ҷангӣ ба ҳеҷ ваҷҳ усули боварибахши санҷиш мебошад.
  • Бар асоси Launch Dark, мо ба шумо нишон медиҳем, ки чӣ гуна истифода бурдани модели Canary Deployment барои коҳиш додани хатар ва осон кардани ворид кардани коди нав ба истеҳсолот. Худи Canary Deployment аз нав нест, аммо Istio ба шумо имкон медиҳад, ки ин схемаро бо файлҳои оддии YAML амалӣ кунед.
  • Дар ниҳоят, мо ба шумо нишон медиҳем, ки чӣ тавр истифода бурдани Istio Egress барои дастрасӣ ба хидматҳо ба онҳое, ки берун аз кластерҳои шумо ҳастанд, бо мақсади истифодаи имкониятҳои Istio ҳангоми кор бо Интернет.

Инак, мо меравем...

Воситаҳои мониторинг ва идоракунии Istio - ҳама чизест, ки ба шумо барои ташкили микросервисҳо дар шабакаи хидматрасон лозим аст шабакаи хидматрасонӣ.

Istio Service Mesh чист

Шабакаи хидматрасонӣ вазифаҳоеро ба мисли мониторинги трафик, назорати дастрасӣ, кашф, амният, таҳаммулпазирии хатоҳо ва дигар чизҳои муфид барои як гурӯҳи хидматҳо иҷро мекунад. Истио ба шумо имкон медиҳад, ки ҳамаи инҳоро бидуни тағир додани каме дар коди худи хидматҳо анҷом диҳед. Сирри ҷодугарӣ дар чист? Истио прокси худро ба ҳар як хидмат дар шакли контейнери паҳлӯӣ замима мекунад (тарафдори мотосикл аст), пас аз он тамоми трафик ба ин хидмат тавассути прокси мегузарад, ки бо назардошти сиёсати муайяншуда, қарор мекунад, ки ин трафик чӣ гуна, кай ва ё не. бояд умуман ба хизмат расанд. Истио инчунин имкон медиҳад, ки усулҳои пешрафтаи DevOps, аз қабили ҷойгиркунии канарӣ, сӯзандоруҳо, сӯзандоруи хатогӣ ва бисёр дигарон.

Чӣ тавр Истио бо контейнерҳо ва Кубернетес кор мекунад

Шабакаи хидматрасонии Istio як амали паҳлӯи ҳама чизест, ки барои эҷод ва идоракунии микросервисҳо лозим аст: мониторинг, пайгирӣ, сӯзандоруҳо, масирсозӣ, мувозинати сарборӣ, инъекцияи хатогиҳо, такрорӣ, тайм-аутҳо, оинасозӣ, назорати дастрасӣ, маҳдудияти суръат ва ғайра. Ва гарчанде ки имрӯз як тонна китобхонаҳо мавҷуданд, ки ин функсияҳоро мустақиман дар код иҷро мекунанд, бо Istio шумо метавонед ҳама чизро бидуни тағир додани чизе дар коди худ ба даст оред.

Тибқи модели паҳлӯ, Истио дар контейнери Linux кор мекунад, ки дар як контейнер ҷойгир аст Кубернитель-pod бо хидмати назоратшаванда ва мувофиқи конфигуратсияи додашуда функсияҳо ва иттилоотро ворид ва истихроҷ мекунад. Мо таъкид мекунем, ки ин конфигуратсияи шахсии шумост ва он берун аз рамзи шумо зиндагӣ мекунад. Аз ин рӯ, код хеле соддатар ва кӯтоҳтар мешавад.

Муҳим он аст, ки ҷузъи амалиётии микросервисҳо ба ҳеҷ ваҷҳ бо худи код иртибот надорад ва ин маънои онро дорад, ки амалиёти онҳоро ба таври бехатар ба мутахассисони IT интиқол додан мумкин аст. Дарвоқеъ, чаро таҳиякунанда бояд барои сӯзандоруҳо ва сӯзандоруҳои хато масъул бошад? Бале, вокуниш нишон диҳед, аммо онҳоро коркард кунед ва эҷод кунед? Агар шумо ҳамаи инро аз рамз хориҷ кунед, барномасозон метавонанд ба фаъолияти барнома диққати худро пурра равона кунанд. Ва худи код кӯтоҳтар ва соддатар мешавад.

Шабакаи хидматрасонӣ

Istio, ки функсияҳои идоракунии микросервисҳоро берун аз коди онҳо амалӣ мекунад, мафҳуми хидматрасонии Mesh мебошад. Ба ибораи дигар, он як гурӯҳи ҳамоҳангшудаи як ё якчанд бинарҳо мебошад, ки як шабакаи функсияҳои шабакаро ташкил медиҳанд.

Чӣ тавр Istio бо микросервисҳо кор мекунад

Дар якҷоягӣ кори контейнерҳои канорӣ ба ҳамин монанд аст Кубернитель и Minishift дидани чашми парранда: як мисоли Minishift-ро оғоз кунед, барои Истио лоиҳа эҷод кунед (бигзор онро “istio-system” меномем), ҳама ҷузъҳои марбут ба Истио насб ва иҷро кунед. Пас, вақте ки шумо лоиҳаҳо ва подкастҳоро эҷод мекунед, шумо маълумоти конфигуратсияро ба ҷойгиркунии худ илова мекунед ва подкастҳои шумо бо истифода аз Istio оғоз мекунанд. Диаграммаи соддакардашуда чунин менамояд:

Силсилаи паёмҳо дар Istio Service Mesh

Акнун шумо метавонед танзимоти Istio-ро бо тартиби тағир диҳед, масалан, барои ташкили тазриқи хато, дастгирӣ Ҷойгиркунии Канария ё дигар хусусиятҳои Истио - ва ҳамаи ин бе ламс кардани рамзи худи барномаҳо. Фарз мекунем, ки шумо мехоҳед тамоми трафики вебро аз корбарони бузургтарин муштарии худ (Foo Corporation) ба версияи нави сайт равона кунед. Барои ин, танҳо як қоидаи масирсозии Istio эҷод кунед, ки дар ID корбар @foocorporation.com -ро ҷустуҷӯ кунад ва мувофиқи он масир равона кунад. Барои ҳамаи корбарони дигар, ҳеҷ чиз тағир намеёбад. Дар ҳамин ҳол, шумо оромона версияи нави сайтро месанҷед. Ва дар хотир доред, ки барои ин ба шумо умуман таҳиягаронро ҷалб кардан лозим нест.

Ва оё шумо бояд барои он гарон пардохт кунед?

Умуман не. Истио хеле зуд аст ва дар он навишта шудааст Go ва хеле ками изофаро ба вуҷуд меорад. Илова бар ин, талафоти эҳтимолии маҳсулнокии онлайн бо афзоиши ҳосилнокии таҳиягарон ҷуброн карда мешавад. Ақаллан дар назария: фаромӯш накунед, ки вақти таҳиягарон арзишманд аст. Дар мавриди хароҷоти нармафзор, Istio нармафзори кушодаасос аст, бинобар ин шумо метавонед онро ройгон дастрас ва истифода баред.

Онро худатон азхуд кунед

Гурӯҳи Таҷрибаи Developer Red Hat як амали амиқро таҳия кардааст роҳнамо аз ҷониби Истио (ба забони англисӣ). Он дар Linux, MacOS ва Windows кор мекунад ва рамз дар Java ва Node.js дастрас аст.

10 дарси интерактивӣ дар Истио

Блоки 1 - Барои шурӯъкунандагон

Муқаддима ба Истио
Дақиқа 30
Биёед бо Service Mesh шинос шавем, чӣ тавр насб кардани Istio -ро дар кластери OpenShift Kubernetes омӯзем.
Барои оғоз кардан

Ҷойгир кардани хидматрасониҳои хурд дар Истио
Дақиқа 30
Мо Istio-ро барои ҷойгиркунии се микросервис бо Spring Boot ва Vert.x истифода мебарем.
Барои оғоз кардан

Блоки 2 - сатҳи миёна

Мониторинг ва пайгирӣ дар Истио
Дақиқа 60
Мо асбобҳои дарунсохташудаи мониторинги Istio, ченакҳои фармоишӣ ва OpenTracing тавассути Prometheus ва Grafana-ро меомӯзем.
Барои оғоз кардан

Масири оддӣ дар Истио
Дақиқа 60
Омӯзед, ки чӣ тавр идора кардани масир дар Истио бо истифода аз қоидаҳои оддӣ.
Барои оғоз кардан

Қоидаҳои пешрафтаи масир
Дақиқа 60
Биёед масири оқилонаи Istio, назорати дастрасӣ, мувозинати сарборӣ ва маҳдудияти суръатро бубинем.
Барои оғоз кардан

Блоки 3 - корбари пешрафта

Тазриқи хато дар Истио
Дақиқа 60
Мо сенарияҳои коркарди нокомиро дар барномаҳои тақсимшуда, эҷоди хатогиҳои HTTP ва таъхирҳои шабака меомӯзем ва истифодаи муҳандисии бесарусомониро барои барқарор кардани муҳити зист меомӯзем.
Барои оғоз кардан

Калиди барқ ​​​​дар Истио
Дақиқа 30
Мо Siege-ро барои сайтҳои санҷиши стресс насб мекунем ва меомӯзем, ки чӣ гуна таҳаммулпазирии хатогиҳои пушти сарро бо истифода аз такрорҳо, ноқилҳо ва хориҷкунии ҳавз таъмин кунем.
Барои оғоз кардан

Эгресс ва Истио
Дақиқа 10
Мо хатсайрҳои Egressро барои эҷод кардани қоидаҳо барои ҳамкории хидматҳои дохилӣ бо API ва хидматҳои беруна истифода мебарем.
Барои оғоз кардан

Истио ва Киали
Дақиқа 15
Истифодаи Kiali-ро омӯзед, то шарҳи шабакаи хидматрасониро гиред ва дархост ва ҷараёни маълумотро омӯзед.
Барои оғоз кардан

TLS мутақобилан дар Истио
Дақиқа 15
Мо Istio Gateway ва VirtualService эҷод мекунем, пас TLS (mTLS) ва танзимоти онро ба таври муфассал меомӯзем.
Барои оғоз кардан

Блоки 3.1 - Deep Dive: Istio Service Mesh барои Microservices

Силсилаи паёмҳо дар Istio Service Mesh
Китоб дар бораи чист:

  • Шабакаи хидматрасонӣ чист?
  • Системаи Istio ва нақши он дар меъмории микросервис.
  • Истифодаи Istio барои ҳалли мушкилоти зерин:
    • Таҳаммулпазирии хатогиҳо;
    • масир;
    • Санҷиши бесарусомонӣ;
    • Амният;
    • Ҷамъоварии телеметрия бо истифода аз пайгирӣ, метрика ва Grafana.

Китобро зеркашӣ кунед

Силсилаи мақолаҳо дар бораи торҳои хидматӣ ва Истио

Худатон кӯшиш кунед

Ин силсилаи паёмҳо барои таъмин кардани ғарқ кардани амиқ ба ҷаҳони Истио пешбинӣ нашудаанд. Мо танҳо мехоҳем шуморо бо консепсия муаррифӣ кунем ва шояд шуморо илҳом бахшем, ки Истиоро барои худ санҷед. Иҷрои он комилан ройгон аст ва Red Hat тамоми асбобҳоеро фароҳам меорад, ки шумо барои оғози кор бо OpenShift, Kubernetes, Linux контейнерҳо ва Istio лозим аст, аз ҷумла: Таҳиягари Red Hat Платформаи контейнерии OpenShift, дастури мо ба Истио ва дигар захираҳои мо микросайт дар Service Mesh. Таъхир накунед, имрӯз оғоз кунед!

Қоидаҳои масир истинод: роҳнамоӣ кардани дархостҳои хидматрасонӣ ба ҷое, ки онҳо бояд бираванд

кушодан и Кубернитель дар бобати мурочиат кардан кори аъло ба чо оваранд хизматрасониҳои хурд ба пунктхои зарурй рох дода мешавад. Ин яке аз сабабҳои мавҷудияти Kubernetes аст - масир ва мувозинати сарборӣ. Аммо чӣ мешавад, агар ба шумо масири нозуктар ва мураккабтар лозим бошад? Масалан, барои ҳамзамон истифода бурдани ду версияи хидматрасонии хурд. Чӣ тавр Қоидаҳои Роҳи Истио дар ин ҷо кӯмак карда метавонанд?

Қоидаҳои масир қоидаҳое мебошанд, ки воқеан интихоби масирро муайян мекунанд. Сарфи назар аз сатҳи мураккабии система, принсипи кори умумии ин қоидаҳо оддӣ боқӣ мемонад: дархостҳо дар асоси параметрҳои муайян ва арзишҳои сарлавҳаи HTTP равона карда мешаванд.
Биёед мисолҳоро дида бароем:

Kubernetes пешфарз: ночиз "50/50"

Дар мисоли мо, мо нишон медиҳем, ки чӣ гуна дар як вақт ду версияи микросервисро дар OpenShift истифода бурдан мумкин аст, биёед онҳоро v1 ва v2 меномем. Ҳар як версия дар pod Kubernetes худ кор мекунад ва ба таври нобаёнӣ он масири мувозинати давриро иҷро мекунад. Ҳар як поддон ҳиссаи дархостҳои худро дар асоси шумораи мисолҳои хидматрасонии хурд, ба ибораи дигар, репликаҳо мегирад. Истио ба шумо имкон медиҳад, ки ин тавозунро дастӣ тағир диҳед.

Фарз мекунем, ки мо ду версияи хидмати тавсиявии худро дар OpenShift ҷойгир кардем, тавсия-v1 ва тавсия-v2.
Дар расми. Тасвири 1 нишон медиҳад, ки вақте ки ҳар як хидмат дар як инстансия муаррифӣ мешавад, дархостҳо дар байни онҳо баробар иваз мешаванд: 1-2-1-2-... Ба таври нобаёнӣ масири Kubernetes кор мекунад:

Силсилаи паёмҳо дар Istio Service Mesh

Тақсимоти вазншуда байни версияҳо

Дар расми. Тасвири 2 нишон медиҳад, ки агар шумо шумораи репликаҳои хидматрасонии v2-ро аз як то ду зиёд кунед (ин бо миқёси oc —replicas=2 фармони ҷойгиркунӣ/тавсия-v2 анҷом дода мешавад) чӣ мешавад. Тавре ки шумо мебинед, дархостҳо байни v1 ва v2 ҳоло ба таносуби як ба се тақсим мешаванд: 1-2-2-1-2-2-…:

Силсилаи паёмҳо дар Istio Service Mesh

Бо истифода аз Istio версияро нодида гиред

Истио тағир додани тақсимоти дархостҳоро ба тарзе, ки ба мо лозим аст, осон мекунад. Масалан, бо истифода аз файли зерини Istio yaml тамоми трафикро танҳо ба тавсия-v1 фиристед:

Силсилаи паёмҳо дар Istio Service Mesh

Дар ин ҷо шумо бояд ба ин диққат диҳед: қубурҳо мувофиқи тамғакоғазҳо интихоб карда мешаванд. Мисоли мо тамғаи v1-ро истифода мебарад. Параметри "вазн: 100" маънои онро дорад, ки 100% трафик ба ҳама подкастҳои хидматрасоние, ки нишони v1 доранд, равона карда мешавад.

Тақсимоти дастурӣ байни версияҳо (Canary Deployment)

Минбаъд, бо истифода аз параметри вазн, шумо метавонед трафикро ба ҳарду поддон равона карда, ба шумораи мисолҳои хидматрасонии хурд, ки дар ҳар яки онҳо кор мекунанд, сарфи назар кунед. Масалан, дар ин ҷо мо 90% трафикро ба v1 ва 10% ба v2 равона мекунем:

Силсилаи паёмҳо дар Istio Service Mesh

Масири алоҳида барои корбарони мобилӣ

Хулоса, мо нишон медиҳем, ки чӣ гуна маҷбур кардани трафики корбарони мобилӣ ба хидмати v2 ва ҳама ба v1. Барои ин, мо ифодаҳои муқаррариро барои таҳлили арзиши корбар-агент дар сарлавҳаи дархост истифода мебарем:

Силсилаи паёмҳо дар Istio Service Mesh

Акнун навбати шумост

Намуна бо ифодаҳои муқаррарии сарлавҳаҳо бояд шуморо водор кунад, ки истифодаи шахсии қоидаҳои масир Istio пайдо кунед. Ғайр аз он, имкониятҳо дар ин ҷо хеле васеъанд, зеро арзишҳои сарлавҳаро дар коди сарчашмаи барнома ташкил кардан мумкин аст.

Ва дар хотир доред, ки Ops, на Dev

Ҳама чизҳое, ки мо дар мисолҳои боло нишон додем, бидуни каме тағирот дар коди ибтидоӣ анҷом дода мешавад, ба истиснои ҳолатҳое, ки барои тавлиди сарлавҳаҳои дархости махсус зарур аст. Истио ҳам барои таҳиягароне муфид хоҳад буд, ки масалан, метавонанд онро дар марҳилаи озмоиш истифода баранд ва барои мутахассисони истифодаи системаҳои IT, ки ба онҳо дар истеҳсолот кӯмаки калон мерасонад.

Пас биёед лейтмотиви ин силсилаи паёмҳоро такрор мекунем: ба шумо лозим нест, ки чизеро дар коди худ тағир диҳед. Барои сохтани тасвирҳои нав ё кушодани контейнерҳои нав лозим нест. Ҳамаи ин берун аз код амалӣ карда мешавад.

Тасаввуроти худро истифода баред

Танҳо имкониятҳои таҳлили сарлавҳаро бо истифода аз ибораҳои муқаррарӣ тасаввур кунед. Мехоҳед бузургтарин муштарии худро ба версияи махсуси худ равона кунед хизматрасониҳои хурд? Ба осонӣ! Барои браузери Chrome версияи алоҳида лозим аст? Масъалае нест! Шумо метавонед трафикро мувофиқи қариб ҳама хусусиятҳо равона кунед.

Худатон кӯшиш кунед

Хондан дар бораи Истио, Кубернетес ва OpenShift як чиз аст, аммо чаро худатон ба ҳама чиз даст нарасонед? Дастаи Барномаи таҳиягари Red Hat дастури муфассалро (ба забони англисӣ) омода кардааст, ки ба шумо барои ҳарчи зудтар азхуд кардани ин технологияҳо кӯмак мекунад. Дастур инчунин 100% манбаи кушода аст, бинобар ин он дар домени ҷамъиятӣ ҷойгир карда шудааст. Файл дар macOS, Linux ва Windows кор мекунад ва рамзи сарчашма дар версияҳои Java ва node.js дастрас аст (версияҳо бо забонҳои дигар ба наздикӣ меоянд). Танҳо анбори мувофиқи gitро дар браузери худ кушоед Намоиши таҳиягари Red Hat.

Дар мақолаи навбатӣ: мо мушкилотро ба таври зебо кор мекунем

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

Манбаъ: will.com

Илова Эзоҳ