Микросервисҳо: онҳо чистанд, чаро онҳо ҳастанд ва кай татбиқ кардани онҳо

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

Қонуни Конвей ва муносибати байни тиҷорат, созмон ва системаи иттилоотӣ

Бори дигар иқтибос меорам:

"Ҳар ташкилоте, ки системаро тарҳрезӣ мекунад (ба маънои васеъ) тарҳеро мегирад, ки сохтори он сохтори дастаҳои ин созмонро такрор мекунад."
- Мелвин Конвей, 1967

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

Тамоюли тиҷорат ба системаҳои иттилоотӣ

Микросервисҳо: онҳо чистанд, чаро онҳо ҳастанд ва кай татбиқ кардани онҳо

Биёед бо як мисол шарҳ диҳам. Биёед бигӯем, ки имконияти тиҷорат барои ташкили тиҷорати пицца вуҷуд дорад. Дар версияи V1 (биёед, ки онро пешакии иттилоотӣ меномем), ширкат пиццерия, мошини хазинавӣ ва хидматрасонии интиқол буд. Ин версия дар шароити пасти тағйирёбии муҳити зист дарозумр буд. Пас аз он версияи 2 ба ҷои он омад - пешрафтатар ва қодир аст, ки системаи иттилоотиро дар асоси тиҷорат бо меъмории монолитӣ истифода барад. Ва дар ин ҷо, ба андешаи ман, танҳо як беадолатии даҳшатнок нисбат ба монолитҳо вуҷуд дорад - гӯё меъмории монолитӣ ба модели тиҷорати домен мувофиқат намекунад. Бале, агар ин тавр мебуд, система умуман кор карда наметавонист - бар хилофи ҳамон қонуни Конвей ва ақли солим. Не, меъмории монолитӣ ба модели бизнес дар ин марҳилаи рушди тиҷорат комилан мувофиқ аст - ман, албатта, марҳилаеро дар назар дорам, ки система аллакай сохта ва ба кор андохта шудааст. Ин як далели комилан аҷиб аст, ки новобаста аз равиши меъморӣ, ҳам версияи меъмории ба хидмат нигаронидашудаи 3 ва ҳам версияи меъмории микросервисҳои N якхела хуб кор хоҳанд кард. Чӣ сайд?

Ҳама чиз ҷараён мегирад, ҳама чиз тағир меёбад ё микросервисҳо воситаи мубориза бо мураккабӣ мебошанд?

Пеш аз он ки идома диҳем, биёед ба баъзе тасаввуроти нодуруст дар бораи меъмории микросервис назар андозем.

Тарафдорони истифодаи равиши микросервис аксар вақт баҳс мекунанд, ки шикастани монолит ба хидматҳои микросервис равиши рушдро тавассути коҳиш додани пойгоҳи коди хидматҳои инфиродӣ содда мекунад. Ба назари ман, ин гуфтаҳо тамоман бемаънӣ аст. Ҷиддӣ, ҳамкории возеҳ дар дохили як рамзи якхела ва якхела мураккаб ба назар мерасад? Агар ин дар ҳақиқат чунин мебуд, ҳама лоиҳаҳо дар аввал ҳамчун микросервис сохта мешуданд, дар ҳоле ки таҷриба нишон медиҳад, ки муҳоҷират аз як монолит ба микросервисҳо бештар маъмул аст. Мушкилот аз байн намеравад; он танҳо аз модулҳои инфиродӣ ба интерфейсҳо (хоҳ он автобусҳои додаҳо, RPC, APIҳо ва дигар протоколҳо) ва системаҳои оркестрӣ мегузарад. Ва ин мушкил аст!

Бартарии истифодаи стек гетерогенӣ низ шубҳаовар аст. Ман баҳс намекунам, ки ин ҳам имконпазир аст, аммо дар асл ин хеле кам рух медиҳад (Ба пеш нигоҳ кардан - ин бояд рӯй диҳад - балки дар натиҷаи бартарият).

Давраи ҳаёти маҳсулот ва давраи хидмат

Ба диаграммаи боло бори дигар назар кунед. Тасодуфй нест, ки ман камшавии давраи зиндагии версияи алохидаи бизнесро кайд кардам - ​​дар шароити муосир ин тезонидани гузариши бизнес байни версияхо барои муваффакияти он халкунанда мебошад. Муваффақияти маҳсулот бо суръати санҷиши гипотезаҳои тиҷоратӣ дар он муайян карда мешавад. Ва дар ин ҷо, ба андешаи ман, бартарии асосии меъмории microservice аст. Аммо биёед бо тартиб равем.

Биёед ба марҳилаи навбатии эволютсияи системаҳои иттилоотӣ - ба архитектураи хидматрасонии SOA гузарем. Ҳамин тавр, дар як нуқтаи муайян мо дар маҳсулоти худ таъкид кардем хизмати дарозмуддат - дарозумрӣ ба он маъно, ки ҳангоми гузаштан байни версияҳои маҳсулот, имкон дорад, ки давраи ҳаёти хидмат аз давраи зиндагии версияи навбатии маҳсулот дарозтар бошад. Уро умуман тагьир надодан аз руи мантик мебуд — мо Муҳим он аст, ки суръати гузариш ба версияи оянда. Аммо афсӯс, ки мо маҷбурем, ки ба хидматҳо тағироти доимӣ ворид кунем - ва дар ин ҷо ҳама чиз барои мо кор мекунад, таҷрибаҳои DevOps, контейнеризатсия ва ғайра - ҳама чизе, ки ба хотир меояд. Аммо инҳо то ҳол хидматрасониҳои хурд нестанд!

Микросервисҳо ҳамчун воситаи мубориза бо мураккабӣ... идоракунии конфигуратсия

Ва дар ин ҷо мо дар ниҳоят метавонем ба нақши муайянкунандаи хидматрасонии микросервисҳо гузарем - ин равишест, ки идоракунии конфигуратсияи маҳсулотро содда мекунад. Ба таври муфассал, функсияи ҳар як хидматрасонии микросервис маҳз вазифаи тиҷорати дохили маҳсулотро мувофиқи модели домен тавсиф мекунад - ва ин чизҳое ҳастанд, ки на дар версияи кӯтоҳмуддат, балки дар як имконияти тиҷорати дарозмуддат зиндагӣ мекунанд. Ва гузариш ба версияи навбатии маҳсулот аслан нодида гирифта мешавад - шумо як хидматрасонии хурдро тағир медиҳед/илова мекунед ва шояд танҳо нақшаи ҳамкории онҳо ва ногаҳон шумо худро дар оянда мебинед ва рақибони гирякунандаеро, ки дар байни версияҳои ҷаҳидан идома медиҳанд, мегузоред. монолитхои онхо. Акнун тасаввур кунед, ки миқдори хеле зиёди хидматрасонии микросервисҳо бо интерфейсҳои пешакӣ муайяншуда ва қобилиятҳои тиҷорат мавҷуданд. Ва шумо биёед ва сохтори маҳсулоти худро аз микросервисҳои омода сохтаед - масалан, бо кашидани диаграмма. Табрикот - шумо як платформа доред - ва акнун шумо метавонед бизнесро барои худ ҷалб кунед. Орзухо Хобхо.

натиҷаҳои

  • Меъмории система бояд аз рӯи давраи ҳаёти ҷузъҳои он муайян карда шавад. Агар ҷузъ дар як версияи маҳсулот зиндагӣ кунад, барои баланд бардоштани мураккабии система бо истифода аз равиши микросервис ҳеҷ маъно надорад.
  • Меъмории Microservice бояд ба модели домен асос ёбад - зеро имконияти тиҷорат домени дарозумртарин аст
  • Амалияҳои таҳвил (таҷрибаҳои DevOps) ва оркестр яке аз муҳимтаринҳо барои меъмории микросервис мебошанд - аз он сабаб, ки афзоиши суръати тағирёбии ҷузъҳо талаботро ба суръат ва сифати таҳвил зиёд мекунад.

Манбаъ: will.com

Илова Эзоҳ