සේවා දැලක් යනු කුමක්ද?

නැවතත් ආයුබෝවන්!.. පාඨමාලාව ආරම්භ කිරීමට ආසන්නයේ "මෘදුකාංග ගෘහ නිර්මාණ ශිල්පියා" අපි තවත් ප්රයෝජනවත් පරිවර්තනයක් සූදානම් කර ඇත.

සේවා දැලක් යනු කුමක්ද?

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

Google, IBM සහ Lyft වෙතින් වන Istio දැනට වඩාත්ම ප්‍රසිද්ධ සේවා දැල් ගෘහ නිර්මාණ ශිල්පයයි. Google හි මුලින් සංවර්ධනය කරන ලද Kubernetes, දැන් Istio විසින් සහාය දක්වන එකම බහාලුම් වාදක රාමුව වේ. වෙළෙන්දෝ Istio හි වාණිජමය වශයෙන් සහාය දක්වන අනුවාද නිර්මාණය කිරීමට උත්සාහ කරති. විවෘත මූලාශ්‍ර ව්‍යාපෘතියට ඔවුන්ට ගෙන ආ හැකි අලුත් දේවල් මොනවාදැයි බැලීම සිත්ගන්නා කරුණක් වනු ඇත.

කෙසේ වෙතත්, අනෙකුත් සේවා දැල් ක්‍රියාත්මක කිරීම් සංවර්ධනය වෙමින් පවතින බැවින් Istio එකම විකල්පය නොවේ. රටාව sidecar proxy Buoyant, HashiCorp, Solo.io සහ වෙනත් ව්යාපෘති මගින් විනිශ්චය කළ හැකි පරිදි, වඩාත්ම ජනප්රිය ක්රියාත්මක කිරීම වේ. විකල්ප ගෘහනිර්මාණ ද ඇත: Netflix තාක්‍ෂණ මෙවලම් කට්ටලය යනු රිබන්, හිස්ටරික්ස්, යුරේකා, ආචායස් පුස්තකාල මෙන්ම Azure Service Fabric වැනි වේදිකා හරහා සේවා දැල් ක්‍රියාකාරිත්වය ක්‍රියාත්මක කරන එක් ප්‍රවේශයකි.

Service Mesh හට සේවා සංරචක සහ කාර්යයන් සඳහා තමන්ගේම පාරිභාෂිතය ද ඇත:

  • බහාලුම් වාද්‍ය වෘන්ද රාමුව. යෙදුම් යටිතල ව්‍යුහයට වැඩි වැඩියෙන් බහාලුම් එකතු වන බැවින්, බහාලුම් අධීක්ෂණය සහ කළමනාකරණය සඳහා වෙනම මෙවලමක් අවශ්‍ය වේ - බහාලුම් වාද්‍ය රාමුවක්. Kubernetes මෙම ස්ථානය තදින් අල්ලාගෙන ඇති අතර, එහි ප්‍රධාන තරඟකරුවන් වන Docker Swarm සහ Mesosphere DC/OS පවා විකල්පයක් ලෙස Kubernetes සමඟ ඒකාබද්ධ කිරීම ඉදිරිපත් කරයි.
  • සේවා සහ අවස්ථා (Kubernetes Pods). උදාහරණයක් යනු ක්ෂුද්‍ර සේවාවක තනි ධාවන පිටපතකි. සමහර විට එක් අවස්ථාවක් එක් බහාලුම් වේ. Kubernetes හි, උදාහරණයක් පොඩ් නමින් හැඳින්වෙන ස්වාධීන බහාලුම් කුඩා කණ්ඩායමකින් සමන්විත වේ. සේවාලාභීන් කලාතුරකින් හෝ පොඩ් එකකට සෘජුවම ප්‍රවේශ වේ; බොහෝ විට, ඔවුන් සමාන, පරිමාණය කළ හැකි සහ දෝෂ-ඉවසිය හැකි අවස්ථා හෝ කරල් (ප්‍රතිරූප) සමූහයක් වන සේවාවකට ප්‍රවේශ වේ.
  • සයිඩ්කාර් ප්‍රොක්සි. Sidecar Proxy තනි අවස්ථාවක් හෝ පොඩ් එකක් සමඟ ක්‍රියා කරයි. Sidecar Proxy හි ලක්ෂ්‍යය වන්නේ එය ක්‍රියා කරන කන්ටේනරයෙන් එන මාර්ග හෝ ප්‍රොක්සි ගමනාගමනය සහ නැවත ගමනාගමනය කිරීමයි. Sidecar වෙනත් Sidecar Proxies සමඟ අන්තර්ක්‍රියා කරන අතර වාද්‍ය වෘන්ද රාමුවක් මගින් කළමනාකරණය කෙරේ. බොහෝ සේවා දැල් ක්‍රියාත්මක කිරීම් සයිඩ්කාර් ප්‍රොක්සි භාවිතා කරන්නේ අවස්ථාවක් හෝ පොඩ් එකක් තුළ සහ ඉන් පිටත සියලු ගමනාගමනය බාධා කිරීමට සහ කළමනාකරණය කිරීමට ය.
  • සේවා සොයාගැනීම. අවස්ථාවක් වෙනත් සේවාවක් සමඟ සන්නිවේදනය කිරීමට අවශ්‍ය වූ විට, එය අනෙක් සේවාවේ සෞඛ්‍ය සම්පන්න සහ පවතින අවස්ථාවක් සොයා ගැනීමට (සොයා ගැනීමට) අවශ්‍ය වේ. සාමාන්‍යයෙන්, එම අවස්ථාව DNS සෙවීම් සිදු කරයි. බහාලුම් වාද්‍ය වෘන්ද රාමුව ඉල්ලීම් ලැබීමට සූදානම් වන අවස්ථා ලැයිස්තුවක් පවත්වා ගෙන යන අතර DNS විමසුම් සඳහා අතුරු මුහුණතක් සපයයි.
  • පැටවීම තුලනය. බොහෝ බහාලුම් වාද්‍ය වෘන්ද රාමු 4 ස්ථරයේ (ප්‍රවාහනය) බර තුලනය සපයයි. Service Mesh, ඇල්ගොරිතම වලින් පොහොසත් සහ ගමනාගමනය කළමණාකරණය කිරීමේදී වඩාත් ඵලදායී වන ස්ථරය 7 (යෙදුම් මට්ටම) හිදී වඩාත් සංකීර්ණ බර තුලනය ක්‍රියාත්මක කරයි. API භාවිතයෙන් පැටවුම් තුලනය කිරීමේ සැකසුම් වෙනස් කළ හැක, ඔබට නිල්-කොළ හෝ කැනරි යෙදවීම් සංවිධානය කිරීමට ඉඩ සලසයි.
  • ගුප්ත කේතනය. Service Mesh හට ඉල්ලීම් සහ ප්‍රතිචාර සංකේතනය කර විකේතනය කළ හැක, සේවා වලින් මෙම බර ඉවත් කරයි. සේවා Mesh හට නව සම්බන්ධතා නිර්මාණය කිරීම සඳහා මිල අධික ගණනය කිරීමේ අවශ්‍යතාවය අඩු කරමින් පවතින අඛණ්ඩ සම්බන්ධතා ප්‍රමුඛත්වය දීමෙන් හෝ නැවත භාවිතා කිරීමෙන් කාර්ය සාධනය වැඩිදියුණු කළ හැක. රථවාහන සංකේතනය වඩාත් පොදු ක්රියාත්මක කිරීම වේ අන්‍යෝන්‍ය TLS (mTLS), පොදු යතුරු යටිතල ව්‍යුහයක් (PKI) Sidecar Proxy විසින් භාවිතා කිරීම සඳහා සහතික සහ යතුරු ජනනය කර බෙදා හරිනු ලැබේ.
  • සත්යාපනය සහ අවසරය. සේවා දැල් යෙදුමට පිටතින් හෝ ඇතුළතින් කරන ලද ඉල්ලීම් අනුමත කිරීමට සහ සත්‍යාපනය කිරීමට හැකි අතර, අවස්ථා වෙත වලංගු ඉල්ලීම් පමණක් යැවීම.
  • ස්වයංක්‍රීය වසා දැමීමේ රටා සහාය. සේවා Mesh සහාය දක්වයි ස්වයංක්‍රීය වසා දැමීමේ රටාව, එය සෞඛ්‍යයට අහිතකර අවස්ථා හුදකලා කර පසුව අවශ්‍ය වූ විට ක්‍රමයෙන් ඒවා සෞඛ්‍ය සම්පන්න අවස්ථා සංචිතයට ආපසු ලබා දෙයි.

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

සේවා දැලක් යනු කුමක්ද?
සේවා දැලෙහි පාලන තලය සයිඩ්කාර් ප්‍රොක්සි සහ දත්ත තලය අතර වින්‍යාසය බෙදා හරියි.

සේවා දැල් ගෘහ නිර්මාණ ශිල්පය බොහෝ විට බහාලුම් සහ ක්ෂුද්‍ර සේවා භාවිතයෙන් සංකීර්ණ මෙහෙයුම් ගැටළු විසඳීමට භාවිතා කරයි. ක්ෂේත්‍රයේ පුරෝගාමීන් ක්ෂුද්ර සේවා ලොව පුරා මිලියන ගණනක් පරිශීලකයින්ට ස්ථාවර සේවා සපයන Lyft, Netflix සහ Twitter වැනි සමාගම් වේ. (Netflix මුහුණ දුන් වාස්තු විද්‍යාත්මක අභියෝග කිහිපයක් පිළිබඳ සවිස්තරාත්මක බැල්මක් මෙන්න.) අඩු ඉල්ලුමක් ඇති යෙදුම් සඳහා, සරල ගෘහ නිර්මාණ ශිල්පය ප්රමාණවත් වනු ඇත.

සේවා දැල් ගෘහ නිර්මාණ ශිල්පය සියලු යෙදුම් මෙහෙයුම් සහ බෙදා හැරීමේ ගැටළු වලට පිළිතුර කිසිදාක විය නොහැක. ගෘහ නිර්මාණ ශිල්පීන්ට සහ සංවර්ධකයින්ට විශාල මෙවලම් ගබඩාවක් ඇති අතර, ඔවුන්ගෙන් එක් අයෙකු පමණක් මිටියක් වන අතර, බොහෝ කාර්යයන් අතර, විසඳිය යුත්තේ එකක් පමණි - මිටි නියපොතු. NGINX වෙතින් Microservices Reference Architectureඋදාහරණයක් ලෙස, ක්ෂුද්‍ර සේවා භාවිතයෙන් ගැටළු විසඳීම සඳහා අඛණ්ඩ ප්‍රවේශයක් සපයන විවිධ මාදිලි කිහිපයක් ඇතුළත් වේ.

NGINX, බහාලුම්, Kubernetes, සහ වාස්තුවිද්‍යාත්මක ප්‍රවේශයක් ලෙස microservices වැනි Service Mesh ගෘහනිර්මාණ ශිල්පය තුළ එකට එකතු වන මූලද්‍රව්‍ය සේවා නොවන දැල් ක්‍රියාත්මක කිරීමේදී සමානව ඵලදායී විය හැක. උදාහරණයක් ලෙස, Istio සම්පූර්ණ සේවා දැල් ගෘහ නිර්මාණ ශිල්පයක් ලෙස නිර්මාණය කර ඇත, නමුත් එහි modularity යනු සංවර්ධකයින්ට අවශ්‍ය තාක්‍ෂණික සංරචක පමණක් තෝරා ක්‍රියාත්මක කළ හැකිය. මෙය මනසේ තබාගෙන, සේවා දැල් සංකල්පය පිළිබඳ පැහැදිලි අවබෝධයක් වර්ධනය කර ගැනීම වැදගත් වේ, ඔබට එය ඔබගේ යෙදුම තුළ සම්පූර්ණයෙන්ම ක්‍රියාත්මක කිරීමට හැකි වනු ඇතැයි ඔබට විශ්වාස නැති වුවද.

මොඩියුලර් මොනොලිත් සහ ඩීඩීඩී

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

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