የኳርኩስ ቤተኛ ስብስብ - ለምን አስፈላጊ ነው።

ሰላም ሁላችሁም! ይህ በኳርኩስ ላይ በተከታታይ የምናቀርበው ሁለተኛው ልጥፍ ነው - ዛሬ ስለ ቤተኛ ስብስብ እንነጋገራለን ።

የኳርኩስ ቤተኛ ስብስብ - ለምን አስፈላጊ ነው።

ኩርኩስ ለ የተበጀ የጃቫ ቁልል ነው። ኩባንያቶች. በእርግጥ እዚህ ብዙ የሚሠራው ነገር ቢኖርም፣ JVMን እና በርካታ ማዕቀፎችን ማመቻቸትን ጨምሮ በብዙ ገፅታዎች ላይ ብዙ ጥሩ ስራዎችን ሰርተናል። የኳርኩስ የገንቢዎችን ፍላጎት ከሳበው አንዱ ባህሪው የጃቫ ኮድን ወደ ተፈጻሚነት ወደሚችሉ ፋይሎች ለአንድ የተወሰነ ስርዓተ ክወና (“ቤተኛ ማጠናቀር” እየተባለ የሚጠራው) ከ C እና C ++ ጋር የመቀየር አጠቃላይ እና እንከን የለሽ አቀራረብ ነው። ብዙውን ጊዜ የሚከሰተው በግንባታ፣ በሙከራ እና በማሰማራት ዑደት መጨረሻ ላይ ነው።

እና ቤተኛ ማጠናቀር አስፈላጊ ቢሆንም፣ ከታች እንደምናሳየው፣ ኳርኩስ በጣም በተለመደው የጃቫ ማሽን ኦፕንጄዲኬ ሆትስፖት ላይ በጥሩ ሁኔታ እንደሚሰራ መታወቅ አለበት፣ ይህም በጥቅሉ ውስጥ ተግባራዊ ስላደረግነው የአፈጻጸም ማሻሻያ ነው። ስለዚህ, ቤተኛ ማጠናቀር እንደ ተጨማሪ ጉርሻ እንደ አስፈላጊነቱ ወይም እንደ አስፈላጊነቱ ጥቅም ላይ ሊውል ይችላል. በእውነቱ፣ ኳርኩስ ወደ ቤተኛ ምስሎች ሲመጣ በOpenJDK ላይ በእጅጉ ይተማመናል። እና በገንቢዎች ሞቅ ያለ ተቀባይነት ያለው የዴቭ ሁነታ በሆትስፖት ውስጥ በተተገበረው ተለዋዋጭ ኮድ አፈፃፀም የላቀ ችሎታዎች ምክንያት ፈጣን ለውጦችን መሞከርን ያረጋግጣል። በተጨማሪም፣ ቤተኛ GraalVM ምስሎችን ሲፈጥሩ፣ የOpenJDK ክፍል ቤተ-መጽሐፍት እና HotSpot ችሎታዎች ጥቅም ላይ ይውላሉ።

ስለዚህ ሁሉም ነገር በትክክል የተሻሻለ ከሆነ ለምን ቤተኛ ማጠናቀር ያስፈልግዎታል? ይህንን ጥያቄ ከዚህ በታች ለመመለስ እንሞክራለን.

ግልጽ በሆነው ነገር እንጀምር፡ ቀይ ኮፍያ በፕሮጀክት ልማት ወቅት JVMsን፣ ቁልሎችን እና ማዕቀፎችን የማሳደግ ልምድ አለው። JBossጨምሮ፡-

  • በመድረኩ ላይ በደመና ውስጥ የሚሰራ የመጀመሪያው የመተግበሪያ አገልጋይ Red Hat OpenShift.
  • በኮምፒተር ላይ ለመስራት የመጀመሪያው መተግበሪያ አገልጋይ ፒሲ ሰካ.
  • የሚሰራበት የመጀመሪያው የመተግበሪያ አገልጋይ Raspberry Pi.
  • በመሳሪያዎች ላይ የሚሰሩ የተለያዩ ፕሮጀክቶች የ Android.

ለብዙ አመታት የጃቫ አፕሊኬሽኖችን በደመና ውስጥ እና በሃብት-የተከለከሉ መሳሪያዎች (አንብብ፡ አይኦቲ) የማሄድ ተግዳሮቶችን እያስተናገድን ቆይተናል እና ከ JVM አፈጻጸም እና የማስታወስ ማመቻቸት ምርጡን ለማግኘት ተምረናል። ልክ እንደሌሎች ብዙ፣ ከጃቫ አፕሊኬሽኖች ቤተኛ ማጠናቀር ጋር ለረጅም ጊዜ ስንሰራ ቆይተናል ጂ.ሲ.ጄ., አዊን, ኤክሴልሲየር ጄት እና እንዲያውም ዳልቪክ እና የዚህን አሰራር ጥቅሞች እና ጉዳቶች ጠንቅቀን እናውቃለን (ለምሳሌ, "አንድ ጊዜ መገንባት - በየትኛውም ቦታ መሮጥ" በሚለው ዓለም አቀፋዊነት መካከል የመምረጥ ችግር እና የተጠናቀሩ አፕሊኬሽኖች ያነሱ እና በፍጥነት የሚሰሩ ናቸው).

እነዚህን ጥቅሞች እና ጉዳቶች ግምት ውስጥ ማስገባት ለምን አስፈላጊ ነው? ምክንያቱም በአንዳንድ ሁኔታዎች ጥምርታቸው ወሳኝ ይሆናል፡-

  • ለምሳሌ፣ አገልጋይ በሌለው/በክስተት በሚመሩ አካባቢዎች ውስጥ አገልግሎቶች በቀላሉ መጀመር አለባቸው ለክስተቶች ምላሽ ለመስጠት ጊዜ ለማግኘት (በከባድ ወይም ለስላሳ) በእውነተኛ ጊዜ። ከረጅም ጊዜ ዘላቂ አገልግሎቶች በተለየ፣ እዚህ ቀዝቃዛ ጅምር የሚቆይበት ጊዜ ለጥያቄው የምላሽ ጊዜን በከፍተኛ ሁኔታ ይጨምራል። JVM ለመጀመር አሁንም ከፍተኛ መጠን ያለው ጊዜ ይወስዳል, እና ይህ በአንዳንድ ሁኔታዎች በንጹህ ሃርድዌር ዘዴዎች ሊቀንስ ይችላል, በአንድ ሰከንድ እና በ 5 ሚሊሰከንዶች መካከል ያለው ልዩነት በህይወት እና በሞት መካከል ያለው ልዩነት ሊሆን ይችላል. አዎ፣ እዚህ የጃቫ ማሽኖችን ትኩስ መጠባበቂያ በመፍጠር ዙሪያ መጫወት ትችላለህ (ለምሳሌ እኛ ያደረግነው OpenWhisk ወደ Knative በማጓጓዝ ላይ), ነገር ግን ይህ በራሱ እንደ ጭነት ሚዛን ጥያቄዎችን ለማስኬድ በቂ JVMs መኖራቸውን አያረጋግጥም። እና ከኢኮኖሚያዊ እይታ አንጻር ይህ ምናልባት በጣም ትክክለኛው አማራጭ አይደለም.
  • በመቀጠል, ብዙ ጊዜ ብቅ ያለ ሌላ ገጽታ አለ: ብዙ ጊዜ. ምንም እንኳን JVM በችሎታቸው ወደ ኦፕሬቲንግ ሲስተሞች በጣም ቅርብ ቢሆኑም አሁንም በሊኑክስ ውስጥ የለመድነውን - የማግለል ሂደቶችን ማድረግ አይችሉም ። ስለዚህ, የአንድ ክር ውድቀት ሙሉውን የጃቫ ማሽን ሊያወርድ ይችላል. ብዙ ሰዎች የውድቀት መዘዞችን ለመቀነስ ለእያንዳንዱ ተጠቃሚ የተለየ JVM በመመደብ ይህንን ችግር ለመፍታት ይሞክራሉ። ይህ በጣም አመክንዮአዊ ነው, ነገር ግን ከመጠኑ ጋር በደንብ አይጣጣምም.
  • በተጨማሪም፣ ለደመና-ተኮር አፕሊኬሽኖች፣ አስፈላጊ አመላካች በአስተናጋጁ ላይ ያለው የአገልግሎት ጥግግት ነው። ወደ ዘዴ ሽግግር 12 የመተግበሪያ ምክንያቶች፣ ማይክሮ ሰርቪስ እና ኩበርኔትስ በአንድ መተግበሪያ የጃቫ ማሽኖችን ቁጥር ይጨምራል። ያም ማለት በአንድ በኩል, ይህ ሁሉ የመለጠጥ እና አስተማማኝነት ያቀርባል, ነገር ግን በተመሳሳይ ጊዜ የመሠረታዊ ማህደረ ትውስታ ፍጆታ ከአገልግሎት አንፃር ይጨምራል, እና ከእነዚህ ወጪዎች ውስጥ አንዳንዶቹ ሁልጊዜ አስፈላጊ አይደሉም. የመጨረሻው ምስል አገልግሎቱ በትክክል የሚጠቀምባቸውን የማዕቀፎችን ክፍሎች (JDKን ጨምሮ) ብቻ ሲያካትት በስታቲስቲክስ የተጠናቀሩ ተፈጻሚነት ያላቸው ፋይሎች በተለያዩ የማመቻቸት ቴክኒኮች እንደ ዝቅተኛ ደረጃ የሞተ ኮድ መጥፋት ጥቅም ያገኛሉ። ስለዚህ፣ የኳርኩስ ቤተኛ ስብስብ ደህንነትን ሳይጎዳ የአገልግሎት አጋጣሚዎችን በአስተናጋጁ ላይ ለማስቀመጥ ይረዳል።

እንደ እውነቱ ከሆነ፣ ከላይ ያሉት ክርክሮች ከኳርኩስ የፕሮጀክት ተሳታፊዎች እይታ አንጻር የአገሬውን ስብስብ ትክክለኛነት ለመረዳት ቀድሞውኑ በቂ ናቸው። ሆኖም ፣ ሌላ ፣ ቴክኒካዊ ያልሆነ ፣ ግን ደግሞ ጠቃሚ ምክንያት አለ-በቅርብ ዓመታት ውስጥ ፣ ብዙ ፕሮግራመሮች እና የልማት ኩባንያዎች ጃቫን ለአዳዲስ የፕሮግራም ቋንቋዎች በመደገፍ ጃቫ ከ JVMs ፣ ቁልል እና ማዕቀፎች ጋር በጣም ሆኗል ብለው በማመን ጃቫን ትተዋል ። የማስታወስ-ረሃብ, በጣም ቀርፋፋ, ወዘተ.

ይሁን እንጂ ማንኛውንም ችግር ለመፍታት ተመሳሳይ መሣሪያ የመጠቀም ልማድ ነው ሁልጊዜ ትክክል አይደለም. አንዳንድ ጊዜ አንድ እርምጃ ወደኋላ ወስደህ ሌላ ነገር መፈለግ የተሻለ ነው። እና ኳርኩስ ሰዎች ቆም ብለው እንዲያስቡ ካደረገ ያ ለጃቫ ሥነ-ምህዳር በሙሉ ጥሩ ነው። ኳርኩስ ይበልጥ ቀልጣፋ አፕሊኬሽኖችን እንዴት መገንባት እንደሚቻል አዲስ እይታን ይወክላል፣ ይህም ጃቫን አገልጋይ አልባ ላሉ አዳዲስ አፕሊኬሽኖች አርክቴክቸር የበለጠ ተዛማጅ ያደርገዋል። በተጨማሪም፣ በማራዘሙ ምክንያት፣ ኳርኩስ ሙሉ የጃቫ ቅጥያዎችን ስነ-ምህዳር እንደሚኖረው ተስፋ እናደርጋለን፣ ይህም ከሳጥኑ ውጪ ያሉ መተግበሪያዎችን ቤተኛ ማጠናቀርን የሚደግፉ የማዕቀፎችን ብዛት በእጅጉ ይጨምራል።

ምንጭ: hab.com

አስተያየት ያክሉ