Microservices - අනුවාදවල සංයුක්ත පිපිරීමක්

හෙලෝ, හබ්ර්! මම ඔබේ අවධානයට ඉදිරිපත් කරමි ලිපියේ කතුවරයාගේ පරිවර්තනය Microservices - අනුවාදවල සංයුක්ත පිපිරීම.
Microservices - අනුවාදවල සංයුක්ත පිපිරීමක්
තොරතුරු තාක්‍ෂණ ලෝකය ක්‍රමක්‍රමයෙන් ක්ෂුද්‍ර සේවා සහ Kubernetes වැනි මෙවලම් දෙසට ගමන් කරන මොහොතක, එක ගැටලුවක් පමණක් වඩ වඩාත් කැපී පෙනේ. මේ ප්රශ්නය - ඒකාබද්ධ පිපිරීම microservice අනුවාද. කෙසේ වෙතත්, තොරතුරු තාක්ෂණ ප්‍රජාව විශ්වාස කරන්නේ වර්තමාන තත්ත්වය ඊට වඩා බෙහෙවින් යහපත් බවයි "යැපුම් නිරය" පෙර පරම්පරාවේ තාක්ෂණයන්. කෙසේ වෙතත්, ක්ෂුද්‍ර සේවා සංස්කරණය කිරීම ඉතා සංකීර්ණ ගැටළුවකි. මේ සඳහා එක් සාක්ෂියක් වැනි ලිපි විය හැකිය "මගේ මොනොලිත් එක මට ආපහු දෙන්න".

මෙම පාඨය කියවීමෙන් ඔබට තවමත් ගැටලුව නොතේරෙන්නේ නම්, මට පැහැදිලි කිරීමට ඉඩ දෙන්න. ඔබේ නිෂ්පාදනය ක්ෂුද්‍ර සේවා 10කින් සමන්විත යැයි සිතමු. දැන් අපි හිතමු මේ microservices එකකටම අලුත් version 1ක් නිකුත් වෙනවා කියලා. 1 අනුවාදයක් පමණි - මෙය ඉතා සුළු හා නොවැදගත් කරුණක් බව අප සැමට එකඟ විය හැකි යැයි මම බලාපොරොත්තු වෙමි. කෙසේ වෙතත්, දැන් අපි අපගේ නිෂ්පාදනය දෙස තවත් බලමු. එක් එක් සංරචකයේ එක් නව අනුවාදයක් සමඟින්, අපට දැන් 2^10 - හෝ අපගේ නිෂ්පාදනය සම්පාදනය කළ හැකි ආකාරය පිළිබඳ විකෘති කිරීම් 1024ක් ඇත.

තවමත් යම් වරදවා වටහාගැනීමක් තිබේ නම්, මම ගණිතය බිඳ දමමි. එබැවින් අප සතුව ක්ෂුද්‍ර සේවා 10 ක් ඇත, ඒ සෑම එකක්ම එක් යාවත්කාලීනයක් ලබා ගනී. එනම්, අපට එක් එක් ක්ෂුද්‍ර සේවා සඳහා (පැරණි හෝ නව) හැකි අනුවාද 2 ක් ලැබේ. දැන්, එක් එක් නිෂ්පාදන සංරචක සඳහා, අපට මෙම අනුවාද දෙකෙන් එකක් භාවිතා කළ හැකිය. ගණිතමය වශයෙන්, එය අපට ඉලක්කම් 10 ක ද්විමය අංකයක් තිබුණා හා සමාන වේ. උදාහරණයක් ලෙස, 1 නව අනුවාදය බවත්, 0 යනු පැරණි අනුවාදය බවත් කියමු - එවිට හැකි එක් විපර්යාසයක් 1001000000 ලෙස දැක්විය හැකිය - එහිදී 1 වන සහ 4 වන සංරචක යාවත්කාලීන කර ඇති අතර අනෙක් සියල්ල එසේ නොවේ. ගණිතයෙන් අපි දන්නවා ඉලක්කම් 10 ක ද්විමය අංකයකට 2^10 හෝ 1024 අගයන් තිබිය හැකි බව. එනම්, අප ගනුදෙනු කරන අංකයේ පරිමාණය තහවුරු කර ඇත.

අපි අපගේ තර්කය තවදුරටත් කරගෙන යමු - අපට ක්ෂුද්‍ර සේවා 100 ක් සහ එක් එක් අනුවාද 10 ක් තිබේ නම් කුමක් සිදුවේද? සමස්ත තත්වය තරමක් අප්‍රසන්න වේ - අපට දැන් ප්‍රගමන 10^100 ක් ඇත - එය විශාල සංඛ්‍යාවකි. කෙසේ වෙතත්, මම මෙම තත්වය මේ ආකාරයෙන් ලේබල් කිරීමට කැමැත්තෙමි, මන්ද දැන් අපි තවදුරටත් “කුබර්නෙට්ස්” වැනි වචන පිටුපස සැඟවී නොසිටින නමුත් ගැටලුවට මුහුණ දී සිටින බැවිනි.

ඇයි මම මේ ප්‍රශ්නයට මෙතරම් වශී වෙන්නේ? මක්නිසාද යත්, මීට පෙර NLP සහ AI ලෝකයේ වැඩ කර ඇති නිසා, අපි මීට වසර 5-6 කට පමණ පෙර ඒකාබද්ධ පිපිරීමේ ගැටලුව ගැන බොහෝ දේ සාකච්ඡා කළෙමු. අනුවාද වෙනුවට පමණක් අපට තනි වචන තිබූ අතර නිෂ්පාදන වෙනුවට අපට වාක්‍ය සහ ඡේද තිබුණි. NLP සහ AI හි ගැටළු බොහෝ දුරට නොවිසඳී තිබුණද, පසුගිය වසර කිහිපය තුළ සැලකිය යුතු ප්‍රගතියක් ලබා ඇති බව පිළිගත යුතුය. (මගේ මතය අනුව, ප්රගතියක් ලබා ගත හැකියоකර්මාන්තයේ නියැලෙන අය යන්ත්‍ර ඉගෙනීම කෙරෙහි මඳක් අඩු අවධානයක් සහ වෙනත් ශිල්පීය ක්‍රම කෙරෙහි තව ටිකක් අවධානය යොමු කරන්නේ නම් වඩා හොඳය - නමුත් මෙය දැනටමත් මාතෘකාවෙන් බැහැර ය).

අපි DevOps සහ microservices ලෝකයට ආපසු යමු. කුන්ස්ට්කාමෙරාවේ අලියෙකු ලෙස වෙස්වලාගත් අපි විශාල ගැටලුවකට මුහුණ දී සිටිමු - මන්ද මට බොහෝ විට ඇසෙන්නේ “කුබර්නෙට් සහ සුක්කානම ගන්න, එවිට සියල්ල හොඳින් වනු ඇත!” යන්නයි. නමුත් නැත, සියල්ල එලෙසම තැබුවහොත් සියල්ල යහපත් නොවනු ඇත. එපමණක් නොව, මෙම ගැටලුව සඳහා විශ්ලේෂණාත්මක විසඳුමක් එහි සංකීර්ණත්වය නිසා පිළිගත නොහැකි බව පෙනේ. NLP හි මෙන්, අපි මුලින්ම මෙම ගැටලුවට ප්‍රවේශ විය යුත්තේ සෙවුම් විෂය පථය පටු කිරීමෙනි - මෙම අවස්ථාවේ දී, යල් පැන ගිය ප්‍රතිවර්තන ඉවත් කිරීමෙන්.

උදව් විය හැකි එක් දෙයක් නම් මම ගිය වසරේ ලියූ දෙයක් සේවාදායකයින් සඳහා පළ කරන ලද අනුවාද අතර අවම වෙනසක් පවත්වා ගැනීමේ අවශ්‍යතාවය ගැන. හොඳින් සැලසුම් කරන ලද CI/CD ක්‍රියාවලියක් විචලනය අඩු කිරීමට බෙහෙවින් උපකාරී වන බව සැලකිල්ලට ගැනීම වැදගත්ය. කෙසේ වෙතත්, CI/CD සමඟ පවතින වත්මන් තත්ත්වය ගිණුම්කරණය සහ කොටස් ලුහුබැඳීම සඳහා අමතර මෙවලම් නොමැතිව ප්‍රගමනය පිළිබඳ ගැටළුව විසඳීමට ප්‍රමාණවත් නොවේ.

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

එවැනි අත්හදා බැලීම් පද්ධතියක් මේ වගේ විය හැකිය:

  1. සංවර්ධකයින් පරීක්ෂණ ලියයි (මෙය තීරණාත්මක අදියරකි - එසේ නොමැතිනම් අපට ඇගයීම් නිර්ණායකයක් නොමැති නිසා - එය යන්ත්‍ර ඉගෙනීමේදී දත්ත ලේබල් කිරීම වැනිය).
  2. සෑම සංරචකයකටම (ව්‍යාපෘතියට) තමන්ගේම CI පද්ධතියක් ලැබේ - මෙම ක්‍රියාවලිය දැන් හොඳින් වර්ධනය වී ඇති අතර තනි සංරචකයක් සඳහා CI පද්ධතියක් නිර්මාණය කිරීමේ ගැටළුව බොහෝ දුරට විසඳා ඇත.
  3. "Smart integration system" විවිධ CI පද්ධතිවල ප්‍රතිඵල එකතු කර සංරචක ව්‍යාපෘති අවසන් නිෂ්පාදනයට එක්රැස් කරයි, පරීක්ෂණ පවත්වා අවසානයේ පවතින සංරචක සහ අවදානම් සාධක මත පදනම්ව අපේක්ෂිත නිෂ්පාදන ක්‍රියාකාරීත්වය ලබා ගැනීමේ කෙටිම මාර්ගය ගණනය කරයි. යාවත්කාලීන කළ නොහැකි නම්, මෙම පද්ධතිය දැනට පවතින සංරචක සහ ඒවායින් දෝෂය ඇති කරන දේ පිළිබඳව සංවර්ධකයින්ට දැනුම් දෙයි. නැවත වරක්, පරීක්ෂණ පද්ධතිය මෙහි තීරනාත්මක වැදගත්කමක් දරයි - ඒකාබද්ධ පද්ධතිය පරීක්ෂණ ඇගයීමේ නිර්ණායකයක් ලෙස භාවිතා කරන බැවින්.
  4. CD පද්ධතිය, පසුව Smart Integration System වෙතින් දත්ත ලබාගෙන සෘජුවම යාවත්කාලීන කිරීම සිදු කරයි. මෙම අදියර චක්රය අවසන් කරයි.

සාරාංශගත කිරීම සඳහා, මට දැන් ඇති ලොකුම ගැටලුවක් වන්නේ නිෂ්පාදනයකට විවිධ සංරචක සම්බන්ධ කරන සහ සමස්තයක් ලෙස නිෂ්පාදිතය එකට එකතු වී ඇති ආකාරය නිරීක්ෂණය කිරීමට ඔබට ඉඩ සලසන එවැනි "Smart Integration System" නොමැතිකමයි. මම මේ පිළිබඳ ප්‍රජාවගේ අදහස් ගැන උනන්දු වෙමි (ස්පොයිලර් - මම දැනට ව්‍යාපෘතියක වැඩ කරමින් සිටිමි රෙලිසා, එවැනි ස්මාර්ට් ඒකාබද්ධ පද්ධතියක් බවට පත් විය හැක).

මට අවසාන වශයෙන් සඳහන් කිරීමට අවශ්‍ය එක් දෙයක් නම්, මට නම්, මධ්‍යම ප්‍රමාණයේ ඕනෑම ව්‍යාපෘතියක් සඳහා මොනොලිත් පිළිගත නොහැකි බවයි. මට නම්, ඒකලිතයකට ආපසු යාමෙන් ක්‍රියාත්මක කිරීමේ කාලය සහ සංවර්ධනයේ ගුණාත්මකභාවය වේගවත් කිරීමට උත්සාහ කිරීම විශාල සංශයවාදයක් ඇති කරයි. පළමුවෙන්ම, මොනොලිත් එකකට සංරචක කළමනාකරණය කිරීමේ සමාන ගැටළුවක් ඇත - එය සමන්විත වන විවිධ පුස්තකාල අතර, කෙසේ වෙතත්, මේ සියල්ල එතරම් කැපී පෙනෙන නොවන අතර මූලික වශයෙන් සංවර්ධකයින් විසින් ගත කරන කාලය තුළ ප්‍රකාශ වේ. මොනොලිත් ගැටලුවේ ප්‍රතිවිපාකය වන්නේ කේතයේ වෙනස්කම් කිරීමට අතථ්‍ය නොහැකියාවයි - සහ අතිශය මන්දගාමී සංවර්ධන වේගය.

Microservices තත්ත්වය වැඩි දියුණු කරයි, නමුත් පසුව microservice ගෘහ නිර්මාණ ශිල්පය ඒකාබද්ධ කිරීමේ අදියරේදී ඒකාබද්ධ පිපිරීමේ ගැටලුවට මුහුණ දෙයි. ඔව්, පොදුවේ ගත් කල, අපි සංවර්ධන අදියරේ සිට ඒකාබද්ධ කිරීමේ අදියර දක්වා එකම ගැටළුව ගෙන ගොස් ඇත. කෙසේ වෙතත්, මගේ මතය අනුව, ක්ෂුද්‍ර සේවා ප්‍රවේශය තවමත් වඩා හොඳ ප්‍රතිඵල ලබා ගැනීමට හේතු වන අතර කණ්ඩායම් වේගයෙන් ප්‍රතිඵල ලබා ගනී (සමහර විට ප්‍රධාන වශයෙන් සංවර්ධන ඒකකයේ ප්‍රමාණය අඩු වීම හේතුවෙන් - හෝ කණ්ඩායම් ප්රමාණය) කෙසේ වෙතත්, මොනොලිත් සිට ක්ෂුද්‍ර සේවා වෙත මාරුවීම තවමත් ක්‍රියාවලිය ප්‍රමාණවත් ලෙස වැඩිදියුණු කර නොමැත - ක්ෂුද්‍ර සේවා අනුවාදවල සංයෝජක පිපිරීම විශාල ගැටළුවක් වන අතර අප එය විසඳන විට තත්වය වැඩිදියුණු කිරීමට අපට විශාල හැකියාවක් ඇත.

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

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