වාස්තුවිද්‍යාත්මක ශෛලියක් තෝරා ගැනීම (1 කොටස)

හෙලෝ, හබ්ර්. නව පාඨමාලා ප්‍රවාහයක් සඳහා ලියාපදිංචි වීම දැන් OTUS හි විවෘතයි "මෘදුකාංග ගෘහ නිර්මාණ ශිල්පියා". පාඨමාලාවේ ආරම්භය ආසන්නයේ, මගේ මුල් ලිපිය ඔබ සමඟ බෙදා ගැනීමට මට අවශ්‍යයි.

හැඳින්වීම

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

ඉතිහාසය ටිකක්

ඔබ සංවර්ධකයන්ගෙන් ඇසීමට උත්සාහ කරන්නේ නම්: "අපට ක්ෂුද්ර සේවා අවශ්ය වන්නේ ඇයි?", ඔබට විවිධ පිළිතුරු ලැබෙනු ඇත. ක්ෂුද්‍ර සේවා පරිමාණය වැඩි දියුණු කරන බවත්, කේතය තේරුම් ගැනීමට පහසු වන බවත්, වැරදි ඉවසීම වැඩි දියුණු කරන බවත්, සමහර විට ඔබට "ඔබේ කේතය පිරිසිදු කිරීමට" ඉඩ දෙන බව ඔබට ඇසෙනු ඇත. ක්ෂුද්‍ර සේවා බිහිවීම පිටුපස ඇති අරමුණ තේරුම් ගැනීමට ඉතිහාසය දෙස බලමු.

කෙටියෙන් කිවහොත්, අපගේ වර්තමාන අවබෝධයේ ක්ෂුද්‍ර සේවා පහත පරිදි මතු විය: 2011 දී, විවිධ සමාගම්වල වැඩ විශ්ලේෂණය කරමින් ජේම්ස් ලුවිස්, නව “ක්ෂුද්‍ර යෙදුම්” රටාවක් මතුවීම කෙරෙහි අවධානය යොමු කළේය, එය යෙදවීම වේගවත් කිරීම සම්බන්ධයෙන් SOA ප්‍රශස්ත කළේය. සේවා. ටික කලකට පසුව, 2012 දී, ගෘහ නිර්මාණ සමුළුවකදී, රටාව microservice ලෙස නම් කරන ලදී. මේ අනුව, ක්ෂුද්‍ර සේවා හඳුන්වා දීමේ මූලික අරමුණ වූයේ කුප්‍රකට ඒවා වැඩිදියුණු කිරීමයි පොළට යන්න වෙලාව හරි.

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

ඉහත සියල්ල තිබියදීත්, සංවර්ධකයින් තරමක් කුඩා සංඛ්යාවක් තවමත් "ක්ෂුද්ර සේවා" සංකල්පය නිර්වචනය කළ හැකිය. නමුත් අපි මේ ගැන ටිකක් පසුව කතා කරමු ...

මොනොලිත්

ක්ෂුද්‍ර සේවාවලට ප්‍රතිවිරුද්ධ වාස්තුවිද්‍යාත්මක විලාසය මොනොලිත් (හෝ සියල්ලෙන් එක) වේ. මොනොලිත් යනු කුමක්දැයි පැවසීම බොහෝ විට තේරුමක් නැත, එබැවින් වාස්තුවිද්‍යාත්මක ශෛලීන් තවදුරටත් වර්ධනය කිරීම ආරම්භ කළ මෙම වාස්තුවිද්‍යාත්මක ශෛලියේ අවාසි මම වහාම ලැයිස්තුගත කරමි: ප්‍රමාණය, සම්බන්ධතාවය, යෙදවීම, පරිමාණය, විශ්වසනීයත්වය සහ දෘඩතාව. පහත දැක්වෙන්නේ එක් එක් අඩුපාඩු වෙන වෙනම සලකා බැලීමටයි.

විශාලත්වය

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

සම්බන්ධය

මොනොලිත් යනු "විශාල මඩ බෝලයක්" වන අතර, එහි වෙනස්කම් අනපේක්ෂිත ප්රතිවිපාකවලට තුඩු දිය හැකිය. එක් ස්ථානයක වෙනස්කම් සිදු කිරීමෙන්, ඔබට වෙනත් ස්ථානයක මොනොලිත් වලට හානි කළ හැකිය (එම "ඔබ ඔබේ කණ සීරීමට, *@ වැටී ඇත"). මෙයට හේතුව මොනොලිතයේ ඇති සංරචක ඉතා සංකීර්ණ සහ වඩාත්ම වැදගත් ලෙස පැහැදිලි නොවන සම්බන්ධතා තිබීමයි.

යෙදවීම

ඒකලිතයක් යෙදවීම, එහි සංරචක අතර ඇති සංකීර්ණ සම්බන්ධතා හේතුවෙන්, එහිම චාරිත්රානුකූලව දිගු ක්රියාවලියකි. එවැනි චාරිත්රයක් සාමාන්යයෙන් සම්පූර්ණයෙන්ම සම්මත නොවන අතර එය "වාචිකව" සම්මත කර ඇත.

පරිමාණය

මොනොලිත් මොඩියුලවලට පරස්පර සම්පත් අවශ්‍යතා තිබිය හැකි අතර, දෘඪාංග සම්බන්ධයෙන් සම්මුතියක් ඇති කර ගැනීම අවශ්‍ය වේ. ඔබට A සහ ​​B සේවා වලින් සමන්විත monolith එකක් ඇති බව සිතන්න. Service A දෘඪ තැටියේ ප්‍රමාණයෙන් ඉල්ලා සිටින අතර B සේවාව RAM මත ඉල්ලා සිටී. මෙම අවස්ථාවේදී, මොනොලිත් ස්ථාපනය කර ඇති යන්ත්‍රය සේවා දෙකෙහිම අවශ්‍යතා සඳහා සහාය විය යුතුය, නැතහොත් ඔබට එක් සේවාවක් අතින්, කෘතිමව අක්‍රිය කිරීමට සිදුවේ.

තවත් උදාහරණයක් (වඩාත් සම්භාව්‍ය): A සේවාව B සේවාවට වඩා බෙහෙවින් ජනප්‍රියයි, එබැවින් ඔබට A සේවා 100 ක් සහ සේවා 10 ක් තිබීම අවශ්‍ය වේ. නැවතත්, විකල්ප දෙකක්: එක්කෝ අපි සම්පූර්ණ ඒකලිත 100 ක් යොදවන්නෙමු, නැතහොත් සමහරක් මත සේවා B අතින් අබල කිරීමට සිදුවේ.

විශ්වසනීයත්වය

සියලුම සේවාවන් එකට පිහිටා ඇති බැවින්, මොනොලිත් වැටේ නම්, සියලුම සේවාවන් එකවර වැටේ. ඇත්ත වශයෙන්ම, මෙය එතරම් නරක නොවිය හැකිය, අවම වශයෙන් බෙදා හරින ලද පද්ධතියක අර්ධ අසාර්ථක වීමක් සිදු නොවනු ඇත, නමුත් අනෙක් අතට, පරිශීලකයින්ගෙන් 0.001% ක් භාවිතා කරන ක්‍රියාකාරීත්වයේ දෝෂයක් හේතුවෙන්, ඔබට සියලුම පරිශීලකයින් අහිමි විය හැකිය. ඔබේ පද්ධතියේ.

උදාසීනත්වය

ඒකලිතයේ විශාලත්වය නිසා නව තාක්ෂණයන් වෙත මාරු වීමට අපහසුය. එහි ප්‍රතිඵලයක් ලෙස එම ජ්‍යෙෂ්ඨත්වයම රඳවා ගැනීම වෙනම කාර්යයකි. ව්‍යාපෘතියක් ආරම්භයේදී තෝරාගත් තාක්‍ෂණ තොගය නිෂ්පාදනයේ සංවර්ධනයට බාධා කරන අවහිරයක් බවට පත්විය හැකිය.

නිගමනය

සංරචක සහ SOA වෙත මාරු වීමෙන් මිනිසුන් මෙම ගැටළු විසඳීමට උත්සාහ කර ඇති ආකාරය ගැන අපි ඊළඟ වතාවේ කතා කරමු.

වාස්තුවිද්‍යාත්මක ශෛලියක් තෝරා ගැනීම (1 කොටස)

තවත් කියවන්න:

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

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