Таърихи меъмории Додо IS: роҳи пушти офис

Хабр дунёро дигар мекунад. Мо зиёда аз як сол аст, ки блогнависӣ мекунем. Тақрибан шаш моҳ пеш мо аз сокинони Хабаровск фикрҳои комилан мантиқӣ гирифтем: «Додо, шумо дар ҳама ҷо мегӯед, ки шумо системаи шахсии худро доред. Ин чӣ гуна система аст? Ва чаро занҷири пиццерия ба он ниёз дорад? ”

Мо нишастему фикр кардем ва фаҳмидем, ки шумо ҳақ ҳастед. Мо кушиш мекунем, ки бо ангуштони худ ҳама чизро шарҳ диҳем, аммо он пора-пора мешавад ва дар ҳеҷ ҷо тавсифи пурраи система нест. Ҳамин тариқ, сафари тӯлонии ҷамъоварии маълумот, ҷустуҷӯи муаллифон ва навиштани як силсила мақолаҳо дар бораи Додо IS оғоз шуд. Рафтем!

Ташаккур: Ташаккур ба шумо барои мубодилаи фикру мулоҳизаҳои худ бо мо. Ба шарофати ӯ, мо ниҳоят системаро тавсиф кардем, технорадар тартиб додем ва ба наздикӣ тавсифи васеи равандҳои худро нашр хоҳем кард. Бе ту 5 сол боз хамин хел менишастем.

Таърихи меъмории Додо IS: роҳи пушти офис

Силсилаи мақолаҳои "Додо IS чист?" дар бораи:

  1. Монолити аввал дар Додо IS (2011-2015). (Дар ҷараён...)
  2. Роҳи Backoffice: пойгоҳҳои алоҳида ва автобус. (Шумо инҷоед)
  3. Роҳи қисми муштарӣ: фасад аз болои пойгоҳ (2016-2017). (Дар ҷараён...)
  4. Таърихи микросервисҳои воқеӣ. (2018-2019). (Дар ҷараён...)
  5. Буридани монолит ва муътадил гардондани меъморй ба охир расид. (Дар ҷараён...)

Агар шумо ба омӯзиши чизи дигаре таваҷҷӯҳ дошта бошед, дар шарҳҳо нависед.

Андеша дар бораи тавсифи хронологӣ аз муаллиф
Ман мунтазам барои кормандони нав дар мавзӯи «Архитектураи системавӣ» вохӯрӣ мегузаронам. Мо онро "Intro to Dodo IS Architecture" меномем ва он як қисми раванди боркунӣ барои таҳиягарони нав мебошад. Дар ин ё он шакл дар бораи меъмории мо, дар бораи хусусиятхои он сухан ронда, ман ба тавсиф муносибати муайяни таърихиро инкишоф додам.

Одатан, мо ба система ҳамчун маҷмӯи ҷузъҳо (дар сатҳи техникӣ ё олӣ), модулҳои тиҷоратӣ, ки барои ноил шудан ба ягон ҳадаф бо ҳамдигар ҳамкорӣ мекунанд, назар мекунем. Ва дар ҳоле, ки чунин назар барои тарҳрезӣ асоснок аст, он барои тавсиф ва фаҳмиш комилан мувофиқ нест. Якчанд сабабҳо вуҷуд доранд:

  • Воқеият аз он чизе, ки дар рӯи коғаз аст, фарқ мекунад. На ҳама чиз аз рӯи нақша кор мекунад. Ва мо ба он таваҷҷӯҳ дорем, ки ҳама чиз воқеан чӣ гуна рӯй дод ва кор мекунад.
  • Пешниҳоди муттасили иттилоот. Дар асл, шумо метавонед аз ибтидо то ҳолати кунунӣ аз рӯи хронологӣ гузаред.
  • Аз содда ба мураккаб. На универсалӣ, аммо дар мавриди мо ҳамин тавр аст. Меъморӣ аз равишҳои содда ба усулҳои мураккабтар гузашт. Аксар вақт, бо роҳи мураккабӣ, мушкилоти суръат ва устувории татбиқ, инчунин даҳҳо хосиятҳои дигар аз рӯйхати талаботҳои ғайрифунксионалӣ (дар ин ҷо дар бораи муқоисаи мураккабӣ бо дигар талаботҳо) хуб сухан рафт.

Дар соли 2011, меъмории Dodo IS чунин менамуд:

