Quarkus හි ස්වදේශීය සම්පාදනය - එය වැදගත් වන්නේ ඇයි

ආයුබෝවන් සියල්ලටම! ක්වාර්කස් පිළිබඳ අපගේ ලිපි මාලාවේ දෙවන සටහන මෙයයි - අද අපි දේශීය සම්පාදනය ගැන කතා කරමු.

Quarkus හි ස්වදේශීය සම්පාදනය - එය වැදගත් වන්නේ ඇයි

ක්වාර්කස් සඳහා සකස් කරන ලද ජාවා තොගයකි කුබර්නෙට්ස්. මෙහි නිසැකව ම තවත් බොහෝ දේ කිරීමට තිබෙන අතර, JVM ප්‍රශස්ත කිරීම සහ රාමු ගණනාවක් ඇතුළු බොහෝ පැති සම්බන්ධයෙන් අපි හොඳ වැඩ රාශියක් කර ඇත්තෙමු. සංවර්ධකයින්ගේ වැඩි උනන්දුවක් ඇති කර ඇති Quarkus හි එක් ලක්ෂණයක් වන්නේ C සහ C++ ට සමාන විශේෂිත මෙහෙයුම් පද්ධතියක් සඳහා (ඊනියා "ස්වදේශීය සම්පාදනය") ජාවා කේතය ක්‍රියාත්මක කළ හැකි ගොනු බවට පත් කිරීම සඳහා වන එහි විස්තීර්ණ, බාධාවකින් තොර ප්‍රවේශයකි. සාමාන්යයෙන් ගොඩනැගීම, පරීක්ෂා කිරීම සහ යෙදවීමේ චක්රයක් අවසානයේ සිදු වේ.

සහ ස්වදේශීය සම්පාදනය වැදගත් වන අතර, අපි පහත දැක්වෙන පරිදි, Quarkus ඉතාමත්ම සුලභ ජාවා යන්ත්‍රය වන OpenJDK Hotspot මත හොඳින් ක්‍රියාත්මක වන බව සටහන් කළ යුතුය, අපි තොගය පුරා ක්‍රියාත්මක කර ඇති කාර්ය සාධන වැඩිදියුණු කිරීම්වලට ස්තූතිවන්ත වන්න. එබැවින්, ස්වදේශීය සම්පාදනය අවශ්ය හෝ අවශ්ය පරිදි භාවිතා කළ හැකි අතිරේක ප්රසාද දීමනාවක් ලෙස සැලකිය යුතුය. ඇත්ත වශයෙන්ම, ස්වදේශීය රූප සම්බන්ධයෙන් ක්වාර්කස් OpenJDK මත දැඩි ලෙස රඳා පවතී. සංවර්ධකයින් විසින් උණුසුම් ලෙස පිළිගත් dev මාදිලිය, Hotspot හි ක්‍රියාත්මක කරන ලද ගතික කේත ක්‍රියාත්මක කිරීමේ උසස් හැකියාවන් හේතුවෙන් වෙනස්කම් ක්ෂණිකව පාහේ පරීක්ෂා කිරීම සහතික කරයි. මීට අමතරව, ස්වදේශීය GraalVM රූප නිර්මාණය කිරීමේදී, OpenJDK පන්තියේ පුස්තකාලය සහ HotSpot හැකියාවන් භාවිතා වේ.

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

අපි පැහැදිලිවම පටන් ගනිමු: Red Hat ව්‍යාපෘති සංවර්ධනයේදී JVM, තොග සහ රාමු ප්‍රශස්ත කිරීමේ පුළුල් අත්දැකීමක් ඇත. ජේබොස්, ඇතුළුව:

  • වේදිකාවේ වලාකුළෙහි වැඩ කරන පළමු යෙදුම් සේවාදායකය RedHat OpenShift.
  • පරිගණක මත ධාවනය සඳහා පළමු යෙදුම් සේවාදායකය Plug PC.
  • ධාවනය වන පළමු යෙදුම් සේවාදායකය රාබල්බී පී.
  • උපාංග මත ක්‍රියාත්මක වන ව්‍යාපෘති මාලාවක් ඇන්ඩ්රොයිඩ්.

