Дар зер диаграммаи ҳавопаймои идоракунӣ ва ҳавопаймои маълумот дар Linkerd оварда шудааст. Тавре ки шумо мебинед, ҳавопаймои идоракунӣ якчанд ҷузъҳои гуногунро дар бар мегирад, аз ҷумла як мисоли Prometheus, ки ченакҳоро аз серверҳои прокси ҷамъоварӣ мекунад ва инчунин ҷузъҳои дигар, ба монанди destination (кашфи хидмат), identity (мақомоти сертификатсия, CA) ва public-api (нуқтаҳои ниҳоӣ барои веб ва CLI). Баръакси ин, ҳавопаймои маълумот як пайвандак-прокси оддӣ дар паҳлӯи мисоли барнома аст. Ин танҳо як диаграммаи мантиқӣ аст; Дар ҷойгиркунии ҷаҳонии воқеӣ, шумо метавонед се нусхаи ҳар як ҷузъи ҳавопаймои идоракунӣ ва садҳо ё ҳазорҳо прокси дар ҳавопаймои додаҳо дошта бошед.
(Роҳкунҷаҳои кабуд дар ин диаграмма сарҳадҳои қуттиҳои Кубернетесро нишон медиҳанд. Шумо мебинед, ки контейнерҳои дорои linkerd-proxy дар як қуттӣ бо контейнерҳои барнома ҳастанд. Ин схема бо номи контейнери паҳлӯ.)
Меъмории шабакаи хидматрасонӣ дорои якчанд оқибатҳои муҳим аст. Аввалан, азбаски вазифаи прокси боздоштани зангҳо байни хидматҳо мебошад, шабакаи хидматрасонӣ танҳо он вақт маъно дорад, ки барномаи шумо барои маҷмӯи муайяни хидматҳо сохта шуда бошад. Меш метавонад бо монолитҳо истифода баред, аммо ин ба хотири як прокси ягона бешубҳа зиёдатист ва фаъолияти он ба гумон аст, ки талабот дошта бошад.
Натиҷаи дигари муҳим ин аст, ки шабакаи хидматрасонӣ талаб мекунад бузург шумораи прокси. Дарвоқеъ, Linkerd ба ҳар як мисоли ҳар як хидмат як linkerd-прокси замима мекунад (дигар татбиқҳо ба ҳар як гиреҳ/хост/мошини виртуалӣ прокси илова мекунанд. Ин ба ҳар ҳол бисёр аст). Чунин истифодаи фаъоли прокси худ як қатор мушкилоти иловагиро ба бор меорад:
Проксиҳо дар ҳавопаймои маълумот бояд бошанд зуд, зеро барои ҳар як занг якчанд занг ба прокси вуҷуд дорад: яке аз ҷониби муштарӣ, дигаре дар тарафи сервер.
Прокси низ бояд бошад хурд и сабук. Ҳар як захираҳои хотира ва CPU-ро истеъмол мекунад ва ин истеъмол бо барнома ба таври хаттӣ афзоиш хоҳад ёфт.
Барои ҷойгиркунӣ ва навсозии шумораи зиёди проксиҳо ба шумо механизм лозим мешавад. Ба таври дастӣ иҷро кардани он имкон нест.
Умуман, шабакаи хидматрасонӣ чунин менамояд (ҳадди ақал аз назари парранда): шумо як қатор прокси-фазоҳои корбаронро ҷойгир мекунед, ки бо трафики дохилӣ ва байнихизматӣ "коре мекунанд" ва барои назорат ва идоракунии онҳо як ҳавопаймои идоракуниро истифода мебаред.
Акнун вақти он расидааст, ки саволи "Чаро?"
Шабакаи хидматрасонӣ барои чӣ аст?
Онҳое, ки бори аввал бо идеяи шабакаи хидматрасонӣ дучор омада буданд, метавонистанд барои эҳсоси каме тарсу ҳарос бахшида шаванд. Тарҳрезии торҳои хидматрасонӣ маънои онро дорад, ки он на танҳо таъхирро дар барнома зиёд мекунад, балки инчунин истеъмол кардан захирахо ва илова мекунад як қатор механизмҳои нав дар инфрасохтор. Аввал шумо як шабакаи хидматрасонӣ насб мекунед ва баъд ногаҳон ба шумо лозим меояд, ки ба садҳо (агар ҳазорҳо) прокси хидмат расонанд. Саволе ба миён меояд, ки кӣ ихтиёран ин корро мекунад?
Гарчанде ки имкониятҳои шабакаи хидматрасонӣ ҳаяҷоноваранд, арзиши аслии он дар хусусиятҳои он нест. Дар охир мо Метавонад онҳоро бевосита дар барнома татбиқ кунед (мо баъдтар мебинем, ки ин пайдоиши торҳои хидматӣ буд). Барои кӯшиш ва ҷамъбаст кардани он дар як ҷумла, арзиши шабакаи хидматрасонӣ ин аст: он хусусиятҳои муҳимро барои иҷро кардани нармафзори муосири сервер ба таври пайваста дар тамоми стек ва новобаста аз коди барнома таъмин мекунад.
Биёед ин пешниҳодро таҳлил кунем.
«Хусусиятҳои муҳим барои иҷро кардани нармафзори муосири сервер" Агар шумо барномаи сервери транзаксионӣ эҷод кунед, ки ба Интернети ҷамъиятӣ пайваст аст, дархостҳоро аз ҷаҳони беруна қабул кунед ва ба онҳо дар муддати кӯтоҳ посух диҳед - масалан, веб-барнома, сервери API ва аксарияти кулли дигар замимаҳои муосир - ва агар шумо онро ҳамчун маҷмӯи хидматҳое татбиқ кунед, ки бо ҳамдигар ҳамоҳангӣ мекунанд ва агар шумо ин нармафзорро мунтазам такмил диҳед, хусусиятҳои нав илова кунед ва агар шумо маҷбур шавед, ки ин системаро дар ҷараёни тағирот дар ҳолати корӣ нигоҳ доред - дар ин ҳолат, табрик, шумо нармафзори сервери муосир эҷод мекунед. Ва ҳамаи ин хусусиятҳои бузурги дар боло номбаршуда воқеан барои шумо муҳиманд. Ариза бояд боэътимод, бехатар бошад ва шумо бояд тавонед, ки чӣ кор карда истодааст, мушоҳида кунед. Инҳо маҳз саволҳое ҳастанд, ки шабакаи хидматрасонӣ дар ҳалли онҳо кӯмак мекунанд.
(Хуб, параграфи қаблӣ то ҳол эътиқоди маро дар бар мегирад, ки ин равиш роҳи муосири эҷоди нармафзори сервер аст. Дигарон бартарӣ медиҳанд, ки монолитҳо, "микросервисҳои реактивӣ" ва чизҳои дигаре, ки ба таърифи дар боло овардашуда дохил намешаванд. Ин одамон эҳтимол дорад Фикри ман аз фикрам фарк мекунад.. Дар навбати худ, ман фикр мекунам, ки онҳо "хато" ҳастанд - гарчанде ки дар ҳар сурат торҳои хидматрасонӣ барои онҳо чандон муфид нест).
«Либоси ягона барои тамоми стек" Функсияҳое, ки тавассути шабакаи хидматрасонӣ таъмин карда мешаванд, на танҳо вазифаи муҳим аст. Онҳо ба ҳама хидматҳои барнома, новобаста аз он, ки онҳо бо кадом забон навишта шудаанд, кадом чаҳорчӯбаро истифода мебаранд, кӣ навиштаанд, чӣ гуна ҷойгир карда шудаанд ва дигар нозукиҳои таҳия ва истифодаи онҳо татбиқ мешаванд.
«Новобаста аз рамзи барнома" Ниҳоят, шабакаи хидматрасонӣ на танҳо функсияҳои пайвастаро дар тамоми стек таъмин мекунад, балки онро тавре мекунад, ки таҳрир кардани барномаро талаб намекунад. Асоси функсионалии шабакаи хидматрасонӣ, аз ҷумла вазифаҳои конфигуратсия, навсозӣ, истифода, нигоҳдорӣ ва ғайра, комилан дар сатҳи платформа ҷойгир аст ва аз барнома новобаста аст. Барнома метавонад бидуни таъсир ба шабакаи хидматрасонӣ тағир ёбад. Дар навбати худ, шабакаи хидматрасонӣ метавонад бидуни иштироки барнома тағир ёбад.
Хулоса, шабакаи хидматрасонӣ на танҳо вазифаи ҳаётан муҳимро таъмин мекунад, балки онро ба таври глобалӣ, якхела ва новобаста аз барнома иҷро мекунад. Ва ҳамин тавр, гарчанде ки функсияи шабакаи хидматрасониро метавон дар коди хидматрасонӣ амалӣ кард (масалан, ҳамчун китобхонае, ки ба ҳар як хидмат дохил карда шудааст), ин равиш яксонӣ ва мустақилиятро, ки дар мавриди шабакаи хидматрасонӣ хеле арзишманд аст, таъмин намекунад.
Ва танҳо ба шумо лозим аст, ки як қатор проксиҳоро илова кунед! Ман ваъда медиҳам, ки мо ба зудӣ хароҷоти амалиётиро, ки бо илова кардани ин проксиҳо алоқаманданд, баррасӣ хоҳем кард. Аммо биёед аввал таваққуф кунем ва ба ин ғояи истиқлолият аз дидгоҳҳои гуногун назар кунем. мардум.
Mesh хидматрасонӣ ба кӣ кӯмак мекунад?
Ҳарчанд нороҳат бошад, барои он ки технология як ҷузъи муҳими экосистема гардад, он бояд аз ҷониби одамон қабул карда шавад. Пас, кӣ ба шабакаи хидматрасонӣ таваҷҷӯҳ дорад? Аз истифодаи он ба кӣ манфиат меорад?
Агар шумо нармафзори муосири серверро таҳия карда истода бошед, шумо метавонед тақрибан дар бораи дастаи худ ҳамчун як гурӯҳ фикр кунед соҳибони хизматрасонӣки якчоя мантики тичоратиро тахия ва амалй мегардонанд ва соҳибони платформа, таҳияи платформаи дохилӣ, ки дар он ин хидматҳо фаъолият мекунанд. Дар ташкилотҳои хурд, инҳо метавонанд ҳамон одамон бошанд, аммо бо афзоиши ширкат, ин нақшҳо бештар зоҳир мешаванд ва ҳатто ба зернақшҳо тақсим мешаванд... (Дар ин ҷо дар бораи табиати тағирёбандаи девопҳо гуфтан мумкин аст, Таъсири ташкилии хидматрасонии микро ва ғайра) n. Аммо ҳоло биёед ин тавсифҳоро ҳамчун додашуда қабул кунем).
Аз ин нуқтаи назар, баҳрабардорони возеҳи шабакаи хидматрасонӣ соҳибони платформа мебошанд. Дар ниҳоят, ҳадафи дастаи платформа эҷод кардани як платформаи дохилӣ аст, ки дар он соҳибони хидматҳо метавонанд мантиқи тиҷоратиро амалӣ кунанд ва ин корро тавре анҷом диҳанд, ки онҳо то ҳадди имкон аз ҷузъиёти норавшани фаъолияти он мустақил бошанд. Шабакаи хидматрасонӣ на танҳо қобилиятҳои муҳимро барои ноил шудан ба ин ҳадаф пешниҳод мекунад, балки онро тавре мекунад, ки дар навбати худ вобастагии соҳибони хадамотро таҳмил накунад.
Netflix дорои Hysterix, Google Stubby, Twitter китобхонаи Finagle доштанд. Масалан, Finagle барои ҳар як хидмати нав дар Twitter ҳатмӣ буд. Он ҳам муштарӣ ва ҳам тарафи сервери пайвастҳоро идора мекард, барои дархостҳои такрорӣ, масири дархости дастгирӣ, мувозинати сарборӣ ва андозагирӣ иҷозат дод. Он новобаста аз он ки хидмат чӣ кор мекард, як қабати устувори эътимоднокӣ ва мушоҳидашавандаро дар тамоми стек Twitter таъмин кард. Албатта, он танҳо барои забонҳои JVM кор мекард ва ба модели барномасозӣ асос ёфтааст, ки бояд барои тамоми барнома истифода мешуд. Бо вуҷуди ин, функсияи он тақрибан ба як шабакаи хидматрасонӣ монанд буд. (Дар асл, версияи аввалини Linkerd танҳо Finagle дар шакли прокси печонида шуда буд.)
Ҳамин тариқ, даҳ сол пеш на танҳо микросервисҳо, балки китобхонаҳои махсуси протосервис-меш низ вуҷуд доштанд, ки ҳамон мушкилотеро, ки имрӯз шабакаи хидматрасонӣ ҳал мекунад, ҳал мекарданд. Аммо, худи он вақт шабакаи хидматрасонӣ вуҷуд надошт. Пеш аз пайдо шудани вай боз як смена лозим буд.
Ва ин аст, ки ҷавоби амиқтар дар тағири дигаре, ки дар тӯли 10 соли охир ба вуқӯъ пайвастааст, пинҳон аст: арзиши густариши хидматрасониҳои хурд ба таври назаррас коҳиш ёфт. Ширкатҳои дар боло зикршуда, ки даҳ сол пеш аз хидматҳои хурд истифода мекарданд - Twitter, Netflix, Facebook, Google - ширкатҳои миқёси азим ва захираҳои азим буданд. Онҳо на танҳо эҳтиёҷот доштанд, балки қобилияти сохтан, ҷойгир кардан ва истифода бурдани барномаҳои калон дар асоси микросервисҳоро низ доштанд. Энергия ва саъю кӯшише, ки муҳандисони Twitter барои гузаштан аз усули монолитӣ ба равиши микросервис сарф мекунанд, аҷиб аст. (Аз рӯи инсоф, чунин аст, ки он муваффақ шуд.) Ин гуна манёврҳои инфрасохторӣ он вақт барои ширкатҳои хурд ғайриимкон буданд.
Ба зудӣ ба пеш ҳаракат кунед. Имрӯзҳо стартапҳо ҳастанд, ки дар онҳо таносуби хидматрасониҳои микросервисҳо ба таҳиягарон 5: 1 (ё ҳатто 10:1), ва зиёда аз он, онҳо бо муваффақият мубориза мебаранд! Агар стартапи 5-нафарӣ 50 микросервисро ба осонӣ идора карда тавонад, пас чизе арзиши татбиқи онҳоро ба таври возеҳ коҳиш додааст.
1500 хидматрасонии хурд дар Монзо; ҳар як сатр як қоидаи муқарраршудаи шабака мебошад, ки трафикро иҷозат медиҳад
Ба таври назаррас коҳиш ёфтани арзиши микросервисҳо натиҷаи як раванд аст: афзоиши маъруфияти контейнерҳо и оркестрхо. Махз хамин чавоби амик ба саволи он аст, ки ба пайдоиши торхои хизматрасонй чй ёрй расонд. Ҳамин технология ҳам торҳои хидматрасонӣ ва ҳам микросервисҳоро ҷолиб кард: Kubernetes ва Docker.
Чаро? Хуб, Docker як масъалаи калонро ҳал мекунад - мушкилоти бастабандӣ. Бо бастабандии барнома ва вобастагии вақти кории он (ғайришабака) ба контейнер, Docker барномаро ба як воҳиди ивазшаванда табдил медиҳад, ки метавонад дар ҳама ҷо ҷойгир карда шавад. Дар айни замон, он корро хеле осон мекунад бисёрзабонӣ Стек: Азбаски контейнер як воҳиди атомии иҷро аст, барои ҷойгиркунӣ ва амалиётӣ, муҳим нест, ки дар дохили он чӣ мавҷуд аст, хоҳ JVM, Node, Go, Python ё Ruby. Шумо танҳо онро оғоз мекунед ва ин аст.
Кубернетес ҳама чизро ба сатҳи оянда мебарад. Ҳоло, ки тоннаҳо "чизҳои иҷрошаванда" ва тоннаҳо мошинҳо барои идора кардани онҳо мавҷуданд, ба асбобе лозим аст, ки онҳоро бо ҳамдигар мувофиқат кунад. Ба маънои васеъ, шумо ба Кубернетес бисёр контейнерҳо ва мошинҳои зиёде медиҳед ва он онҳоро дар муқобили ҳамдигар харита мекунад (албатта, ин як раванди динамикӣ ва доимо тағйирёбанда аст: контейнерҳои нав дар атрофи система ҳаракат мекунанд, мошинҳо оғоз ва қатъ мешаванд. , ва ғайра. Аммо, Кубернетес ҳамаи инро ба назар мегирад).
Пас аз конфигуратсияи Kubernetes, хароҷоти вақт барои ҷобаҷогузорӣ ва корбарии як хидмат аз арзиши ҷойгиркунӣ ва истифодаи даҳ хидмат каме фарқ мекунад (воқеан, он барои 100 хидмат тақрибан якхела аст). Ба ин контейнерҳо ҳамчун механизми бастабандӣ илова кунед, ки татбиқи бисёрзабонаҳоро ҳавасманд мекунад ва шумо як қатор замимаҳои нав доред, ки дар шакли микросервисҳои бо забонҳои гуногун навишташуда амалӣ карда мешаванд - маҳз ҳамон гуна муҳитест, ки шабакаи хидматрасонӣ барои он хеле мувофиқ аст.
Ва ниҳоят, ташаккури махсус ба созандаи Linkerd, Оливер Гулд(primus inter pares), ки бо хамрохии ман солхо пеш аз ин ба тамоми ин гавго бо торхои хизматй гавта зада буд.