Таърихи меъмории Додо IS: роҳи пушти офис

То соли 2020, он каме мураккабтар шуд ва чунин шуд:

Таърихи меъмории Додо IS: роҳи пушти офис

Ин эволютсия чӣ гуна ба амал омад? Чаро қисмҳои гуногуни система лозиманд? Кадом карорхои меъморй кабул карда шуданд ва чаро? Биёед дар ин силсила мақолаҳо бифаҳмем.

Мушкилоти аввалини соли 2016: чаро хидматҳо бояд монолитро тарк кунанд?

Аввалин мақолаҳои силсила дар бораи хидматҳое хоҳанд буд, ки аввалин шуда аз монолит ҷудо шуданд. Барои ба контекст даровардани шумо, ман ба шумо мегӯям, ки мо дар ибтидои соли 2016 дар система чӣ мушкилот доштем, ки мо бояд бо тақсимоти хидматҳо сарукор доштем.

Махзани ягонаи MySql, ки дар он ҳамаи замимаҳо дар он вақт дар Dodo IS сабтҳои худро навиштаанд. Оқибатҳо инҳо буданд:

  • Сарбории вазнин (бо 85% дархостҳо хонда мешаванд).
  • База меафзуд. Аз ин сабаб, хароҷот ва дастгирӣ мушкилот пайдо карданд.
  • Як нуқтаи ноком. Агар як замимае, ки ба пойгоҳи додаҳо навишт, ногаҳон ин корро фаъолтар оғоз кунад, пас замимаҳои дигар ин таъсирро эҳсос карданд.
  • Бесамарӣ дар нигоҳдорӣ ва дархостҳо. Аксар вақт маълумот дар баъзе сохтор нигоҳ дошта мешуд, ки барои баъзе сенарияҳо қулай буд, аммо барои дигарон не. Индексҳо баъзе амалиётҳоро суръат мебахшанд, аммо дигаронро суст карда метавонанд.
  • Баъзе проблемахо бо рохи саросемавор сохташудаи кэшхо ва хондан-репликахо ба базахои маълумотхо хал карда шуданд (дар ин бора дар як маколаи алохида сухан меравад), вале онхо танхо ба мо имконият доданд, ки вактро аз даст дихем ва масъаларо ба таври куллй хал накарданд.

Мушкилот мавҷудияти худи монолит буд. Оқибатҳо инҳо буданд:

  • Нашрияҳои нодир ва нодир.
  • Мушкилот дар рушди муштараки шумораи зиёди одамон аст.
  • Нотавонӣ дар ҷорӣ кардани технологияҳои нав, чаҳорчӯба ва китобхонаҳои нав.

Мушкилот бо пойгоҳ ва монолит борҳо тавсиф шудаанд, масалан, дар заминаи садамаҳо дар аввали соли 2018 (Мисли Мунк бошед, ё чанд сухан дар бораи қарзи техникӣ, Рӯзе, ки Додо IS қатъ шуд. Скрипти асинхронӣ и Қиссаи паррандаи Додо аз оилаи Финикс. Фурӯпошии бузурги Додо IS), бинобар ин ман аз ҳад зиёд истодан намехоҳам. Фақат бигӯям, ки мо мехостем ҳангоми таҳияи хидматҳо чандирии бештаре диҳем. Пеш аз ҳама, ин ба онҳое дахл дошт, ки дар тамоми система пурбортарин ва решакан буданд - Auth and Tracker.

Роҳи Backoffice: пойгоҳҳои алоҳида ва автобус

Боби Навигатсия

  1. Нақшаи монолит 2016
  2. Мо ба холӣ кардани монолит шурӯъ мекунем: ҷудокунии Auth ва Tracker
  3. Auth чӣ кор мекунад?
  4. Борҳо аз куҷо меоянд?
  5. Борфарорӣ Auth
  6. Tracker чӣ кор мекунад?
  7. Борҳо аз куҷо меоянд?
  8. Борфарорӣ кардани Tracker

Нақшаи монолит 2016

