Нативна компилация Π² Quarkus – Π·Π°Ρ‰ΠΎ Π΅ Π²Π°ΠΆΠ½Π°

Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅ всички! Π’ΠΎΠ²Π° Π΅ Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° публикация Π² Π½Π°ΡˆΠ°Ρ‚Π° сСрия Π·Π° Quarkus - днСс Ρ‰Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π·Π° Π½Π°Ρ‚ΠΈΠ²Π½Π° компилация.

Нативна компилация Π² Quarkus – Π·Π°Ρ‰ΠΎ Π΅ Π²Π°ΠΆΠ½Π°

ΠšΠ²Π°Ρ€ΠΊΡƒΡ Π΅ Java стСк, ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π΅Π½ Π·Π° Kubernetes. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ със сигурност ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π·Π° Π²ΡŠΡ€ΡˆΠ΅Π½Π΅ Ρ‚ΡƒΠΊ, Π½ΠΈΠ΅ ΡΠ²ΡŠΡ€ΡˆΠΈΡ…ΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±Ρ€Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΠΌΠ½ΠΎΠ³ΠΎ аспСкти, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° JVM ΠΈ Ρ€Π΅Π΄ΠΈΡ†Π° Ρ€Π°ΠΌΠΊΠΈ. Π•Π΄Π½Π° ΠΎΡ‚ характСристикитС Π½Π° Quarkus, която ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡Π΅ повишСн интСрСс ΠΎΡ‚ страна Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅, Π΅ нСговият цялостСн, Π±Π΅Π·ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π·Π° ΠΏΡ€Π΅Π²Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π° Java ΠΊΠΎΠ΄ Π² изпълними Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π° систСма (Ρ‚Π°ΠΊΠ° Π½Π°Ρ€Π΅Ρ‡Π΅Π½Π°Ρ‚Π° β€žΠ½Π°Ρ‚ΠΈΠ²Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΡβ€œ), ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° C ΠΈ C++, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Ρ‚Π°ΠΊΠ°Π²Π° компилация ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ сС случва Π² края Π½Π° Ρ†ΠΈΠΊΡŠΠ» Π½Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅, тСстванС ΠΈ внСдряванС.

И Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π½Π°Ρ‚ΠΈΠ²Π½Π°Ρ‚Π° компилация Π΅ Π²Π°ΠΆΠ½Π°, ΠΊΠ°ΠΊΡ‚ΠΎ Ρ‰Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ, трябва Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ, Ρ‡Π΅ Quarkus Ρ€Π°Π±ΠΎΡ‚ΠΈ наистина Π΄ΠΎΠ±Ρ€Π΅ Π½Π° Π½Π°ΠΉ-разпространСната Java машина, OpenJDK Hotspot, Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° подобрСнията Π² производитСлността, ΠΊΠΎΠΈΡ‚ΠΎ Π²Π½Π΅Π΄Ρ€ΠΈΡ…ΠΌΠ΅ Π² цСлия стСк. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ Π½Π°Ρ‚ΠΈΠ²Π½Π°Ρ‚Π° компилация трябва Π΄Π° сС Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°Ρ‚ΠΎ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ бонус, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ нСобходимост. Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚ Quarkus Ρ€Π°Π·Ρ‡ΠΈΡ‚Π° Π΄ΠΎ голяма стСпСн Π½Π° OpenJDK, ΠΊΠΎΠ³Π°Ρ‚ΠΎ става Π²ΡŠΠΏΡ€ΠΎΡ Π·Π° СстСствСни изобраТСния. А Ρ€Π΅ΠΆΠΈΠΌΡŠΡ‚ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, Ρ‚ΠΎΠΏΠ»ΠΎ ΠΏΡ€ΠΈΠ΅Ρ‚ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅, осигурява ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΌΠΈΠ³Π½ΠΎΠ²Π΅Π½ΠΎ тСстванС Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ‚Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ изпълнСниС Π½Π° ΠΊΠΎΠ΄, Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈ Π² Hotspot. Π’ допълнСниС, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ собствСни изобраТСния Π½Π° GraalVM, сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° с класовС OpenJDK ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° HotSpot.