අපි වසර ගණනාවක් තිස්සේ ක්ලවුඩ් තුළ සහ සම්පත් සීමා සහිත උපාංග (කියවන්න: IoT) මත Java යෙදුම් ධාවනය කිරීමේ අභියෝග සමඟ කටයුතු කර ඇති අතර කාර්ය සාධනය සහ මතක ප්‍රශස්තකරණය අනුව JVM වෙතින් උපරිම ප්‍රයෝජන ගැනීමට ඉගෙන ගෙන ඇත. වෙනත් බොහෝ අය මෙන්, අපි දිගු කලක් තිස්සේ ජාවා යෙදුම්වල ස්වදේශීය සම්පාදනය සමඟ වැඩ කරමින් සිටිමු ජී.සී.ජේ., කුරුල්ලා, එක්සෙල්සියර් JET සහ පවා ඩැල්වික් සහ මෙම ප්‍රවේශයේ වාසි සහ අවාසි ගැන අපි හොඳින් දනිමු (උදාහරණයක් ලෙස, "එක් වරක් ගොඩනඟන්න - ඕනෑම තැනක ධාවනය කරන්න" යන විශ්වීයත්වය අතර තෝරා ගැනීමේ උභතෝකෝටිකය සහ සම්පාදනය කරන ලද යෙදුම් කුඩා වන අතර වේගයෙන් ධාවනය වේ).

මෙම වාසි සහ අවාසි සලකා බැලීම වැදගත් වන්නේ ඇයි? සමහර අවස්ථාවන්හිදී ඔවුන්ගේ අනුපාතය තීරණාත්මක වන බැවිනි:

  • උදාහරණයක් ලෙස, සේවාදායක රහිත/සිදුවීම් මත පදනම් වූ පරිසරයක සේවාවන් සරලව ආරම්භ කළ යුතුය සිදුවීම් වලට ප්‍රතිචාර දැක්වීමට කාලය ලබා ගැනීම සඳහා (දැඩි හෝ මෘදු) තථ්‍ය කාලය තුළ. දිගුකාලීන අඛණ්ඩ සේවා මෙන් නොව, මෙහි සීතල ආරම්භයේ කාලසීමාව ඉල්ලීමකට ප්‍රතිචාර දැක්වීමේ කාලය විවේචනාත්මක ලෙස වැඩි කරයි. JVM ආරම්භ කිරීමට තවමත් සැලකිය යුතු කාලයක් ගත වන අතර, මෙය සමහර අවස්ථාවලදී පිරිසිදු දෘඪාංග ක්‍රම මගින් අඩු කළ හැකි වුවද, තත්පරයක සහ මිලි තත්පර 5 අතර වෙනස ජීවිතය සහ මරණය අතර වෙනස විය හැක. ඔව්, මෙහිදී ඔබට ජාවා යන්ත්‍රවල උණුසුම් සංචිතයක් නිර්මාණය කිරීම සමඟ සෙල්ලම් කළ හැකිය (උදාහරණයක් ලෙස, අපි එය කළෙමු OpenWhisk Knative වෙත ගෙනයාම), නමුත් ලෝඩ් ස්කේල් ලෙස ඉල්ලීම් සැකසීමට ප්‍රමාණවත් තරම් JVM ඇති බවට මෙයම සහතික නොවේ. ආර්ථික දෘෂ්ටි කෝණයකින්, මෙය බොහෝ විට වඩාත්ම නිවැරදි විකල්පය නොවේ.
  • තවද, බොහෝ විට මතු වන තවත් අංගයක් තිබේ: බහුකාර්ය. JVM ඔවුන්ගේ හැකියාවන් අනුව මෙහෙයුම් පද්ධති වලට ඉතා සමීප වී ඇතත්, ලිනක්ස් හි අපට හුරුපුරුදු දේ - හුදකලා ක්‍රියාවලීන් කිරීමට ඔවුන්ට තවමත් හැකියාවක් නැත. එමනිසා, එක් ත්‍රෙඩ් එකක් අසාර්ථක වීමෙන් මුළු ජාවා යන්ත්‍රයම පහතට ඇද දැමිය හැකිය. අසාර්ථක වීමේ ප්‍රතිවිපාක අවම කිරීම සඳහා එක් එක් පරිශීලකයාගේ යෙදුම සඳහා වෙනම JVM එකක් කැප කිරීමෙන් බොහෝ අය මෙම අඩුපාඩුව මඟහරවා ගැනීමට උත්සාහ කරති. මෙය තරමක් තාර්කික ය, නමුත් පරිමාණය සමඟ හොඳින් නොගැලපේ.
  • මීට අමතරව, වලාකුළු-නැඹුරු යෙදුම් සඳහා, වැදගත් දර්ශකයක් වන්නේ සත්කාරකයේ සේවා ඝනත්වයයි. ක්‍රමවේදයට මාරුවීම යෙදුම් සාධක 12 ක්, microservices සහ Kubernetes එක් යෙදුමකට ජාවා යන්ත්‍ර ගණන වැඩි කරයි. එනම්, එක් අතකින්, මේ සියල්ල ප්රත්යාස්ථතාව සහ විශ්වසනීයත්වය සපයයි, නමුත් ඒ සමගම සේවා අනුව මූලික මතක පරිභෝජනය ද වැඩි වන අතර, මෙම වියදම් සමහරක් සෑම විටම දැඩි ලෙස අවශ්ය නොවේ. ස්ථිතිකව සම්පාදනය කරන ලද ක්‍රියාත්මක කළ හැකි ලිපිගොනු මෙහි ප්‍රතිලාභ ලබන්නේ පහත් මට්ටමේ මළ-කේත ඉවත් කිරීම වැනි විවිධ ප්‍රශස්තිකරණ ශිල්පීය ක්‍රම නිසා, අවසාන රූපයේ ඇතුළත් වන්නේ සේවාව සැබවින්ම භාවිතා කරන රාමු වල (JDK ද ඇතුළුව) එම කොටස් පමණි. එබැවින්, ක්වාර්කස් ස්වදේශීය සම්පාදනය මඟින් ආරක්‍ෂාවට හානියක් නොවන පරිදි ධාරකය මත සේවා අවස්ථා ඝන ලෙස ස්ථානගත කිරීමට උපකාරී වේ.