Инҳоянд блокҳои асосии монолитии Dodo IS 2016 ва дар поён тавсифи вазифаҳои асосии онҳост.
Таърихи меъмории Додо IS: роҳи пушти офис
Кассаи тахвил. Ба хисоб гирифтани хаткашонхо, додани заказхо ба хаткашонхо.
Маркази тамос. Қабули фармоиш тавассути оператор.
Site. Вебсайтҳои мо (dodopizza.ru, dodopizza.co.uk, dodopizza.by ва ғайра).
Автор. Хадамоти авторизатсия ва аутентификатсия барои бэкофис.
Tracker. Назоратчии фармоиши ошхона. Хизматрасонӣ барои қайд кардани ҳолати омодагӣ ҳангоми омода кардани фармоиш.
Кассаи ресторан. Қабули фармоиш дар тарабхона, интерфейсҳои кассир.
содирот. Боркунии ҳисоботҳо дар 1С барои ҳисобдорӣ.
Огоҳӣ ва ҳисобнома-фактураҳо. Фармонҳои овозӣ дар ошхона (масалан, "Пиццаи нав омад") + чопи ҳисобнома-фактураҳо барои хаткашон.
Менеҷери смена. Интерфейсҳо барои кори мудири смена: рӯйхати фармоишҳо, диаграммаҳои ҳосилнокӣ, ба смена овардани кормандон.
Менеҷери офис. Интерфейсҳо барои кори франчайзиҳо ва менеҷерҳо: қабули кормандон, ҳисобот дар бораи кори пиццерия.
Шӯрои тарабхона. Намоиши менюҳо дар телевизорҳо дар пиццерияҳо.
Админ. Танзимот барои пиццерияи мушаххас: меню, нархҳо, ҳисобдорӣ, рамзҳои таблиғотӣ, аксияҳо, баннерҳо барои сайт ва ғайра.
Ҳисоби шахсии корманд. Ҷадвали кори кормандон, маълумот дар бораи кормандон.
Шӯрои ҳавасмандгардонии ошхона. Экрани алоҳида, ки дар ошхона овезон аст ва суръати пиццасозонро нишон медиҳад.
-коммуникатсионӣ. Ирсоли SMS ва почтаи электронӣ.
FileStorage. Хидмати шахсии қабул ва додани файлҳои статикӣ.

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

Мо ба холӣ кардани монолит шурӯъ мекунем: ҷудокунии Auth ва Tracker

Хидматҳои асосӣ, ки баъдан аз пойгоҳи додаҳо бештар аз дигарон навишта ва хонданд:

  1. Автор. Хадамоти авторизатсия ва аутентификатсия барои бэкофис.
  2. Назоратчӣ. Назоратчии фармоиши ошхона. Хизматрасонӣ барои қайд кардани ҳолати омодагӣ ҳангоми омода кардани фармоиш.

Auth чӣ кор мекунад?

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

Масалан, мо мехохем, ки дар телевизоре, ки дар толор овезон аст, дисплейеро кушоем, ки дар он холати заказхои ичрошуда нишон дода шудааст. Сипас, мо auth.dodopizza.ru -ро мекушоем, "Ҳамчун дастгоҳ ворид шавед" -ро интихоб кунед, код пайдо мешавад, ки онро дар саҳифаи махсуси компютери мудири баст ворид кардан мумкин аст, ки намуди дастгоҳро (дастгоҳ) нишон медиҳад. Худи телевизор ба интерфейси дилхоҳи пиццерияаш меравад ва дар он ҷо номи муштариёнеро, ки фармоишҳояшон омодаанд, намоиш медиҳад.

Таърихи меъмории Додо IS: роҳи пушти офис

Борҳо аз куҷо меоянд?

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

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

Борфарорӣ Auth

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

БУД. Раванди кор дар аввал чунин буд:

Таърихи меъмории Додо IS: роҳи пушти офис