Π’Π°ΠΊΠ° Ρ‡Π΅ Π·Π°Ρ‰ΠΎ сС Π½ΡƒΠΆΠ΄Π°Π΅Ρ‚Π΅ ΠΎΡ‚ Π½Π°Ρ‚ΠΈΠ²Π½Π° компилация, Π°ΠΊΠΎ всичко Π²Π΅Ρ‡Π΅ Π΅ ΠΈΠ΄Π΅Π°Π»Π½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ΠΎ? Π©Π΅ сС ΠΎΠΏΠΈΡ‚Π°ΠΌΠ΅ Π΄Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π½Π° Ρ‚ΠΎΠ·ΠΈ Π²ΡŠΠΏΡ€ΠΎΡ ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ.

НСка Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ с ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΡ‚ΠΎ: Red Hat ΠΈΠΌΠ° Π±ΠΎΠ³Π°Ρ‚ ΠΎΠΏΠΈΡ‚ Π² ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° JVM, стСковС ΠΈ Ρ€Π°ΠΌΠΊΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ JBossΠ²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ:

  • ΠŸΡŠΡ€Π²ΠΈΡΡ‚ ΡΡŠΡ€Π²ΡŠΡ€ Π·Π° прилоТСния, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² ΠΎΠ±Π»Π°ΠΊΠ° Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Red Hat OpenShift.
  • ΠŸΡŠΡ€Π²ΠΈΡΡ‚ ΡΡŠΡ€Π²ΡŠΡ€ Π·Π° прилоТСния Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° ΠΊΠΎΠΌΠΏΡŽΡ‚Ρ€ΠΈ Π’ΠΊΠ»ΡŽΡ‡Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€.
  • ΠŸΡŠΡ€Π²ΠΈΡΡ‚ ΡΡŠΡ€Π²ΡŠΡ€ Π·Π° прилоТСния, Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Raspberry Pi.
  • Набор ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ Π½Π° устройства Android.

БправямС сС с прСдизвикатСлствата Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Java прилоТСния Π² ΠΎΠ±Π»Π°ΠΊΠ° ΠΈ Π½Π° устройства с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈ рСсурси (Π΄Π° сС Ρ‡Π΅Ρ‚Π΅: IoT) Π² ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΈ сС Π½Π°ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ Π΄Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°ΠΌΠ΅ максимума ΠΎΡ‚ JVM ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° производитСлността ΠΈ оптимизацията Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°. Подобно Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ, Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ с СстСствСна компилация Π½Π° Java прилоТСния ΠΎΡ‚ дълго Π²Ρ€Π΅ΠΌΠ΅ G.C.J., ΠŸΡ‚ΠΈΡ‡ΠΈΡΡ‚, Excelsior JET ΠΈ Π΄ΠΎΡ€ΠΈ Dalvik ΠΈ Π½ΠΈΠ΅ смС Π΄ΠΎΠ±Ρ€Π΅ Π·Π°ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ с прСдимствата ΠΈ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈΡ‚Π΅ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄ΠΈΠ»Π΅ΠΌΠ°Ρ‚Π° ΠΏΡ€ΠΈ ΠΈΠ·Π±ΠΎΡ€Π° ΠΌΠ΅ΠΆΠ΄Ρƒ унивСрсалността Π½Π° β€žΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ вСднъТ – стартиранС Π½Π°Π²ΡΡΠΊΡŠΠ΄Π΅β€œ ΠΈ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ прилоТСния са ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΈ ΠΈ работят ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ).

Π—Π°Ρ‰ΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° Π²Π·Π΅ΠΌΠ΅ΠΌ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ Ρ‚Π΅Π·ΠΈ плюсовС ΠΈ минуси? Π—Π°Ρ‰ΠΎΡ‚ΠΎ Π² някои ситуации тяхното ΡΡŠΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ става Ρ€Π΅ΡˆΠ°Π²Π°Ρ‰ΠΎ:

  • НапримСр Π² срСди Π±Π΅Π· ΡΡŠΡ€Π²ΡŠΡ€/управлявани ΠΎΡ‚ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ услугитС просто трябва Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ‚ Π² (Ρ‚Π²ΡŠΡ€Π΄ΠΎ ΠΈΠ»ΠΈ ΠΌΠ΅ΠΊΠΎ) Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅, Π·Π° Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅ Π΄Π° Ρ€Π΅Π°Π³ΠΈΡ€Π°Ρ‚Π΅ Π½Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΡΡ‚Π°. Π—Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ Π΄ΡŠΠ»Π³ΠΎΡ‚Ρ€Π°ΠΉΠ½ΠΈΡ‚Π΅ постоянни услуги, Ρ‚ΡƒΠΊ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° студСн старт ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° заявка. JVM всС ΠΎΡ‰Π΅ ΠΎΡ‚Π½Π΅ΠΌΠ° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° стартиранС ΠΈ Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Π½Π°ΠΌΠ°Π»Π΅Π½ΠΎ Π² някои случаи Ρ‡Ρ€Π΅Π· чисто Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π½ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ, Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π΅Π΄Π½Π° сСкунда ΠΈ 5 милисСкунди ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΆΠΈΠ²ΠΎΡ‚Π° ΠΈ ΡΠΌΡŠΡ€Ρ‚Ρ‚Π°. Π”Π°, Ρ‚ΡƒΠΊ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° си ΠΏΠΎΠΈΠ³Ρ€Π°Π΅Ρ‚Π΅ със ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π³ΠΎΡ€Π΅Ρ‰ Ρ€Π΅Π·Π΅Ρ€Π² ΠΎΡ‚ Java машини (ΠΊΠΎΠ΅Ρ‚ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π°ΠΏΡ€Π°Π²ΠΈΡ…ΠΌΠ΅ с прСнасянС Π½Π° OpenWhisk към Knative), Π½ΠΎ Ρ‚ΠΎΠ²Π° само ΠΏΠΎ сСбС си Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°, Ρ‡Π΅ Ρ‰Π΅ ΠΈΠΌΠ° Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ JVM Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° заявки, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ сС ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°. И ΠΎΡ‚ икономичСска Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π±ΠΈ Π½Π΅ Π΅ Π½Π°ΠΉ-правилният Π²Π°Ρ€ΠΈΠ°Π½Ρ‚.
  • ОсвСн Ρ‚ΠΎΠ²Π° ΠΈΠΌΠ° Π΄Ρ€ΡƒΠ³ аспСкт, ΠΊΠΎΠΉΡ‚ΠΎ чСсто изскача: многонаСмност. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ„Π°ΠΊΡ‚Π°, Ρ‡Π΅ JVM са сС Π΄ΠΎΠ±Π»ΠΈΠΆΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ систСми ΠΏΠΎ своитС Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ, Ρ‚Π΅ всС ΠΎΡ‰Π΅ Π½Π΅ са Π² ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π΄Π° правят Ρ‚ΠΎΠ²Π°, с ΠΊΠΎΠ΅Ρ‚ΠΎ смС свикнали Π² Linux - ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° процСси. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ ΠΏΠΎΠ²Ρ€Π΅Π΄Π°Ρ‚Π° Π½Π° Π΅Π΄Π½Π° нишка ΠΌΠΎΠΆΠ΅ Π΄Π° сринС цялата Java машина. Много Ρ…ΠΎΡ€Π° сС ΠΎΠΏΠΈΡ‚Π²Π°Ρ‚ Π΄Π° заобиколят Ρ‚ΠΎΠ·ΠΈ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΠΊ, ΠΊΠ°Ρ‚ΠΎ отдСлят ΠΎΡ‚Π΄Π΅Π»Π½Π° JVM Π·Π° всяко потрСбитСлско ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π·Π° Π΄Π° свСдат Π΄ΠΎ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ послСдствията ΠΎΡ‚ ΠΏΠΎΠ²Ρ€Π΅Π΄Π°. Π’ΠΎΠ²Π° Π΅ съвсСм Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ, Π½ΠΎ Π½Π΅ сС вписва Π΄ΠΎΠ±Ρ€Π΅ Π² ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ.
  • Π’ допълнСниС, Π·Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ прилоТСния Π²Π°ΠΆΠ΅Π½ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π» Π΅ ΠΏΠ»ΡŠΡ‚Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° услугитС Π½Π° хоста. ΠŸΡ€Π΅Ρ…ΠΎΠ΄ към мСтодология 12 Ρ„Π°ΠΊΡ‚ΠΎΡ€Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, микроуслуги ΠΈ Kubernetes ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π° броя Π½Π° Java машини Π·Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ВоСст, ΠΎΡ‚ Π΅Π΄Π½Π° страна, всичко Ρ‚ΠΎΠ²Π° осигурява Сластичност ΠΈ надСТдност, Π½ΠΎ Π² ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ сС ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π° ΠΈ консумацията Π½Π° Π±Π°Π·ΠΎΠ²Π° ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΎΡ‚ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° обслуТванС, ΠΊΠ°Ρ‚ΠΎ някои ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈ Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ са строго Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ. Π‘Ρ‚Π°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ изпълними Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ сС Π²ΡŠΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ‚ΡƒΠΊ ΠΏΠΎΡ€Π°Π΄ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Π·Π° оптимизация, ΠΊΠ°Ρ‚ΠΎ Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΌΡŠΡ€Ρ‚ΡŠΠ² ΠΊΠΎΠ΄ Π½Π° ниско Π½ΠΈΠ²ΠΎ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΊΡ€Π°ΠΉΠ½ΠΎΡ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π²Π° само ΠΎΠ½Π΅Π·ΠΈ части ΠΎΡ‚ Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ самия JDK), ΠΊΠΎΠΈΡ‚ΠΎ услугата дСйствитСлно ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ собствСната компилация Π½Π° Quarkus ΠΏΠΎΠΌΠ°Π³Π° Π·Π° Π³ΡŠΡΡ‚ΠΎ Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅ Π½Π° СкзСмпляри Π½Π° услуги Π½Π° хоста, Π±Π΅Π· Π΄Π° сС ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚ΠΈΡ€Π° сигурността.

Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚ Π³ΠΎΡ€Π½ΠΈΡ‚Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ Π²Π΅Ρ‡Π΅ са Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΈ, Π·Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΎΠΏΡ€Π°Π²Π΄Π°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π½Π°Ρ‚ΠΈΠ²Π½Π°Ρ‚Π° компилация ΠΎΡ‚ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° участницитС Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Quarkus. Има ΠΎΠ±Π°Ρ‡Π΅ Π΄Ρ€ΡƒΠ³Π°, нСтСхничСска, Π½ΠΎ ΡΡŠΡ‰ΠΎ Π²Π°ΠΆΠ½Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°: ΠΏΡ€Π΅Π· послСднитС Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ програмисти ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° изоставиха Java Π² ΠΏΠΎΠ»Π·Π° Π½Π° Π½ΠΎΠ²ΠΈ Π΅Π·ΠΈΡ†ΠΈ Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅, вярвайки, Ρ‡Π΅ Java, Π·Π°Π΅Π΄Π½ΠΎ с Π½Π΅ΠΉΠ½ΠΈΡ‚Π΅ JVM, стСковС ΠΈ Ρ€Π°ΠΌΠΊΠΈ, Π΅ станала Ρ‚Π²ΡŠΡ€Π΄Π΅ Π³Π»Π°Π΄Π΅Π½ Π·Π° ΠΏΠ°ΠΌΠ΅Ρ‚, Ρ‚Π²ΡŠΡ€Π΄Π΅ Π±Π°Π²Π΅Π½ ΠΈ Ρ‚.Π½.

Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, Π½Π°Π²ΠΈΠΊΡŠΡ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ инструмСнт Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° всСки ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π΅ Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ. Понякога Π΅ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΊΡ€Π°Ρ‡ΠΊΠ° Π½Π°Π·Π°Π΄ ΠΈ Π΄Π° ΠΏΠΎΡ‚ΡŠΡ€ΡΠΈΡ‚Π΅ Π½Π΅Ρ‰ΠΎ Π΄Ρ€ΡƒΠ³ΠΎ. И Π°ΠΊΠΎ Quarkus ΠΊΠ°Ρ€Π° Ρ…ΠΎΡ€Π°Ρ‚Π° Π΄Π° спрат ΠΈ Π΄Π° сС замислят, Ρ‚ΠΎΠ²Π° Π΅ Π΄ΠΎΠ±Ρ€Π΅ Π·Π° цялата СкосистСма Π½Π° Java. Quarkus прСдставлява ΠΈΠ½ΠΎΠ²Π°Ρ‚ΠΈΠ²Π΅Π½ ΠΏΠΎΠ³Π»Π΅Π΄ Π²ΡŠΡ€Ρ…Ρƒ Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ Π΄Π° сС ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ ΠΏΠΎ-Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΈ прилоТСния, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈ Java ΠΏΠΎ-подходяща Π·Π° Π½ΠΎΠ²ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ Π½Π° прилоТСния ΠΊΠ°Ρ‚ΠΎ Π±Π΅Π·ΡΡŠΡ€Π²ΡŠΡ€Π½ΠΈ. ОсвСн Ρ‚ΠΎΠ²Π°, ΠΏΠΎΡ€Π°Π΄ΠΈ своята Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚, сС надявамС, Ρ‡Π΅ Quarkus Ρ‰Π΅ ΠΈΠΌΠ° цяла СкосистСма ΠΎΡ‚ Java Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°ΠΉΠΊΠΈ броя Π½Π° Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ Π½Π°Ρ‚ΠΈΠ²Π½Π° компилация Π² прилоТСния извън кутията.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€