ʻO ka hui ʻana ma Quarkus - no ke aha he mea nui

Aloha kākou! ʻO kēia ka lua o ka pou i kā mākou moʻolelo ma Quarkus - i kēia lā e kamaʻilio mākou e pili ana i ka hoʻohui ʻāina.

ʻO ka hui ʻana ma Quarkus - no ke aha he mea nui

ʻO Quarkus he waihona Java i hana ʻia no Kubernetes. ʻOiai ʻoi aku ka nui o nā mea e hana ai ma aneʻi, ua hana mākou i nā hana maikaʻi ma nā ʻano he nui, me ka hoʻonui ʻana i ka JVM a me kekahi mau frameworks. ʻO kekahi o nā hiʻohiʻona o Quarkus i hoʻonui i ka hoihoi mai nā mea hoʻomohala, ʻo ia ka hoʻololi ʻana i ka code Java i nā faila hiki ke hoʻokō ʻia no kahi ʻōnaehana hana kūikawā (i kapa ʻia ʻo "native compilation"), e like me C a me C ++, kahi e hui pū ai. ʻike pinepine ʻia ma ka hopena o kahi pōʻai o ke kūkulu ʻana, hoʻāʻo, a me ka hoʻolaha ʻana.

A ʻoiai he mea koʻikoʻi ka hui ʻōiwi maoli, e like me kā mākou e hōʻike ai ma lalo nei, pono e hoʻomaopopo ʻia ua holo maikaʻi ʻo Quarkus ma ka mīkini Java maʻamau, OpenJDK Hotspot, mahalo i ka hoʻomaikaʻi ʻana i ka hana a mākou i hoʻokō ai i loko o ka waihona. No laila, pono e noʻonoʻo ʻia ka hui ʻana ma ke ʻano he bonus hou e hiki ke hoʻohana ʻia e like me ka makemake a pono paha. ʻOiaʻiʻo, hilinaʻi nui ʻo Quarkus ma OpenJDK i ka wā e pili ana i nā kiʻi maoli. A ʻo ke ʻano dev, ʻae ʻia e nā mea hoʻomohala, e hōʻoia i ka hoʻāʻo koke ʻana i nā loli ma muli o nā mana holomua o ka hoʻokō code dynamic i hoʻokō ʻia ma Hotspot. Eia kekahi, i ka hana ʻana i nā kiʻi GraalVM maoli, hoʻohana ʻia ka waihona papa OpenJDK a me nā mana HotSpot.

No laila no ke aha ʻoe e pono ai i ka hoʻohui ʻāina inā ua hoʻopaʻa maikaʻi ʻia nā mea āpau? E ho'āʻo mākou e pane i kēia nīnau ma lalo nei.

E hoʻomaka kākou me ka mea maopopo: Loaʻa iā Red Hat ka ʻike nui i ka hoʻonui ʻana i nā JVM, stacks a me nā frameworks i ka wā o ka hoʻomohala ʻana i ka papahana. ʻO JBoss, me:

  • ʻO ke kikowaena noi mua e hana i ke ao ma ka paepae ʻO Red Hat OpenShift.
  • ʻO ke kikowaena noi mua no ka holo ʻana ma nā kamepiula Hoʻopili PC.
  • ʻO ke kikowaena noi mua e holo ai ʻOiwi Pi.
  • He laulā o nā papahana e holo ana ma nā polokalamu Android.

Ua pilikia mākou i nā pilikia o ka holo ʻana i nā polokalamu Java i ke ao a me nā mea i hoʻopaʻa ʻia i nā kumuwaiwai (heluhelu: IoT) no nā makahiki he nui a ua aʻo e loaʻa i ka mea nui loa mai ka JVM ma ke ʻano o ka hana a me ka hoʻomanaʻo hoʻomanaʻo. E like me nā mea ʻē aʻe he nui, ua hana mākou me ka hoʻopili ʻana i nā polokalamu Java no ka manawa lōʻihi ʻO G.C.J., Avian, Excelsior JET a pēlā pū ʻO Dalvik a ʻike maikaʻi mākou i nā pono a me nā pōʻino o kēia ala (no ka laʻana, ka pilikia o ke koho ʻana ma waena o ke ao holoʻokoʻa o "kūkulu hoʻokahi - holo-kahi" a me ka ʻoiaʻiʻo he liʻiliʻi a holo wikiwiki nā noi i hui ʻia).