Ман мехоҳам каме шарҳ диҳам, ки он чӣ гуна кор мекард:

  1. Дархости беруна ба пуштибонӣ меояд (Asp.Net MVC дар он ҷо), бо худ кукии сессияро меорад, ки барои гирифтани маълумоти сессия аз Redis(1) истифода мешавад. Он ё маълумот дар бораи дастрасиро дар бар мегирад ва баъд дастрасӣ ба контроллер кушода аст (3,4) ё не.
  2. Агар дастрасӣ надошта бошад, шумо бояд аз расмиёти авторизатсия гузаред. Дар ин ҷо, барои содда, он ҳамчун як қисми роҳ дар ҳамон атрибут нишон дода шудааст, гарчанде ки ин гузариш ба саҳифаи воридшавӣ аст. Дар сурати сенарияи мусбӣ, мо сессияи дуруст пуршударо мегирем ва ба Backoffice Controller меравем.
  3. Агар маълумот мавҷуд бошад, шумо бояд онро барои мувофиқат дар базаи корбар тафтиш кунед. Оё наќшаш таѓйир ёфт, магар акнун ўро дар сањифа иљозат надињанд? Дар ин ҳолат, пас аз гирифтани сессия (1), шумо бояд мустақиман ба пойгоҳи додаҳо равед ва дастрасии корбарро бо истифода аз қабати мантиқии аутентификатсия (2) тафтиш кунед. Баъдан, ё ба саҳифаи воридшавӣ равед ё ба контроллер равед. Ин як системаи оддӣ аст, аммо комилан стандартӣ нест.
  4. Агар ҳама равандҳо анҷом дода шаванд, мо минбаъд дар мантиқ дар контроллерҳо ва усулҳо мегузарем.

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

ШУД. Ин аст он чизе ки онҳо карданд:

Таърихи меъмории Додо IS: роҳи пушти офис

Ин равиш як қатор мушкилот дорад. Масалан, даъват кардани усул дар дохили раванд бо занг задан ба хидмати беруна тавассути http яксон нест. Нигоҳдорӣ, эътимоднокӣ, дастгирӣ ва шаффофияти амалиёт комилан фарқ мекунанд. Андрей Моревский дар маърузаи худ дар бораи махз хамин проблемахо муфассалтар сухан ронд "50 сояҳои хидматрасонии микро".

Хидмати аутентификатсия ва бо он хидмати дастгоҳ барои бэк-офис, яъне барои хидматҳо ва интерфейсҳои дар истеҳсолот истифодашаванда истифода мешавад. Аутентификатсия барои хидматҳои муштарӣ (ба монанди вебсайт ё барномаи мобилӣ) бидуни истифодаи Auth алоҳида сурат мегирад. Ҷудокунӣ тақрибан як сол тӯл кашид ва ҳоло мо боз дар ин мавзӯъ кор карда истодаем ва системаро ба хидматҳои нави аутентификатсия (бо протоколҳои стандартӣ) интиқол медиҳем.

Чаро ҷудошавӣ ин қадар тӯл кашид?
Дар ин роҳ мушкилоти зиёде буданд, ки моро суст карданд:

  1. Мо мехостем маълумотро дар бораи корбарон, дастгоҳҳо ва аутентификатсия аз пойгоҳи додаҳои кишвар ба як маълумот интиқол диҳем. Барои ин, мо бояд ҳамаи ҷадвалҳо ва истифодаро аз идентификатори int ба идентификатори глобалии UUId интиқол диҳем (мо ба наздикӣ ин кодро аз нав кор кардем. Роман Букин "Uuid - достони бузурги сохтори хурд" ва лоиҳаи кушодаасос Примитивҳо). Нигоҳ доштани маълумоти корбар (азбаски ин маълумоти шахсӣ аст) маҳдудиятҳои худро дорад ва барои баъзе кишварҳо он бояд алоҳида нигоҳ дошта шавад. Аммо бояд ID-и корбари глобалӣ бошад.
  2. Бисёр ҷадвалҳои базаи маълумот дар бораи корбаре, ки ин амалиётро иҷро кардааст, маълумоти аудит доранд. Ин механизми иловагиро барои таъмини муттасил талаб мекард.
  3. Пас аз таъсиси хидматҳои API, давраи тӯлонӣ ва тадриҷан интиқол ба системаи дигар вуҷуд дошт. Гузаришҳо бояд барои корбарон бефосила сурат мегирифтанд ва кори дастиро талаб мекарданд.

Нақшаи бақайдгирии дастгоҳ дар пиццерия:

Таърихи меъмории Додо IS: роҳи пушти офис

Архитектураи умумӣ пас аз ҷудо кардани хидмати Auth ва Devices:

Таърихи меъмории Додо IS: роҳи пушти офис

эрод гирифтан. Барои соли 2020, мо дар болои версияи нави Auth кор карда истодаем, ки он ба стандарти авторизатсияи OAuth 2.0 асос ёфтааст. Ин стандарт хеле мураккаб аст, аммо барои таҳияи хидмати аутентификатсияи ниҳоӣ муфид аст. Дар мақолаи "Нозукиҳои авторизатсия: шарҳи технологияи OAuth 2.0» мо Алексей Черняев кушиш мекардем, ки дар бораи стандарт то хадди имкон содда ва фахмо сухан ронем, то шумо барои омухтани он вактро сарфа кунед.

Tracker чӣ кор мекунад?

Ҳоло дар бораи дуюми хидматҳои боршуда. Трекер нақши дугонаро иҷро мекунад:

  • Аз як тараф, вазифаи он аз он иборат аст, ки дар ошхона ба коргарон нишон дихад, ки хозир чй гуна заказхо ичро карда мешаванд, кадом махсулотро хозир тайёр кардан лозим аст.
  • Аз тарафи дигар, тамоми равандҳоро дар ошхона рақамӣ кунед.

Таърихи меъмории Додо IS: роҳи пушти офис

Вақте ки маҳсулоти нав (масалан, пицца) дар фармоиш пайдо мешавад, он ба истгоҳи трекери "Rolling" меравад. Дар ин истгоҳ як пиццасоз мавҷуд аст, ки як булочкаи андозаи заруриро гирифта, онро мепечонад ва пас аз он дар планшети трекер қайд мекунад, ки вазифаи худро иҷро кардааст ва пояи хамир печонидашударо ба истгоҳи навбатӣ - "Пур кардан" медиҳад. .

Дар он ҷо пиццасози навбатӣ болои пицца меистад ва баъд дар планшет қайд мекунад, ки вазифаи худро иҷро кардааст ва пиццаро ​​дар танӯр мегузорад (ин ҳам як истгоҳи алоҳида аст, ки бояд дар планшет қайд карда шавад). Чунин низом аз аввал дар Додо ва аз ибтидои Додо ИС вуҷуд дошт. Он ба шумо имкон медиҳад, ки ҳама амалиётҳоро пурра пайгирӣ ва рақамӣ кунед. Гайр аз ин, трекер тарзи тайёр кардани мах-сулоти муайянро пешниход мекунад, хар як намуди махсулотро аз руи схемахои истехсолии худ мегузаронад, мухлати оптималии пухтани махсулотро нигох медорад ва тамоми амалиётро оид ба махсулот назорат мекунад.

Таърихи меъмории Додо IS: роҳи пушти офисЧунин аст экрани планшет дар истгоҳи трекери Расткака.

Борҳо аз куҷо меоянд?

Ҳар як пиццерия тақрибан панҷ планшет бо трекер дорад. Дар соли 2016 мо зиёда аз 100 пиццерия доштем (ва ҳоло зиёда аз 600 нафар аст). Ҳар як планшет ҳар 10 сония ба пуштибон дархост мекунад ва маълумотро аз ҷадвали фармоиш (пайванд бо муштарӣ ва суроға), таркиби фармоиш (пайванд бо маҳсулот ва нишон додани миқдор) ва ҷадвали ҳавасмандкунӣ (он пайгирӣ мекунад) ҷамъ меорад. вақти пахш кардан). Вақте ки пиццасоз ба маҳсулот дар трекер клик мекунад, сабтҳо дар ҳамаи ин ҷадвалҳо нав карда мешаванд. Ҷадвали фармоиш умумӣ буда, дар он ҳамзамон дохилкуниҳо ҳангоми қабули фармоиш, навсозӣ аз қисмҳои дигари система ва хонишҳои сершумор, масалан, дар телевизоре, ки дар пиццерия овезон аст ва фармоишҳои тайёрро ба мизоҷон нишон медиҳад.

Дар давраи мубориза бо сарборӣ, вақте ки ҳама чиз ва ҳама кэш карда шуда, ба нусхаи асинхронии пойгоҳи додаҳо интиқол дода шуданд, ин амалиётҳо бо трекер ба пойгоҳи додаҳои асосӣ идома доданд. Дар ин ҷо ҳеҷ гуна таъхир набояд вуҷуд дошта бошад, маълумот бояд нав бошад, ҳамоҳангӣ ғайри қобили қабул аст.

Инчунин, набудани ҷадвалҳо ва индексҳои худи мо дар онҳо ба мо имкон намедод, ки дархостҳои мушаххасеро, ки барои истифодаи мо таҳия шудаанд, нависем. Масалан, барои трекер метавонад дар ҷадвали фармоишҳо индекси пиццерия дошта бошад, самаранок бошад. Мо ҳамеша фармоишҳои пиццерияро аз базаи трекерҳо канда мекунем. Дар баробари ин, барои қабули фармоиш он қадар муҳим нест, ки он ба кадом пиццерия меафтад, муҳимтар он аст, ки кадом муштарӣ ин фармоишро додааст. Ин маънои онро дорад, ки бояд дар муштарӣ индекс мавҷуд бошад. Инчунин зарур нест, ки трекер идентификатори квитансияи чопшуда ё аксияҳои бонуси марбут ба фармоишро дар ҷадвали фармоиш нигоҳ дорад. Хидмати трекери мо ба ин маълумот таваҷҷӯҳ надорад. Дар махзани умумии монолитӣ, ҷадвалҳо метавонанд танҳо як созиш байни ҳамаи корбарон бошанд. Ин яке аз мушкилоти аслӣ буд.

БУД. Дар аввал меъморӣ чунин буд:

Таърихи меъмории Додо IS: роҳи пушти офис

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

Борфарорӣ кардани Tracker

Мушкилоти асосии трекер дар он аст, ки маълумот бояд байни пойгоҳи додаҳои гуногун ҳамоҳанг карда шавад. Ин инчунин фарқияти асосии он аз тақсимоти хидмати Auth аст; тартиб ва ҳолати он метавонад тағир ёбад ва бояд дар хидматҳои гуногун намоиш дода шавад.

Мо фармоишҳоро дар кассаи тарабхона қабул мекунем (ин хидмат аст), он дар пойгоҳи додаҳо дар ҳолати "Қабулшуда" нигоҳ дошта мешавад. Пас аз он, он бояд ба трекер равад, ки дар он ҷо боз якчанд маротиба мақоми худро иваз мекунад: аз "Ошхона" ба "Бастан". Дар ин ҳолат, баъзе таъсироти беруна аз кассир ё интерфейси менеҷери Shift метавонад бо фармоиш рух диҳад. Ман статусҳои фармоишро бо тавсифи онҳо дар ҷадвал медиҳам:

Таърихи меъмории Додо IS: роҳи пушти офис
Нақшаи тағир додани ҳолати фармоиш чунин менамояд:

Таърихи меъмории Додо IS: роҳи пушти офис

Ҳолатҳо байни системаҳои гуногун тағир меёбанд. Ва дар ин ҷо трекер системаи ниҳоӣ нест, ки дар он маълумот баста мешавад. Мо якчанд равишҳои имконпазирро барои ҷудошавӣ дар чунин ҳолат дидем:

  1. Мо ҳама амалҳои фармоишро дар як хидмат мутамарказ мекунем. Дар ҳолати мо, ин хосият барои коркарди фармоиш хидматрасонии аз ҳад зиёдро талаб мекунад. Агар мо дар он чо меистодем, мо бо монолити дуюм ба охир мерасидем. Мо мушкилотро ҳал намекардем.
  2. Як система ба дигараш занг мезанад. Варианти дуюм ҷолибтар аст. Аммо бо он занҷирҳои зангҳо имконпазиранд (нокомиҳои пай дар пай), пайвастшавии ҷузъҳо баландтар аст ва идора кардани он душвортар аст.
  3. Мо чорабиниҳо ташкил мекунем ва ҳар як хидмат тавассути ин чорабиниҳо бо дигараш мубодила мекунад. Дар натиҷа, варианти сеюм интихоб карда шуд, ки мувофиқи он ҳама хидматҳо мубодилаи рӯйдодҳоро бо ҳамдигар оғоз мекунанд.

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

То он вақт, мо аллакай RabbitMQ-ро дар стек доштем, аз ин рӯ қарори ниҳоӣ барои истифодаи он ҳамчун брокери паём. Диаграмма гузариши фармоишро аз кассири тарабхона ба воситаи Tracker нишон медиҳад, ки дар он ҳолат ва намоиши он дар интерфейси фармоишҳои менеҷер тағир меёбад. ШУД:

Таърихи меъмории Додо IS: роҳи пушти офис

Роҳро қадам ба қадам фармоиш диҳед
Роҳи фармоиш дар яке аз хидматҳои манбаи фармоиш оғоз мешавад. Ин аст кассири тарабхона:

  1. Фармоиш дар касса комилан омода аст ва вақти он расидааст, ки онро ба трекер фиристед. Ҳодисае, ки трекер ба он обуна шудааст, партофта мешавад.
  2. Назоратчӣ, ки фармоишро қабул мекунад, онро дар пойгоҳи додаи худ нигоҳ медорад ва чорабинии "Тартиби аз ҷониби Tracker қабулшуда" -ро ташкил медиҳад ва онро ба RMQ мефиристад.
  3. Якчанд коркардкунандагон аллакай ба автобуси рӯйдодҳои фармоишӣ обуна шудаанд. Барои мо он чизе, ки бо базаи монолитӣ ҳамоҳанг мешавад, муҳим аст.
  4. Корфармо рӯйдодро қабул мекунад, аз он маълумотеро интихоб мекунад, ки барои ӯ муҳим аст: дар ҳолати мо, ин ҳолати фармоиш "Аз ҷониби Tracker қабулшуда" аст ва объекти фармоиши худро дар пойгоҳи додаҳои асосӣ нав мекунад.

Агар касе ба фармоиш махсус аз ҷадвали фармоишҳои монолитӣ ниёз дошта бошад, онҳо метавонанд онро аз он ҷо низ бихонанд. Масалан, ин чизест, ки интерфейси фармоишҳо дар менеҷери Shift лозим аст:

Таърихи меъмории Додо IS: роҳи пушти офис

Ҳама хидматҳои дигар инчунин метавонанд ба фармоиши рӯйдодҳо аз трекер обуна шаванд, то онҳоро барои худ истифода баранд.

Агар пас аз чанд вақт фармоиш ба истеҳсолот қабул карда шавад, ҳолати он аввал дар пойгоҳи додаи он (базанаи Tracker) тағир меёбад ва сипас ҳодисаи "OrderInWork" фавран тавлид мешавад. Он инчунин ба RMQ ворид мешавад, ки аз он ҷо дар пойгоҳи додаҳои монолитӣ ҳамоҳанг карда мешавад ва ба хидматҳои дигар интиқол дода мешавад. Дар ин роҳ шояд мушкилоти гуногун вуҷуд дошта бошад, тафсилоти бештарро дар гузориши Женя Пешков пайдо кардан мумкин аст дар бораи тафсилоти татбиқи Consistency Eventual дар Tracker.

Меъмории ниҳоӣ пас аз тағирот дар Auth ва Tracker

Таърихи меъмории Додо IS: роҳи пушти офис

Барои ҷамъбаст: Дар аввал, ман фикр мекардам, ки таърихи нӯҳсолаи системаи Додо IS-ро дар як мақола ҷамъоварӣ кунам. Ман мехостам, ки зуд ва содда дар бораи марҳилаҳои эволютсия сӯҳбат кунам. Аммо, барои омӯхтани мавод нишаста, ман фаҳмидам, ки ҳама чиз назар ба он ки ба назар мерасад, хеле мураккабтар ва ҷолибтар аст.

Ман дар бораи манфиатҳои (ё набудани он) чунин мавод фикр карда, ман ба хулосае омадам, ки рушди муттасил бидуни хроникаи мукаммали рӯйдодҳо, ретроспективаҳои муфассал ва таҳлили қарорҳои гузашта ғайриимкон аст.

Умедворам, ки шумо дар бораи саёҳати мо шинос шуданро муфид ва ҷолиб пайдо кардед. Ҳоло ман бо интихоби кадом қисми системаи Додо IS дучор омадаам, ки дар мақолаи навбатӣ тавсиф кунам: дар шарҳҳо нависед ё овоз диҳед.

Танҳо корбарони сабтиномшуда метавонанд дар пурсиш иштирок кунанд. даромад, Лутфан.

Дар мақолаи навбатӣ шумо мехоҳед дар бораи кадом қисми Додо IS маълумот гиред?

  • 24,1%Монолити аввал дар Додо IS (2011-2015)14

  • 24,1%Мушкилоти аввал ва роҳҳои ҳалли онҳо (2015-2016)14

  • 20,7%Роҳи қисми муштарӣ: фасад аз болои пойгоҳ (2016-2017)12

  • 36,2%Таърихи микросервисҳои воқеӣ (2018-2019)21

  • 44,8%Буридани монолит ва муътадил гардондани меъморй ба охир расид26

  • 29,3%Дар бораи накшахои минбаъдаи тараккиёти система17

  • 19,0%Ман намехоҳам чизе дар бораи Dodo IS11 донам

58 корбар овоз доданд. 6 корбар худдорӣ карданд.

Манбаъ: will.com

Илова Эзоҳ