ඇත්ත වශයෙන්ම, ක්වාර්කස් ව්‍යාපෘතියේ සහභාගිවන්නන්ගේ දෘෂ්ටි කෝණයෙන් ස්වදේශීය සම්පාදනය සාධාරණීකරණය කිරීම තේරුම් ගැනීමට ඉහත තර්ක දැනටමත් ප්‍රමාණවත්ය. කෙසේ වෙතත්, තවත්, තාක්ෂණික නොවන, නමුත් වැදගත් හේතුවක් තිබේ: මෑත වසරවලදී, බොහෝ ක්‍රමලේඛකයින් සහ සංවර්ධන සමාගම් නව ක්‍රමලේඛන භාෂාවන්ට පක්ෂව ජාවා අතහැර දමා ඇත, ජාවා එහි JVM, ස්ටැක් සහ රාමු ද වී ඇතැයි විශ්වාස කරයි. මතක කුසගින්න, ඉතා මන්දගාමී, ආදිය.

කෙසේ වෙතත්, ඕනෑම ගැටළුවක් විසඳීම සඳහා එකම මෙවලම භාවිතා කිරීමේ පුරුද්ද වේ එය සැමවිටම නිවැරදි නොවේ. සමහර වෙලාවට අඩියක් පස්සට අරන් වෙන දෙයක් හොයන එක හොඳයි. ක්වාර්කස් මිනිසුන්ට විරාමයක් තබා සිතන්නට සලස්වන්නේ නම්, එය සමස්ත ජාවා පරිසර පද්ධතියටම හොඳය. ක්වාර්කස් වඩාත් කාර්යක්ෂම යෙදුම් ගොඩනඟන්නේ කෙසේද යන්න පිළිබඳ නව්‍ය දර්ශනයක් නියෝජනය කරයි, සර්වර් රහිත වැනි නව යෙදුම් ගෘහ නිර්මාණ ශිල්පයට ජාවා වඩාත් අදාළ කරයි. මීට අමතරව, එහි විස්තීර්ණභාවය හේතුවෙන්, Quarkus හට Java extensions හි සම්පූර්ණ පරිසර පද්ධතියක් ලැබෙනු ඇතැයි බලාපොරොත්තු වන අතර, කොටුවෙන් පිටත යෙදුම්වල ස්වදේශීය සම්පාදනයට සහාය වන රාමු සංඛ්‍යාව සැලකිය යුතු ලෙස වැඩි කරයි.

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

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