No ke aha he mea nui e noʻonoʻo i kēia mau pono a me nā pōʻino? No ka mea, i kekahi mau kūlana, lilo ko lākou lakio i mea hoʻoholo:

  • No ka laʻana, i loko o ka serverless/event-driven environment where pono e hoʻomaka nā lawelawe i (paʻakikī a palupalu) manawa maoli i loaʻa ka manawa e pane ai i nā hanana. ʻAʻole like me nā lawelawe hoʻomau lōʻihi, eia ka lōʻihi o ka hoʻomaka anuanu e hoʻonui nui i ka manawa pane i kahi noi. He nui ka manawa o ka JVM e hoʻomaka ai, a ʻoiai hiki ke hoʻemi ʻia kēia i kekahi mau hihia e nā ʻano lako lako pono, ʻo ka ʻokoʻa ma waena o hoʻokahi kekona a me 5 milliseconds hiki ke ʻokoʻa ma waena o ke ola a me ka make. ʻAe, ma aneʻi hiki iā ʻoe ke pāʻani a puni me ka hana ʻana i kahi mālama wela o nā mīkini Java (ʻo ia hoʻi, no ka laʻana, ua hana mākou me ka lawe ʻana iā OpenWhisk iā Knative), akā ʻaʻole kēia e hōʻoiaʻiʻo i ka lawa ʻana o nā JVM e hoʻoponopono i nā noi e like me nā unahi ukana. A mai ka manaʻo hoʻokele waiwai, ʻaʻole paha kēia ka koho kūpono loa.
  • Eia kekahi, aia kekahi ʻaoʻao e ulu pinepine: multitenancy. ʻOiai ua kokoke loa nā JVM i nā ʻōnaehana hana i ko lākou hiki, ʻaʻole hiki iā lākou ke hana i nā mea a mākou i maʻa mau ai ma Linux - nā kaʻina hana hoʻokaʻawale. No laila, hiki i ka hemahema o hoʻokahi kaula ke hoʻohaʻahaʻa i ka mīkini Java holoʻokoʻa. Nui nā poʻe e hoʻāʻo e hoʻopuni i kēia drawback ma o ka hoʻolaʻa ʻana i kahi JVM ʻokoʻa no kēlā me kēia noi a kēlā me kēia mea hoʻohana i mea e hōʻemi ai i nā hopena o kahi hemahema. He kūpono kēia, akā ʻaʻole kūpono i ka scaling.
  • Eia kekahi, no nā noi kapuaʻi, kahi hōʻailona koʻikoʻi ka nui o nā lawelawe ma ka host. Ke hoʻololi i ke ʻano hana 12 mau kumu noi, nā microservices a me nā Kubernetes e hoʻonui i ka helu o nā mīkini Java no kēlā me kēia noi. ʻO ia, ma ka ʻaoʻao hoʻokahi, hāʻawi kēia mau mea i ka elasticity a me ka hilinaʻi, akā i ka manawa like ka hoʻohana ʻana i ka hoʻomanaʻo kumu ma ke ʻano o ka lawelawe, a ʻo kekahi o kēia mau lilo ʻaʻole pono mau. Loaʻa ka pōmaikaʻi o nā faila hoʻokō statically compiled ma muli o nā ʻano hana loiloi like ʻole, e like me ka haʻahaʻa haʻahaʻa haʻahaʻa make-code elimination, i ka wā i loaʻa i ke kiʻi hope nā ʻāpana o nā frameworks (me ka JDK ponoʻī) i hoʻohana maoli ʻia e ka lawelawe. No laila, kōkua ʻo Quarkus i ka hoʻopili ʻana i nā manawa lawelawe i ka mea hoʻokipa me ka ʻole o ka hoʻopalekana ʻana i ka palekana.

ʻOiaʻiʻo, ua lawa nā manaʻo i luna e hoʻomaopopo i ka hōʻoia ʻana o ka hoʻopili ʻana i nā ʻōiwi mai ka manaʻo o ka poʻe hui papahana Quarkus. Eia nō naʻe, aia kekahi kumu ʻē aʻe, ʻaʻole ʻenehana, akā kumu nui hoʻi: i nā makahiki i hala iho nei, ua haʻalele ka nui o nā polokalamu polokalamu a me nā ʻoihana hoʻomohala iā Java no ka makemake o nā ʻōlelo hoʻonohonoho hou, me ka manaʻo ua lilo ʻo Java, me kāna mau JVM, stacks a me nā frameworks. pōloli hoʻomanaʻo, lohi loa, etc.

Eia naʻe, ʻo ka maʻamau o ka hoʻohana ʻana i ka mea hana like e hoʻoponopono ai i kekahi pilikia ʻaʻole pololei i nā manawa a pau. I kekahi manawa ʻoi aku ka maikaʻi o ka hoʻi ʻana i hope a ʻimi i kahi mea ʻē aʻe. A inā hoʻomaha ka poʻe ʻo Quarkus a noʻonoʻo, a laila maikaʻi ia no ka kaiaola holoʻokoʻa Java. Hōʻike ʻo Quarkus i kahi manaʻo noʻonoʻo e pili ana i ke kūkulu ʻana i nā noi ʻoi aku ka maikaʻi, e pili ana iā Java i nā hale hana noi hou e like me serverless. Eia kekahi, ma muli o kona hoʻonui ʻia, manaʻolana ʻo Quarkus e loaʻa i kahi kaiaola holoʻokoʻa o nā hoʻonui Java, me ka hoʻonui nui ʻana i ka helu o nā frameworks e kākoʻo i ka hōʻuluʻulu ʻana i nā noi ma waho o ka pahu.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka