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

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

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

Quarkus – Ρ‚ΠΎΠ²Π° Π΅ Java стСк, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½ Π·Π° Kubernetes. И ΠΌΠ°ΠΊΠ°Ρ€ Ρ‡Π΅ Ρ‚ΡƒΠΊ всС ΠΎΡ‰Π΅ остава ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°, Π½ΠΈΠ΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΎ смС ΠΏΡ€ΠΎΡƒΡ‡ΠΈΠ»ΠΈ мноТСство аспСкти, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ оптимизацията Π½Π° JVM ΠΈ Ρ€Π΅Π΄ΠΈΡ†Π° Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ²Π΅. Π•Π΄Π½Π° ΠΎΡ‚ особСноститС Π½Π° Quarkus, която ΠΏΠΎΡ€ΠΎΠ΄ΠΈ повишСн интСрСс срСд Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅, Π΅ комплСксният бСзшСвСн ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π·Π° трансформиранС Π½Π° Java ΠΊΠΎΠ΄ Π² изпълними Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми (Ρ‚Π°ΠΊΠ° Π½Π°Ρ€Π΅Ρ‡Π΅Π½Π°Ρ‚Π° "Π½Π°Ρ‚ΠΈΠ²Π½Π° компилация"), ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° C ΠΈ C++, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Ρ‚Π°ΠΊΠ°Π²Π° компилация ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Π² края Π½Π° Ρ†ΠΈΠΊΡŠΠ»Π° Π½Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅, тСстванС ΠΈ внСдряванС.

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

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

НСка Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ с ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΡ‚ΠΎ: Red Hat ΠΏΡ€ΠΈΡ‚Π΅ΠΆΠ°Π²Π° Π±ΠΎΠ³Π°Ρ‚ ΠΎΠΏΠΈΡ‚ Π² оптимизацията Π½Π° JVM, стСковСтС ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ²Π΅Ρ‚Π΅ Π² Ρ…ΠΎΠ΄Π° Π½Π° Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° JBoss, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ:

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

НиС Π²Π΅Ρ‡Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ΄ΠΈΠ½ΠΈ сС Π·Π°Π½ΠΈΠΌΠ°Π²Π°ΠΌΠ΅ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ Π½Π° стартиранС Π½Π° Java прилоТСния Π² ΠΎΠ±Π»Π°ΠΊΠ° ΠΈ Π½Π° устройства с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈ рСсурси (Ρ‡Π΅Ρ‚ΠΈ, IoT) ΠΈ смС сС Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈ Π΄Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°ΠΌΠ΅ максимума ΠΎΡ‚ JVM ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° производитСлността ΠΈ оптимизацията Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°. ΠšΠ°ΠΊΡ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ, Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π°Π²Π½Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ с Π½Π°Ρ‚ΠΈΠ²Π½Π°Ρ‚Π° компилация Π½Π° Java прилоТСния Ρ‡Ρ€Π΅Π· GCJ, Avian, Excelsior JET ΠΈ Π΄ΠΎΡ€ΠΈ Dalvik ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ осъзнавамС ΠΏΠ»ΡŽΡΠΎΠ²Π΅Ρ‚Π΅ ΠΈ минуситС Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄ΠΈΠ»Π΅ΠΌΠ°Ρ‚Π° Π·Π° ΠΈΠ·Π±ΠΎΡ€ ΠΌΠ΅ΠΆΠ΄Ρƒ унивСрсалността Π½Π° "build once – run-anywhere" ΠΈ Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ прилоТСния ΠΈΠΌΠ°Ρ‚ ΠΏΠΎ-малък Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ сС стартират ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ).

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

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

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

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

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster