ඩෝඩෝ IS ගෘහ නිර්මාණ ශිල්පයේ ඉතිහාසය: පසුපස කාර්යාල මාර්ගය

හබ්ර් ලෝකය වෙනස් කරයි. අපි බ්ලොග් ලියන්න පටන් අරන් දැන් අවුරුද්දකට වැඩියි. මාස හයකට පමණ පෙර, අපට Khabrovites වෙතින් සම්පූර්ණයෙන්ම තාර්කික ප්‍රතිපෝෂණයක් ලැබුණි: “ඩෝඩෝ, ඔබ සෑම තැනකම පවසන්නේ ඔබට ඔබේම පද්ධතියක් ඇති බවයි. සහ මෙම පද්ධතිය කුමක්ද? සහ පීසා දාමයකට එය අවශ්‍ය වන්නේ ඇයි?

අපි වාඩි වී, කල්පනා කර, ඔබ නිවැරදි බව තේරුම් ගත්තෙමු. අපි ඇඟිලිවල ඇති සෑම දෙයක්ම පැහැදිලි කිරීමට උත්සාහ කරමු, නමුත් එය ඉරා දැමූ කෑලි වලින් එළියට එන අතර පද්ධතිය පිළිබඳ සම්පූර්ණ විස්තරයක් කොතැනකවත් නොමැත. මෙලෙස තොරතුරු එක්රැස් කිරීමේ, කතුවරුන් සෙවීමේ සහ ඩොඩෝ අයිඑස් ගැන ලිපි පෙළක් ලිවීමේ දිගු ගමනක් ආරම්භ විය. අපි යමු!

පිළිගැනීම්: ඔබේ ප්‍රතිපෝෂණය අප සමඟ බෙදා ගැනීම ගැන ඔබට ස්තුතියි. ඔහුට ස්තූතියි, අපි අවසානයේ පද්ධතිය විස්තර කර, තාක්ෂණික රේඩාර් සම්පාදනය කර අපගේ ක්‍රියාවලීන් පිළිබඳ විශාල විස්තරයක් ඉක්මනින් ඉදිරිපත් කරන්නෙමු. ඔබ නොමැතිව අපි තවත් වසර 5 ක් එහි වාඩි වී සිටිමු.

ඩෝඩෝ IS ගෘහ නිර්මාණ ශිල්පයේ ඉතිහාසය: පසුපස කාර්යාල මාර්ගය

ලිපි මාලාව "Dodo IS යනු කුමක්ද?" ගැන කියයි:

  1. ඩොඩෝ IS හි මුල් ඒකලිත (2011-2015). (ප්රගතියේ...)
  2. පසු කාර්යාල මාර්ගය: වෙනම කඳවුරු සහ බස්. (ඔයා මෙහෙයි)
  3. සේවාදායක පැති මාර්ගය: පාදම මත මුහුණත (2016-2017). (ප්රගතියේ...)
  4. සැබෑ ක්ෂුද්ර සේවා ඉතිහාසය. (2018-2019). (ප්රගතියේ...)
  5. මොනොලිත් කැපීම සහ ගෘහ නිර්මාණ ශිල්පය ස්ථායීකරණය කිරීම අවසන් කර ඇත. (ප්රගතියේ...)

ඔබ වෙනත් යමක් දැන ගැනීමට කැමති නම් - අදහස් දැක්වීමේදී ලියන්න.

කතුවරයාගෙන් කාලානුක්‍රමික විස්තරය පිළිබඳ මතය
"පද්ධති ගෘහ නිර්මාණ ශිල්පය" යන මාතෘකාව යටතේ මම නව සේවකයින් සඳහා රැස්වීමක් නිතිපතා පවත්වමි. අපි එය "Dodo IS ගෘහ නිර්මාණ ශිල්පයට හැඳින්වීම" ලෙස හඳුන්වන අතර එය නව සංවර්ධකයින් සඳහා ඇතුල් වීමේ ක්‍රියාවලියේ කොටසකි. අපේ ගෘහ නිර්මාණ ශිල්පය ගැන, එහි ලක්ෂණ ගැන එක් ආකාරයකින් හෝ වෙනත් ආකාරයකින් පැවසීම, මම විස්තරයට යම් ඓතිහාසික ප්රවේශයක් උපත ලබා ඇත.

සම්ප්‍රදායිකව, අපි පද්ධතිය දෙස බලන්නේ යම් ඉලක්කයක් සපුරා ගැනීම සඳහා එකිනෙකා සමඟ අන්තර් ක්‍රියා කරන සංරචක (තාක්ෂණික හෝ ඉහළ මට්ටමේ), ව්‍යාපාරික මොඩියුල සමූහයක් ලෙස ය. එවැනි දර්ශනයක් නිර්මාණය සඳහා යුක්ති සහගත නම්, එය විස්තර කිරීම සහ අවබෝධය සඳහා බෙහෙවින් සුදුසු නොවේ. මෙහි හේතු කිහිපයක් තිබේ:

  • යථාර්ථය කඩදාසි මත ඇති දේට වඩා වෙනස් ය. සෑම දෙයක්ම සැලසුම් කළ පරිදි සිදු නොවේ. එය ඇත්ත වශයෙන්ම සිදුවූයේ කෙසේද සහ ක්‍රියා කරන්නේ කෙසේද යන්න ගැන අපි උනන්දු වෙමු.
  • තොරතුරු අඛණ්ඩව ඉදිරිපත් කිරීම. ඇත්ත වශයෙන්ම, ඔබට ආරම්භයේ සිට වර්තමාන තත්ත්වය දක්වා කාලානුක්‍රමිකව යා හැකිය.
  • සරල සිට සංකීර්ණ දක්වා. විශ්වීය නොවේ, නමුත් අපගේ නඩුවේ එය එසේ ය. ගෘහ නිර්මාණ ශිල්පය සරල ප්‍රවේශයන්ගෙන් වඩාත් සංකීර්ණ ප්‍රවේශයන් වෙත මාරු විය. බොහෝ විට සංකූලතා හරහා, ක්‍රියාත්මක කිරීමේ වේගය සහ ස්ථායීතාවයේ ගැටළු විසඳා ඇති අතර, ක්‍රියාකාරී නොවන අවශ්‍යතා ලැයිස්තුවෙන් වෙනත් දේපල දුසිම් ගණනක් (මෙහි අනෙකුත් අවශ්‍යතා සමඟ ප්‍රතිවිරුද්ධ සංකීර්ණත්වය ගැන හොඳින් පවසා ඇත).

2011 දී, ඩෝඩෝ අයිඑස් ගෘහ නිර්මාණ ශිල්පය මේ වගේ ය:

ඩෝඩෝ IS ගෘහ නිර්මාණ ශිල්පයේ ඉතිහාසය: පසුපස කාර්යාල මාර්ගය

2020 වන විට, එය ටිකක් සංකීර්ණ වී ඇති අතර මේ ආකාරයට සිදු වී ඇත:

ඩෝඩෝ IS ගෘහ නිර්මාණ ශිල්පයේ ඉතිහාසය: පසුපස කාර්යාල මාර්ගය

මෙම පරිණාමය සිදු වූයේ කෙසේද? පද්ධතියේ විවිධ කොටස් අවශ්ය වන්නේ ඇයි? කුමන වාස්තු විද්‍යාත්මක තීරණ ගනු ලැබුවේද සහ ඇයි? අපි මේ ලිපි මාලාවෙන් සොයා බලමු.

2016 වසරේ පළමු ගැටළු: සේවාවන් මොනොලිත් වලින් ඉවත් විය යුත්තේ ඇයි?

චක්‍රයේ පළමු ලිපි ඒකලිතයෙන් වෙන් වූ පළමු සේවාවන් ගැන වනු ඇත. ඔබව සන්දර්භය තුළ තැබීමට, 2016 ආරම්භය වන විට අපට සේවා වෙන් කිරීම සමඟ කටයුතු කිරීමට සිදු වූ පද්ධතියේ අපට තිබූ ගැටළු මොනවාදැයි මම ඔබට කියමි.

Dodo IS හි එකල පැවති සියලුම යෙදුම් ඔවුන්ගේ වාර්තා ලියා ඇති තනි MySql දත්ත සමුදායක්. ප්රතිවිපාක වූයේ:

  • අධික බර (කියවීම සඳහා වූ ඉල්ලීම්වලින් 85%ක් සමඟ).
  • පදනම වර්ධනය වී ඇත. මේ නිසා එහි පිරිවැය සහ ආධාරය ගැටලුවක් විය.
  • අසාර්ථක වීමේ තනි ලක්ෂ්‍යය. දත්ත සමුදායට ලියන එක් යෙදුමක් හදිසියේම එය වඩාත් ක්‍රියාශීලීව කිරීමට පටන් ගත්තේ නම්, අනෙක් යෙදුම් එය තමන්ටම දැනුනි.
  • ගබඩා කිරීම සහ විමසුම්වල අකාර්යක්ෂමතාව. බොහෝ විට දත්ත ගබඩා කර ඇත්තේ සමහර අවස්ථා සඳහා පහසු වන නමුත් අනෙක් ඒවාට සුදුසු නොවන ව්‍යුහයක ය. දර්ශක සමහර මෙහෙයුම් වේගවත් කරයි, නමුත් අනෙක් ඒවා මන්දගාමී විය හැක.
  • සමහර ගැටලු කඩිමුඩියේ සාදන ලද හැඹිලි සහ පාදවලට කියවීමේ අනුරූ මගින් ඉවත් කරන ලදී (මෙය වෙනම ලිපියක් වනු ඇත), නමුත් ඔවුන් ඔවුන්ට කාලය ලබා ගැනීමට පමණක් ඉඩ දී ඇති අතර මූලික වශයෙන් ගැටළුව විසඳුවේ නැත.

ගැටලුව වූයේ මොනොලිත් තිබීමයි. ප්රතිවිපාක වූයේ:

  • තනි සහ දුර්ලභ නිකුතු.
  • විශාල පිරිසකගේ ඒකාබද්ධ සංවර්ධනයේ දුෂ්කරතා.
  • නව තාක්ෂණයන්, නව රාමු සහ පුස්තකාල ගෙන ඒමට නොහැකි වීම.

පාදම සහ මොනොලිත් සමඟ ඇති ගැටළු බොහෝ වාරයක් විස්තර කර ඇත, උදාහරණයක් ලෙස, 2018 මුල් භාගයේ බිඳ වැටීම් සන්දර්භය තුළ (Munch මෙන් වන්න, නැතහොත් තාක්ෂණික ණය ගැන වචන කිහිපයක්, Dodo IS නැවැත්වූ දවස. අසමමුහුර්ත පිටපත и ෆීනික්ස් පවුලේ ඩෝඩෝ කුරුල්ලාගේ කතාව. ඩෝඩෝ හි මහා වැටීම IS), ඒ නිසා මම වැඩිය වාසය කරන්නේ නැහැ. සේවා සංවර්ධනය කිරීමේදී වඩාත් නම්‍යශීලී බවක් ලබා දීමට අපට අවශ්‍ය වූ බව පමණක් කියන්නම්. පළමුවෙන්ම, මෙය සමස්ත පද්ධතියේ වැඩිපුරම පටවා ඇති සහ මුල් වූ ඒවාට අදාළ වේ - Auth සහ Tracker.

පසු කාර්යාල මාර්ගය: වෙනම කඳවුරු සහ බස් රථය

පරිච්ඡේද සංචාලනය

  1. මොනොලිත් යෝජනා ක්‍රමය 2016
  2. මොනොලිත් බෑම ආරම්භ කිරීම: සත්‍යාපනය සහ ට්‍රැකර් වෙන් කිරීම
  3. Auth කරන්නේ කුමක්ද?
  4. බඩු කොහෙන්ද?
  5. Aut බාමින්
  6. Tracker කරන්නේ කුමක්ද?
  7. බඩු කොහෙන්ද?
  8. ට්රැකර් බෑම

මොනොලිත් යෝජනා ක්‍රමය 2016

මෙන්න Dodo IS 2016 monolith හි ප්‍රධාන කොටස් වන අතර, ඔවුන්ගේ ප්‍රධාන කාර්යයන් පිළිබඳ පිටපතක් පහතින් ඇත.
ඩෝඩෝ IS ගෘහ නිර්මාණ ශිල්පයේ ඉතිහාසය: පසුපස කාර්යාල මාර්ගය
මුදල් අයකැමි භාරදීම. කුරියර් සඳහා ගිණුම්කරණය, කුරියර් වෙත ඇණවුම් නිකුත් කිරීම.
සම්බන්ධතා මධ්යස්ථානය. ක්රියාකරු හරහා ඇණවුම් භාර ගැනීම.
අඩවිය. අපගේ වෙබ් අඩවි (dodopizza.ru, dodopizza.co.uk, dodopizza.by, ආදිය).
සත්‍යාපනය. පසු කාර්යාලය සඳහා බලය පැවරීමේ සහ සත්‍යාපන සේවාව.
ට්රැකර්. මුළුතැන්ගෙයෙහි ට්රැකර් ඇණවුම් කරන්න. ඇණවුමක් සකස් කිරීමේදී සූදානම තත්ව සලකුණු කිරීම සඳහා සේවාව.
ආපනශාලාවේ මුදල් මේසය. අවන්හලක ඇණවුම් ලබා ගැනීම, මුදල් අයකැමි අතුරුමුහුණත්.
අපනයන. ගිණුම්කරණය සඳහා 1C හි වාර්තා උඩුගත කිරීම.
දැනුම්දීම් සහ ඉන්වොයිසි. කුස්සියේ හඬ විධාන (උදාහරණයක් ලෙස, "නව පීසා ආවා") + කුරියර් සඳහා ඉන්වොයිස් මුද්රණය.
Shift කළමනාකරු. මාරු කළමණාකරුගේ වැඩ සඳහා අතුරුමුහුණත්: ඇණවුම් ලැයිස්තුව, කාර්ය සාධන ප්රස්ථාර, මාරු කිරීම සඳහා සේවකයින් මාරු කිරීම.
කාර්යාල කළමනාකරු. ෆ්‍රැන්චයිස් සහ කළමනාකරුගේ වැඩ සඳහා අතුරු මුහුණත්: සේවකයින් පිළිගැනීම, පීසාරියාගේ වැඩ පිළිබඳ වාර්තා.
ආපනශාලා ලකුණු පුවරුව. පීසීරියාවල රූපවාහිනීවල මෙනු සංදර්ශකය.
පරිපාලක. විශේෂිත පීසාරියා තුළ සැකසීම්: මෙනුව, මිල ගණන්, ගිණුම්කරණය, ප්‍රවර්ධන කේත, ප්‍රවර්ධන, වෙබ් අඩවි බැනර් ආදිය.
සේවකයාගේ පුද්ගලික ගිණුම. සේවකයින්ගේ වැඩ කාලසටහන්, සේවකයින් පිළිබඳ තොරතුරු.
මුළුතැන්ගෙයි අභිප්රේරණ මණ්ඩලය. කුස්සියේ එල්ලෙන වෙනම තිරයක් සහ පීසා නිෂ්පාදකයින්ගේ වේගය පෙන්වයි.
සන්නිවේදන. කෙටි පණිවුඩ සහ ඊමේල් යැවීම.
ගොනු ගබඩාව. ස්ථිතික ගොනු ලබා ගැනීම සහ නිකුත් කිරීම සඳහා තමන්ගේම සේවාවක්.

ගැටළු විසඳීමට පළමු උත්සාහයන් අපට උපකාර කළ නමුත් ඒවා තාවකාලික විවේකයක් පමණි. ඒවා සිස්ටම් විසඳුම් බවට පත් නොවූ නිසා පදනම් සමඟ යමක් කළ යුතු බව පැහැදිලි විය. උදාහරණයක් ලෙස, සාමාන්ය දත්ත සමුදාය තවත් විශේෂිත ඒවා කිහිපයකට බෙදීමට.

මොනොලිත් බෑම ආරම්භ කිරීම: සත්‍යාපනය සහ ට්‍රැකර් වෙන් කිරීම

අනෙක් ඒවාට වඩා දත්ත සමුදායෙන් පසුව පටිගත කර කියවන ප්‍රධාන සේවාවන්:

  1. Aut. පසු කාර්යාලය සඳහා බලය පැවරීමේ සහ සත්‍යාපන සේවාව.
  2. ට්රැකර්. මුළුතැන්ගෙයෙහි ට්රැකර් ඇණවුම් කරන්න. ඇණවුමක් සකස් කිරීමේදී සූදානමේ තත්ත්වයන් සලකුණු කිරීම සඳහා සේවාව.

Auth කරන්නේ කුමක්ද?

Auth යනු පරිශීලකයින් පසු කාර්යාලයට ලොග් වන සේවාවකි (සේවාදායකයාගේ පැත්තේ වෙනම ස්වාධීන පිවිසුමක් ඇත). අවශ්‍ය ප්‍රවේශ අයිතීන් පවතින බවටත්, අවසාන පිවිසුමෙන් පසු මෙම අයිතීන් වෙනස් වී නොමැති බවටත් තහවුරු කර ගැනීම සඳහා ඉල්ලීමෙහි ද කැඳවනු ලැබේ. එය හරහා උපාංග පීසාරියා වලට ඇතුල් වේ.

උදාහරණයක් ලෙස, ශාලාවේ එල්ලෙන රූපවාහිනියේ නිමි ඇණවුම් වල තත්ත්‍වයන් සහිත සංදර්ශකයක් විවෘත කිරීමට අපට අවශ්‍යය. ඉන්පසු අපි auth.dodopizza.ru විවෘත කර, "උපාංගයක් ලෙස පුරනය වන්න" තෝරන්න, මාරු කළමණාකරුගේ පරිගණකයේ විශේෂ පිටුවක ඇතුළත් කළ හැකි කේතයක් දිස්වේ, උපාංගයේ වර්ගය (උපාංගය) දක්වයි. රූපවාහිනියම එහි පීසාරියා හි අපේක්ෂිත අතුරු මුහුණත වෙත මාරු වන අතර එහි ඇණවුම් සූදානම් කර ඇති පාරිභෝගිකයින්ගේ නම් ප්‍රදර්ශනය කිරීමට පටන් ගනී.

ඩෝඩෝ IS ගෘහ නිර්මාණ ශිල්පයේ ඉතිහාසය: පසුපස කාර්යාල මාර්ගය

බඩු කොහෙන්ද?

පසු කාර්යාලයේ ලොග් වී ඇති සෑම පරිශීලකයෙක්ම දත්ත සමුදායට, එක් එක් ඉල්ලීම සඳහා පරිශීලක වගුව වෙත ගොස්, sql විමසුමක් හරහා පරිශීලකයා පිටතට ගෙන ඔහුට මෙම පිටුවට අවශ්‍ය ප්‍රවේශය සහ අයිතිවාසිකම් තිබේදැයි පරීක්ෂා කරයි.

සෑම උපාංගයක්ම එකම උපාංග වගුව සමඟ පමණක් සිදු කරයි, එහි කාර්යභාරය සහ එහි ප්රවේශය පරීක්ෂා කරයි. ප්රධාන දත්ත සමුදාය වෙත ඉල්ලීම් විශාල සංඛ්යාවක් එහි පැටවීමට සහ මෙම මෙහෙයුම් සඳහා පොදු දත්ත ගබඩාවේ සම්පත් නාස්ති කිරීමට හේතු වේ.

Aut බාමින්

Auth සතුව හුදකලා වසමක් ඇත, එනම්, පරිශීලකයන්, පිවිසුම් හෝ උපාංග පිළිබඳ දත්ත සේවාවට ඇතුළු වී (දැනට) එහි පවතී. යමෙකුට ඒවා අවශ්‍ය නම්, ඔහු දත්ත සඳහා මෙම සේවාවට යයි.

විය. මුල් වැඩ යෝජනා ක්රමය පහත පරිදි විය:

ඩෝඩෝ IS ගෘහ නිර්මාණ ශිල්පයේ ඉතිහාසය: පසුපස කාර්යාල මාර්ගය

එය ක්‍රියාත්මක වන ආකාරය ටිකක් පැහැදිලි කිරීමට මම කැමතියි:

  1. පිටතින් ඉල්ලීමක් පසුබිමට පැමිණේ (Asp.Net MVC ඇත), එය සමඟ සැසි කුකියක් ගෙන එයි, එය Redis(1) වෙතින් සැසි දත්ත ලබා ගැනීමට භාවිතා කරයි. එහි ප්‍රවේශයන් පිළිබඳ තොරතුරු අඩංගු වන අතර, පසුව පාලකයට ප්‍රවේශය විවෘත වේ (3,4), නැතහොත් නැත.
  2. ප්රවේශයක් නොමැති නම්, ඔබ අවසර ලබා ගැනීමේ ක්රියා පටිපාටිය හරහා යා යුතුය. මෙන්න, සරල බව සඳහා, එය පිවිසුම් පිටුවට සංක්රමණය වුවද, එම ගුණාංගයේම මාර්ගයේ කොටසක් ලෙස පෙන්වයි. ධනාත්මක අවස්ථාවකදී, අපි නිවැරදිව සම්පූර්ණ කරන ලද සැසියක් ලබාගෙන Backoffice Controller වෙත යන්නෙමු.
  3. දත්ත තිබේ නම්, ඔබ පරිශීලක පදනමේ අදාළත්වය සඳහා එය පරීක්ෂා කළ යුතුය. ඔහුගේ භූමිකාව වෙනස් වී ඇත, ඔහුට දැන් පිටුවට ඉඩ දිය යුතු නොවේද? මෙම අවස්ථාවෙහිදී, සැසිය (1) ලැබීමෙන් පසු, ඔබ කෙලින්ම දත්ත සමුදාය වෙත ගොස් සත්‍යාපන තාර්කික ස්තරය (2) භාවිතයෙන් පරිශීලකයාගේ ප්‍රවේශය පරීක්ෂා කළ යුතුය. ඊළඟට, පිවිසුම් පිටුවට හෝ පාලකය වෙත යන්න. එවැනි සරල පද්ධතියක්, නමුත් තරමක් සම්මත නොවේ.
  4. සියලුම ක්‍රියා පටිපාටි සම්මත කර ඇත්නම්, අපි පාලකයන් සහ ක්‍රමවල තර්කනය තුළ තවදුරටත් මඟ හරින්නෙමු.

පරිශීලක දත්ත අනෙකුත් සියලුම දත්ත වලින් වෙන් කර ඇත, එය වෙනම සාමාජිකත්ව වගුවක ගබඩා කර ඇත, AuthService තාර්කික ස්ථරයේ කාර්යයන් Api ක්‍රම බවට පත් විය හැක. වසම් සීමාවන් ඉතා පැහැදිලිව නිර්වචනය කර ඇත: පරිශීලකයන්, ඔවුන්ගේ භූමිකාවන්, ප්‍රවේශ දත්ත, ප්‍රවේශය ලබා දීම සහ අවලංගු කිරීම. සෑම දෙයක්ම වෙනම සේවාවකින් පිටතට ගෙන යා හැකි පරිදි පෙනේ.

වෙන්න. ඉතින් ඔවුන් කළේ:

ඩෝඩෝ IS ගෘහ නිර්මාණ ශිල්පයේ ඉතිහාසය: පසුපස කාර්යාල මාර්ගය

මෙම ප්රවේශය ගැටළු ගණනාවක් ඇත. උදාහරණයක් ලෙස, ක්‍රියාවලියක් ඇතුළත ක්‍රමයක් ඇමතීම http හරහා බාහිර සේවාවක් ඇමතීමට සමාන නොවේ. මෙහෙයුමේ ප්රමාදය, විශ්වසනීයත්වය, නඩත්තු කිරීමේ හැකියාව, විනිවිදභාවය සම්පූර්ණයෙන්ම වෙනස් වේ. Andrey Morevskiy ඔහුගේ වාර්තාවේ එවැනි ගැටළු පිළිබඳව වඩාත් විස්තරාත්මකව කතා කළේය. "ක්ෂුද්‍ර සේවා සෙවන 50".

සත්‍යාපන සේවාව සහ එය සමඟ උපාංග සේවාව පසුපස කාර්යාලය සඳහා, එනම් නිෂ්පාදනයේදී භාවිතා කරන සේවා සහ අතුරුමුහුණත් සඳහා භාවිතා කරයි. සේවාදායක සේවා සඳහා සත්‍යාපනය (වෙබ් අඩවියක් හෝ ජංගම යෙදුමක් වැනි) Auth භාවිතා නොකර වෙන වෙනම සිදු වේ. වෙන්වීම වසරක් පමණ ගත වූ අතර, දැන් අපි නැවතත් මෙම මාතෘකාව සමඟ කටයුතු කරමින්, පද්ධතිය නව සත්යාපන සේවා වෙත (සම්මත ප්රොටෝකෝල සමඟ) මාරු කරමු.

වෙන්වීමට මෙතරම් කාලයක් ගත වූයේ ඇයි?
අපව මන්දගාමී කළ මාර්ගයේ බොහෝ ගැටලු ඇති විය:

  1. අපට අවශ්‍ය වූයේ පරිශීලක, උපාංග සහ සත්‍යාපන දත්ත රට-විශේෂිත දත්ත සමුදායන්ගෙන් එකකට මාරු කිරීමටයි. මෙය සිදු කිරීම සඳහා, අපට සියලු වගු සහ භාවිතය int හඳුනාගැනීමේ සිට ගෝලීය UUId හඳුනාගැනීම් වෙත පරිවර්තනය කිරීමට සිදු විය (මෑතකදී මෙම කේතය නැවත සකස් කරන ලදී රෝමන් බුකින් "Uuid - කුඩා ව්යුහයක විශාල කථාවක්" සහ විවෘත මූලාශ්‍ර ව්‍යාපෘතිය ප්රාථමිකයන්) පරිශීලක දත්ත ගබඩා කිරීම (එය පුද්ගලික තොරතුරු බැවින්) එහි සීමාවන් ඇති අතර සමහර රටවල් සඳහා ඒවා වෙන වෙනම ගබඩා කිරීම අවශ්‍ය වේ. නමුත් පරිශීලකයාගේ ගෝලීය හැඳුනුම්පත විය යුතුය.
  2. දත්ත ගබඩාවේ බොහෝ වගු වල මෙහෙයුම සිදු කළ පරිශීලකයා පිළිබඳ විගණන තොරතුරු ඇත. මෙය අනුකූලතාව සඳහා අතිරේක යාන්ත්රණයක් අවශ්ය විය.
  3. Api-සේවා නිර්මාණය කිරීමෙන් පසුව, වෙනත් පද්ධතියකට සංක්‍රමණය වීමේ දිගු හා ක්‍රමානුකූල කාල පරිච්ඡේදයක් පැවතුනි. මාරු කිරීම පරිශීලකයින් සඳහා බාධාවකින් තොරව සිදු කළ යුතු අතර අතින් වැඩ කිරීම අවශ්‍ය විය.

පීසීරියා හි උපාංග ලියාපදිංචි කිරීමේ යෝජනා ක්‍රමය:

ඩෝඩෝ IS ගෘහ නිර්මාණ ශිල්පයේ ඉතිහාසය: පසුපස කාර්යාල මාර්ගය

Auth සහ උපාංග සේවාව නිස්සාරණය කිරීමෙන් පසු සාමාන්‍ය ගෘහනිර්මාණ ශිල්පය:

ඩෝඩෝ IS ගෘහ නිර්මාණ ශිල්පයේ ඉතිහාසය: පසුපස කාර්යාල මාර්ගය

අදහස් දැක්වීම්. 2020 සඳහා, අපි OAuth 2.0 අවසර ප්‍රමිතිය මත පදනම් වූ Auth හි නව අනුවාදයක් මත වැඩ කරමින් සිටිමු. මෙම ප්‍රමිතිය තරමක් සංකීර්ණයි, නමුත් එය pass-through සත්‍යාපන සේවාවක් සංවර්ධනය කිරීම සඳහා ප්‍රයෝජනවත් වේ. ලිපියේ "අවසරයේ සියුම්කම්: OAuth 2.0 තාක්ෂණය පිළිබඳ දළ විශ්ලේෂණයක්» අපි Alexey Chernyaev ප්‍රමිතිය ගැන හැකි තරම් සරලව හා පැහැදිලිව පැවසීමට උත්සාහ කළෙමු, එවිට ඔබට එය අධ්‍යයනය කිරීමට කාලය ඉතිරි වේ.

Tracker කරන්නේ කුමක්ද?

දැන් පටවන ලද සේවාවන්හි දෙවැන්න ගැන. ට්රැකර් ද්විත්ව භූමිකාවක් ඉටු කරයි:

  • එක් අතකින්, එහි කර්තව්‍යය වන්නේ මුළුතැන්ගෙයෙහි සේවකයින්ට දැනට වැඩ කරන ඇණවුම් මොනවාද, දැන් පිසීමට අවශ්‍ය නිෂ්පාදන මොනවාද යන්න පෙන්වීමයි.
  • අනෙක් අතට, කුස්සියේ ඇති සියලුම ක්රියාවලීන් ඩිජිටල් කිරීමට.

ඩෝඩෝ IS ගෘහ නිර්මාණ ශිල්පයේ ඉතිහාසය: පසුපස කාර්යාල මාර්ගය

නව නිෂ්පාදනයක් ඇණවුමක දිස්වන විට (උදාහරණයක් ලෙස, පීසා), එය රෝලිං අවුට් ට්‍රැකර් ස්ටේෂන් වෙත යයි. මෙම ස්ථානයේ, පීසා සාදන්නෙකු අවශ්‍ය ප්‍රමාණයේ බනිස් එකක් ගෙන එය රෝල් කරයි, ඉන්පසු ඔහු ට්‍රැකර් ටැබ්ලටයේ තම කාර්යය අවසන් කළ බව සටහන් කර රෝල් කරන ලද පිටි ගුලිය ඊළඟ ස්ථානයට මාරු කරයි - “ආරම්භය”. .

එහිදී, ඊළඟ පීසා සාදන්නා පීසා පුරවා, පසුව ඔහු තම කාර්යය අවසන් කළ බව ටැබ්ලටයේ සටහන් කර පීසා උඳුන තුල තබයි (මෙයද ටැබ්ලටයේ සටහන් කළ යුතු වෙනම ස්ථානයකි). එවැනි පද්ධතියක් ඩොඩෝ හි ආරම්භයේ සිටම සහ ඩෝඩෝ අයිඑස් පැවැත්මේ ආරම්භයේ සිටම පැවතුනි. සියලුම ගනුදෙනු සම්පූර්ණයෙන් නිරීක්ෂණය කිරීමට සහ ඩිජිටල්කරණය කිරීමට එය ඔබට ඉඩ සලසයි. ඊට අමතරව, ට්‍රැකර් විසින් යම් නිෂ්පාදනයක් පිසින ආකාරය යෝජනා කරයි, එක් එක් නිෂ්පාදන වර්ග එහි නිෂ්පාදන යෝජනා ක්‍රම අනුව මඟ පෙන්වයි, නිෂ්පාදනය සඳහා ප්‍රශස්ත පිසීමේ කාලය ගබඩා කරයි, සහ නිෂ්පාදනයේ සියලුම මෙහෙයුම් නිරීක්ෂණය කරයි.

ඩෝඩෝ IS ගෘහ නිර්මාණ ශිල්පයේ ඉතිහාසය: පසුපස කාර්යාල මාර්ගයටැබ්ලටයේ තිරය "රස්කට්කා" ට්රැකර් නැවතුම්පළේ පෙනෙන්නේ එලෙස ය.

බඩු කොහෙන්ද?

සෑම පීසාරියා එකකම ට්රැකර් එකක් සහිත ටැබ්ලට් පහක් පමණ ඇත. 2016 දී, අපට පීසාරියා 100කට වඩා (සහ දැන් 600කට වඩා වැඩි) තිබුණා. සෑම ටැබ්ලට් එකක්ම තත්පර 10කට වරක් පසුපෙළ වෙත ඉල්ලීමක් කරන අතර ඇණවුම් වගුවෙන් (සේවාදායකයා සහ ලිපිනය සමඟ සම්බන්ධ වීම), ඇණවුම් සංයුතිය (නිෂ්පාදනය සමඟ සම්බන්ධ කිරීම සහ ප්‍රමාණය පිළිබඳ ඇඟවීම), අභිප්‍රේරණ ගිණුම් වගුව (ද එබීමේ කාලය එහි නිරීක්ෂණය කෙරේ). පීසා සාදන්නෙකු ට්රැකර් මත නිෂ්පාදනයක් මත ක්ලික් කළ විට, මෙම සියලු වගු වල ඇතුළත් කිරීම් යාවත්කාලීන වේ. ඇණවුම් වගුව සාමාන්‍ය ය, එහි ඇණවුමක් භාර ගැනීමේදී ඇතුළු කිරීම්, පද්ධතියේ අනෙකුත් කොටස් වලින් යාවත්කාලීන කිරීම් සහ බොහෝ කියවීම් ද අඩංගු වේ, නිදසුනක් ලෙස, පීසීරියා එකක එල්ලී පාරිභෝගිකයින්ට නිමි ඇණවුම් පෙන්වන රූපවාහිනියක.

පැටවීම් සමඟ අරගලයේ කාල පරිච්ෙඡ්දය තුළ, සෑම දෙයක්ම සහ සෑම දෙයක්ම හැඹිලිගත කර පදනමේ අසමමුහුර්ත අනුරුවට මාරු කරන විට, ට්රැකර් සමඟ මෙම මෙහෙයුම් දිගටම ප්රධාන පදනම වෙත ගියේය. කිසිදු ප්‍රමාදයක් නොතිබිය යුතුය, දත්ත යාවත්කාලීන විය යුතුය, සමමුහුර්ත නොවන බව පිළිගත නොහැක.

එසේම, ඒවායේම වගු සහ දර්ශක නොමැතිකම, ඒවායේ භාවිතය සඳහා සකස් කරන ලද වඩාත් නිශ්චිත විමසුම් ලිවීමට ඉඩ දුන්නේ නැත. උදාහරණයක් ලෙස, ලුහුබැඳීම සඳහා ඇණවුම් වගුවක පීසීරියා සඳහා දර්ශකයක් තිබීම කාර්යක්ෂම විය හැකිය. අපි හැම විටම ට්රැකර් දත්ත ගබඩාවෙන් පීසීරියා ඇණවුම් ඉවත් කරමු. ඒ අතරම, ඇණවුමක් ලබා ගැනීම සඳහා, එය වැටෙන්නේ කුමන පීසීරියාවටද යන්න එතරම් වැදගත් නොවේ, මෙම ඇණවුම කුමන සේවාදායකයා විසින් සිදු කළේද යන්න වඩා වැදගත් වේ. සහ එහි තේරුම සේවාලාභියා පිළිබඳ දර්ශකය අවශ්ය වේ. ඇණවුමට සම්බන්ධ මුද්‍රිත කුවිතාන්සියේ හෝ ප්‍රසාද ප්‍රවර්ධනවල හැඳුනුම්පත ඇණවුම් වගුවේ ගබඩා කිරීම ට්‍රැකර්ට අවශ්‍ය නොවේ. මෙම තොරතුරු අපගේ ට්රැකර් සේවාවට උනන්දුවක් නොදක්වයි. පොදු මොනොලිතික් දත්ත සමුදායක් තුළ, වගු සියලු පරිශීලකයින් අතර සම්මුතියක් පමණක් විය හැකිය. මෙය මුල් ගැටළු වලින් එකකි.

විය. මුල් ගෘහ නිර්මාණ ශිල්පය වූයේ:

ඩෝඩෝ IS ගෘහ නිර්මාණ ශිල්පයේ ඉතිහාසය: පසුපස කාර්යාල මාර්ගය

වෙනම ක්‍රියාවලි වලට වෙන් කිරීමෙන් පසුව පවා, බොහෝ කේත පදනම විවිධ සේවාවන් සඳහා පොදු විය. පාලකයන්ට පහළින් ඇති සියල්ල තනි වූ අතර එකම ගබඩාවේ ජීවත් විය. අපි පොදු වගු තැබූ පොදු සේවා ක්‍රම, ගබඩාවන්, පොදු පදනමක් භාවිතා කළෙමු.

ට්රැකර් බෑම

ට්රැකර් සමඟ ඇති ප්රධාන ගැටළුව වන්නේ දත්ත විවිධ දත්ත සමුදායන් අතර සමමුහුර්ත විය යුතුය. මෙය Auth සේවාවේ වෙන්වීමෙන් එහි ප්‍රධාන වෙනස ද වේ, ඇණවුම සහ එහි තත්ත්වය වෙනස් විය හැකි අතර විවිධ සේවාවන්හි ප්‍රදර්ශනය කළ යුතුය.

අපි ආපනශාලා පිරික්සීමේදී ඇණවුමක් පිළිගනිමු (මෙය සේවාවකි), එය "පිළිගත්" තත්වයේ දත්ත ගබඩාවේ ගබඩා කර ඇත. ඊට පසු, ඔහු ට්රැකර් වෙත යා යුතුය, එහිදී ඔහු තවත් කිහිප වතාවක් ඔහුගේ තත්ත්වය වෙනස් කරනු ඇත: "මුළුතැන්ගෙය" සිට "ඇසුරුම්" දක්වා. ඒ සමගම, මුදල් අයකැමි හෝ Shift කළමනාකරු අතුරුමුහුණත වෙතින් සමහර බාහිර බලපෑම් ඇණවුම සමඟ සිදු විය හැක. මම වගුවේ ඇති විස්තරය සමඟ ඇණවුම් තත්ත්වයන් ලබා දෙන්නෙමි:

ඩෝඩෝ IS ගෘහ නිර්මාණ ශිල්පයේ ඉතිහාසය: පසුපස කාර්යාල මාර්ගය
ඇණවුම් තත්ත්වයන් වෙනස් කිරීමේ යෝජනා ක්‍රමය මේ වගේ ය:

ඩෝඩෝ IS ගෘහ නිර්මාණ ශිල්පයේ ඉතිහාසය: පසුපස කාර්යාල මාර්ගය

විවිධ පද්ධති අතර තත්ත්‍වය වෙනස් වේ. තවද මෙහි ට්රැකර් යනු දත්ත වසා ඇති අවසාන පද්ධතියක් නොවේ. එවැනි අවස්ථාවක කොටස් කිරීම සඳහා හැකි ප්රවේශයන් කිහිපයක් අපි දැක ඇත්තෙමු:

  1. අපි සියලුම ඇණවුම් ක්‍රියා එක් සේවාවක් තුළ සංකේන්ද්‍රණය කරමු. අපගේ නඩුවේදී, මෙම විකල්පය ඇණවුම සමඟ වැඩ කිරීමට වැඩි සේවාවක් අවශ්ය වේ. අපි එය නතර කළහොත්, අපට දෙවන මොනොලිත් ලැබෙනු ඇත. අපි ගැටලුව විසඳන්නේ නැහැ.
  2. එක් පද්ධතියක් තවත් පද්ධතියකට ඇමතුමක් ලබා දෙයි. දෙවන විකල්පය දැනටමත් වඩාත් සිත්ගන්නා සුළුය. නමුත් එය සමඟ, ඇමතුම් දාම කළ හැකිය (කැස්කැඩින් අසාර්ථකත්වය), සංරචකවල සම්බන්ධතාවය වැඩි ය, එය කළමනාකරණය කිරීම වඩා දුෂ්කර ය.
  3. අපි සිදුවීම් සංවිධානය කරන අතර, සෑම සේවාවක්ම මෙම සිදුවීම් හරහා තවත් අයෙකු සමඟ සන්නිවේදනය කරයි. එහි ප්රතිඵලයක් වශයෙන්, එය තෝරා ගන්නා ලද තුන්වන විකල්පය වූ අතර, ඒ අනුව සියලු සේවාවන් එකිනෙකා සමඟ සිදුවීම් හුවමාරු කර ගැනීමට පටන් ගනී.

අපි තුන්වන විකල්පය තෝරා ගැනීමෙන් අදහස් වන්නේ ට්රැකර්ට තමන්ගේම දත්ත සමුදායක් ඇති බවත්, ඇණවුමේ එක් එක් වෙනස් කිරීම සඳහා, එය මේ පිළිබඳව සිදුවීමක් යවනු ඇති බවත්, අනෙකුත් සේවාවන්ට දායක වන අතර එය ප්‍රධාන දත්ත ගබඩාවටද වැටෙන බවත්ය. මෙය සිදු කිරීම සඳහා, අපට සේවා අතර පණිවිඩ බෙදා හැරීම සහතික කරන යම් සේවාවක් අවශ්‍ය විය.

ඒ වන විට, අප සතුව දැනටමත් RabbitMQ තොගයේ තිබුණි, එබැවින් එය පණිවිඩ තැරැව්කරුවෙකු ලෙස භාවිතා කිරීමට අවසන් තීරණය විය. රූප සටහන මඟින් ආපනශාලා මුදල් අයකැමි වෙතින් ට්‍රැකර් හරහා ඇණවුමක් සංක්‍රමණය වන ආකාරය පෙන්වයි, එහිදී එය කළමනාකරුගේ ඇණවුම් අතුරුමුහුණතෙහි එහි තත්ත්වය සහ දර්ශනය වෙනස් කරයි. වෙන්න:

ඩෝඩෝ IS ගෘහ නිර්මාණ ශිල්පයේ ඉතිහාසය: පසුපස කාර්යාල මාර්ගය

පියවරෙන් පියවර මාර්ගය ඇණවුම් කරන්න
ඇණවුම් මාර්ගය ආරම්භ වන්නේ ඇණවුම් මූලාශ්‍ර සේවා වලින් එකකිනි. ආපනශාලාවේ මුදල් අයකැමියා මෙන්න:

  1. පිටවීමේදී, ඇණවුම සම්පූර්ණයෙන්ම සූදානම් වන අතර, එය ට්රැකර් වෙත යැවීමට කාලයයි. ට්‍රැකර් ග්‍රාහකත්වය ලබා ඇති ඉසව්ව විසි කරනු ලැබේ.
  2. ට්‍රැකර්, තමාටම ඇණවුමක් පිළිගෙන, එය තමන්ගේම දත්ත ගබඩාවට සුරකින අතර, සිදුවීම “ට්‍රැකර් විසින් පිළිගත් ඇණවුම” බවට පත් කර එය RMQ වෙත යවයි.
  3. ඇණවුමකට සිදුවීම් බස් රථයට දැනටමත් දායක වී ඇති හසුරුවන්නන් කිහිප දෙනෙක් සිටිති. අප සඳහා, මොනොලිතික් පදනමක් සමඟ සමමුහුර්තකරණය කරන තැනැත්තා වැදගත් වේ.
  4. හසුරුවන්නාට සිදුවීමක් ලැබේ, ඒ සඳහා වැදගත් වන දත්ත එයින් තෝරා ගනී: අපගේ නඩුවේදී, මෙය "ට්රැකර් විසින් පිළිගත්" ඇණවුමේ තත්ත්වය වන අතර ප්‍රධාන දත්ත ගබඩාවේ එහි ඇණවුම් ආයතනය යාවත්කාලීන කරයි.

යමෙකුට මොනොලිතික් වගු ඇණවුම් වලින් ඇණවුමක් අවශ්‍ය නම්, ඔබට එය එතැනින් ද කියවිය හැකිය. උදාහරණයක් ලෙස, Shift Manager හි ඇණවුම් අතුරු මුහුණතට මෙය අවශ්‍ය වේ:

ඩෝඩෝ IS ගෘහ නිර්මාණ ශිල්පයේ ඉතිහාසය: පසුපස කාර්යාල මාර්ගය

අනෙකුත් සියලුම සේවාවන්ට ඒවා තමන් සඳහා භාවිතා කිරීමට ට්‍රැකර් වෙතින් සිදුවීම් ඇණවුම් කිරීමට දායක විය හැක.

ටික වේලාවකට පසු ඇණවුම ක්‍රියාත්මක වන්නේ නම්, එහි තත්ත්වය පළමුව එහි දත්ත ගබඩාවේ (ට්‍රැකර් දත්ත ගබඩාව) වෙනස් වන අතර පසුව "OrderIn Progress" සිදුවීම වහාම ජනනය වේ. එය RMQ වෙතද ඇතුල් වේ, එය ඒකලිතික දත්ත සමුදායක් තුළ සමමුහුර්ත කර වෙනත් සේවාවන් වෙත ලබා දෙයි. මාර්ගයේ විවිධ ගැටළු ඇති විය හැකිය, ඒවා පිළිබඳ වැඩි විස්තර ෂෙන්යා පෙෂ්කොව්ගේ වාර්තාවෙන් සොයාගත හැකිය ට්‍රැකර් හි අවසාන අනුකූලතාව ක්‍රියාත්මක කිරීමේ විස්තර ගැන.

Auth සහ Tracker හි වෙනස්කම් වලින් පසු අවසාන ගෘහ නිර්මාණ ශිල්පය

ඩෝඩෝ IS ගෘහ නිර්මාණ ශිල්පයේ ඉතිහාසය: පසුපස කාර්යාල මාර්ගය

අතරමැදි ප්රතිඵලය සාරාංශ කිරීම: මුලදී, Dodo IS පද්ධතියේ වසර නවයක ඉතිහාසය එක් ලිපියකට ඇසුරුම් කිරීමට මට අදහසක් තිබුණි. පරිණාමයේ අවධීන් ගැන ඉක්මනින් හා සරලව කතා කිරීමට මට අවශ්‍ය විය. කෙසේ වෙතත්, ද්රව්යය සඳහා වාඩි වී සිටින විට, සෑම දෙයක්ම පෙනෙන ආකාරයට වඩා සංකීර්ණ හා රසවත් බව මට වැටහුණි.

එවැනි ද්‍රව්‍යවල ප්‍රතිලාභ (හෝ එහි නොමැතිකම) පිළිබිඹු කරමින්, සම්පූර්ණ සිදුවීම් වංශකථා, සවිස්තරාත්මක අතීතාවර්ජන සහ මගේ අතීත තීරණ විශ්ලේෂණයකින් තොරව අඛණ්ඩ සංවර්ධනයක් කළ නොහැකි බව මම නිගමනය කළෙමි.

අපගේ මාර්ගය ගැන ඉගෙන ගැනීම ඔබට ප්‍රයෝජනවත් සහ රසවත් යැයි මම බලාපොරොත්තු වෙමි. දැන් මම ඊළඟ ලිපියේ විස්තර කළ යුතු ඩෝඩෝ අයිඑස් පද්ධතියේ කුමන කොටසද යන්න තේරීමකට මුහුණ දී සිටිමි: අදහස් හෝ ඡන්දය ලියන්න.

සමීක්ෂණයට සහභාගී විය හැක්කේ ලියාපදිංචි පරිශීලකයින්ට පමණි. පුරන්නකරුණාකර.

ඔබ මීළඟ ලිපියෙන් දැන ගැනීමට කැමති Dodo 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 දෙනෙක් ඡන්දය දීමෙන් වැළකී සිටියහ.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න