Π’Π°Π·ΠΈ Π³ΠΎΠ΄ΠΈΠ½Π° ΠΏΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΎ Π΄Π° ΡΠ°Π·Π²ΠΈΠ²Π°ΠΌΠ΅ ΡΠ΅ΠΌΠΈΡΠ΅ ΠΎΠΊΠΎΠ»ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅, ΠΈ . ΠΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅Π·ΠΈ ΡΠ΅ΠΌΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ ΡΠ°Π·ΠΊΠ°Π·ΡΡ Π·Π° ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Quarkus, ΠΊΠΎΠΉΡΠΎ Π²Π΅ΡΠ΅ Π΅ Π½Π° Π₯Π°Π±ΡΠ°. ΠΠ½Π΅ΡΠ½Π°ΡΠ° ΡΡΠ°ΡΠΈΡ Π΅ ΠΏΠΎΡΠ²Π΅ΡΠ΅Π½Π° Π½Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ Π½Π° "ΡΡΠ±Π°ΡΠΎΠΌΠ½Π°ΡΠ° ΡΠ²ΡΡΡ Π±ΡΡΠ·Π° Java", ΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π½Π° ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ Quarkus Π½ΠΎΡΠΈ Π² Enterprise.

Java ΠΈ JVM Π²ΡΠ΅ ΠΎΡΠ΅ ΡΠ° ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈ, Π½ΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Π±Π΅Π·ΡΡΡΠ²ΡΡΠ½ΠΈ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ ΠΎΠ±Π»Π°ΡΠ½ΠΎ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ, Java ΠΈ Π΄ΡΡΠ³ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° JVM ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π²ΡΠ΅ ΠΏΠΎ-ΡΡΠ΄ΠΊΠΎ, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π·Π°Π΅ΠΌΠ°Ρ ΡΠ²ΡΡΠ΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΡΡΡΠΎ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ Π·Π°ΡΠ΅ΠΆΠ΄Π°Ρ ΡΠ²ΡΡΠ΄Π΅ Π±Π°Π²Π½ΠΎ, ΠΊΠΎΠ΅ΡΠΎ Π³ΠΈ ΠΏΡΠ°Π²ΠΈ Π½Π΅ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠ°ΠΉΠ½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. ΠΠ° ΡΠ°ΡΡΠΈΠ΅, Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ°Π·ΠΈ ΡΠΈΡΡΠ°ΡΠΈΡ Π·Π°ΠΏΠΎΡΠ²Π° Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Quarkus.
Π‘Π²ΡΡΡ Π±ΡΡΠ·Π°ΡΠ° ΡΡΠ±Π°ΡΠΎΠΌΠ½Π° Java ΡΡΠΈΠ³Π½Π° Π΄ΠΎ Π½ΠΎΠ²ΠΎ Π½ΠΈΠ²ΠΎ!
42 ΠΈΠ·Π΄Π°Π½ΠΈΡ, 8 ΠΌΠ΅ΡΠ΅ΡΠ° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ° ΠΈ 177 Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ β Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ΡΠΎ ΠΏΡΠ΅Π· Π½ΠΎΠ΅ΠΌΠ²ΡΠΈ 2019 Π³ΠΎΠ΄ΠΈΠ½Π° , Π²Π΅ΡΡΠΈΡ, ΠΊΠΎΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π° Π²Π°ΠΆΠ½Π° Π²Π΅Ρ Π° Π² ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΡΠ°Ρ ΠΎΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ (ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΡΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ Π² ).
ΠΠ½Π΅Ρ ΡΠ΅ ΡΠ°Π·ΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΠ°ΠΊ Quarkus ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π° ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ΅ Π½Π° ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎ ΠΈ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Π΅Π΄ΠΈΠ½Π½ΠΎ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΄ΡΠΎ. Π©Π΅ Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Ρ ΠΊΡΠ°ΡΡΠΊ ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° ΠΈΡΡΠΎΡΠΈΡΡΠ°, Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π² ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ ΡΡΡΡΠΎΠΈ Π΄Π²ΠΎΠΉΠ½ΡΡΠ²Π΅Π½ΠΎΡΡΡΠ° Π½Π° ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΠΎ ΡΠ΄ΡΠΎ Π½Π° Quarkus ΠΈ ΠΊΠ°ΠΊ -ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ Π²ΡΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΎΡ ΡΠ΅Π·ΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°.
, ΠΈ -ΡΡΠ½ΠΊΡΠΈΠΈ β Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π΄Π½Π΅Ρ, ΠΊΠ°ΠΊΡΠΎ ΡΠ΅ ΠΊΠ°Π·Π²Π°, Π΅ Π½Π° Π²ΡΠ·Ρ ΠΎΠ΄. Π ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΠ±Π»Π°ΡΠ½ΠΎ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ ΡΡΠ°Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ, Π½ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ ΠΎΡΡΠ°Π½Π°Ρ Π° β ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π·Π° Java ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ serverless ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΠΎΡΡΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡ Π΄Π° ΡΠ΅ ΡΡΠΊΡΠ°ΡΠΈ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅, Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ°Π»ΠΈ ΡΠ°Π·Ρ ΠΎΠ΄Π° Π½Π° ΠΏΠ°ΠΌΠ΅Ρ ΠΈ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° ΠΈΠΌ ΠΏΠΎ-ΡΠ΄ΠΎΠ±Π½Π° ΠΈ ΠΏΡΠΈΡΡΠ½Π°. Java Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ Π΄ΠΎΠ½Π΅ΡΠ΅ Π½ΡΠΊΠΎΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π·Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΠΈ Ρ.Π½. ΠΠ±Π°ΡΠ΅, ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΡΠΌΠ°Π»Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° Java Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ Π²ΡΠ΅ ΠΎΡΠ΅ Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΠ°ΡΠΎΠ²Π° ΡΠ΅ Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Ρ ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π½ΡΠΊΠΎΠΈ ΠΎΡ Π²ΡΡΡΠ΅ΡΠ½ΠΈΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° Java, ΠΊΠΎΠΈΡΠΎ ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΎΡΡΡΠΎ ΡΠ΅ ΠΏΡΠΎΡΠ²ΡΠ²Π°Ρ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΎ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ΠΈ Java ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ, Π½Π΅ΠΊΠ° ΡΠ΅ ΠΎΠ±ΡΡΠ½Π΅ΠΌ ΠΊΡΠΌ ΠΈΡΡΠΎΡΠΈΡΡΠ°.

ΠΠΎΡΠΎΡΠΈ ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ
ΠΡ Π²Π΅ΡΡΠΈΡ 8u131, Java Π·Π°ΠΏΠΎΡΠ½Π° ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΡΡΠ΅Π· ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π²ΡΠ² ΡΡΠ½ΠΊΡΠΈΡΡΠ° ergonomics. Π ΡΠ°ΡΡΠ½ΠΎΡΡ, ΡΠ΅Π³Π° JVM Π·Π½Π°Π΅ Π½Π° ΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ½ΠΈ ΡΠ΄ΡΠ° ΡΠ°Π±ΠΎΡΠΈ ΠΈ ΠΌΠΎΠΆΠ΅ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ Π΄Π° Π½Π°ΡΡΡΠΎΠΈ ΠΏΡΠ»ΠΎΠ²Π΅ΡΠ΅ Π½Π° ΠΏΠΎΡΠΎΠΊΠΎΠ²Π΅ΡΠ΅ - ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΏΡΠ»ΠΎΠ²Π΅ΡΠ΅ fork/join. Π Π°Π·Π±ΠΈΡΠ° ΡΠ΅, ΡΠΎΠ²Π° Π΅ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π½ΠΎ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎ ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° HTTP ΡΠ΅ΡΠ²Π»Π΅ΡΠΈ ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π² Tomcat, Jetty ΠΈ Π΄Ρ. Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π°, ΡΠΎΠ²Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ Π½Π°Π·Π½Π°ΡΠΈ ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΏΠΎΡΠΎΠΊ Π·Π° Π²ΡΡΠΊΠ° Π·Π°ΡΠ²ΠΊΠ° ΠΈ ΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΠΎΡΠΎΠΊ Π΄Π° Π±Π»ΠΎΠΊΠΈΡΠ°, Π΄ΠΎΠΊΠ°ΡΠΎ ΠΎΡΠ°ΠΊΠ²Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° Π²Ρ ΠΎΠ΄/ΠΈΠ·Ρ ΠΎΠ΄, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΠ, ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈ ΡΡΠ»ΡΠ³ΠΈ. Π’ΠΎΠ΅ΡΡ, ΡΠ°Π·ΠΌΠ΅ΡΡΡ Π½Π° ΡΠ°ΠΊΠΎΠ²Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈ Π½Π΅ ΠΎΡ Π±ΡΠΎΡ Π½Π° Π½Π°Π»ΠΈΡΠ½ΠΈΡΠ΅ ΡΠ΄ΡΠ°, Π° ΠΎΡ Π±ΡΠΎΡ Π½Π° Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ Π·Π°ΡΠ²ΠΊΠΈ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ΡΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΊΠ²ΠΎΡΠΈΡΠ΅ ΠΈΠ»ΠΈ Π»ΠΈΠΌΠΈΡΠΈΡΠ΅ Π² Kubernetes ΠΎΡΠ½ΠΎΡΠ½ΠΎ Π±ΡΠΎΡ Π½Π° ΡΠ΄ΡΠ°ΡΠ° ΡΡΠΊ Π½Π΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ, ΠΈ Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° Π²ΡΠΈΡΠΊΠΎ ΡΠ΅ ΠΏΡΠΈΠΊΠ»ΡΡΠΈ Ρ ΡΡΠΎΡΠ»ΠΈΠ½Π³.
ΠΠ·ΡΠ΅ΡΠΏΠ²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°
ΠΠΎΡΠΎΡΠΈ β ΡΠΎΠ²Π° Π΅ ΠΏΠ°ΠΌΠ΅Ρ. Π Π²ΡΡΡΠ΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π΅ ΡΠ° ΠΏΠ°Π½Π°ΡΠ΅Ρ. ΠΡΠΎΡΡΠΎ Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Π΄Π° ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°ΡΠ΅ Π±ΡΠΎΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ²Π΅ΡΠ΅ ΠΈ ΡΠ°Π½ΠΎ ΠΈΠ»ΠΈ ΠΊΡΡΠ½ΠΎ ΡΠ΅ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ°ΡΠ΅ Ρ ΠΊΡΠΈΡΠΈΡΠ΅Π½ ΡΡΡΡ Π½Π° ΡΠ΅ΡΡΠΎΡΠ°ΡΠ° Π½Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½ΠΈΡΡΠ° ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ, Ρ Π΄Π΅Π³ΡΠ°Π΄Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π°ΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·Π½ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ²Π΅ ΠΈΠ»ΠΈ ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π° Ρ ΠΠ, ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡΡΠ²Π° ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅, ΠΈΠ»ΠΈ ΠΏΠΎ Π΄ΡΡΠ³ Π½Π°ΡΠΈΠ½ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·ΡΠ°Π·Ρ ΠΎΠ΄Π²Π° ΠΏΠ°ΠΌΠ΅Ρ, ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ Π²ΠΈ Π΅ Π½ΡΠΆΠ΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ Π΄Π° Π½Π°Π΄Π½ΠΈΠΊΠ½Π΅ Π² JVM ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈ ΠΊΠ°ΠΊ ΡΡ ΡΠΏΡΠ°Π²Π»ΡΠ²Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°, Π±Π΅Π· Π΄Π° ΡΠ±ΠΈΠ΅ ΡΠ°ΠΌΠ°ΡΠ° JVM (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, XX:+UseCGroupMemoryLimitForHeap). Π Π΄ΠΎΡΠΈ Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅, ΠΎΡ Java 9 Π½Π°ΡΠ°ΡΡΠΊ, JVM Π½Π°ΡΡΠΈ Π΄Π° Π²ΡΠ·ΠΏΡΠΈΠ΅ΠΌΠ° cgroups ΠΈ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ Π°Π΄Π°ΠΏΡΠΈΡΠ°, ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΎΡΡΠ°Π²Π°Ρ Π΄ΠΎΡΡΠ° ΡΠ»ΠΎΠΆΠ½Π° ΡΠ°Π±ΠΎΡΠ°.
ΠΠ²ΠΎΡΠΈ ΠΈ Π»ΠΈΠΌΠΈΡΠΈ
Π Java 11 ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° CPU ΠΊΠ²ΠΎΡΠΈ (ΠΊΠ°ΡΠΎ PreferContainerQuotaForCPUCount). Kubernetes ΡΡΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π»ΠΈΠΌΠΈΡΠΈ ΠΈ ΠΊΠ²ΠΎΡΠΈ. ΠΠ°, Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΠΈΠΌΠ° ΡΠΌΠΈΡΡΠ», Π½ΠΎ, Π°ΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΎΡΠ½ΠΎΠ²ΠΎ Π½Π°Π΄Π²ΠΈΡΠΈ Π·Π°Π΄Π°Π΄Π΅Π½Π°ΡΠ° ΠΊΠ²ΠΎΡΠ°, ΠΎΡΠ½ΠΎΠ²ΠΎ ΡΡΠΈΠ³Π°ΠΌΠ΅ Π΄ΠΎ ΡΠΎΠ²Π°, ΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡΡ β ΠΊΠ°ΠΊΡΠΎ Π² ΡΠ»ΡΡΠ°Ρ Ρ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ Java ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ β ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΠΏΠΎΡΠ΅Π΄ Π±ΡΠΎΡ Π½Π° ΡΠ΄ΡΠ°ΡΠ° ΠΈ Ρ Π½Π°Π·Π½Π°ΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΏΠΎΡΠΎΠΊ Π·Π° Π²ΡΡΠΊΠ° Π·Π°ΡΠ²ΠΊΠ°, Ρ.Π΅. ΠΏΠΎΠ»Π·Π°ΡΠ° ΠΎΡ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π΅ ΠΌΠ°Π»ΠΊΠ°.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π°ΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΊΠ²ΠΎΡΠΈ ΠΈ Π»ΠΈΠΌΠΈΡΠΈ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° Ρ
ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»Π½ΠΎ (scale-out) ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ°, ΠΊΠΎΡΡΠΎ Π΅ Π² ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° Kubernetes, ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ ΡΡΡΠΎ Π½Π΅ ΡΠ΅ ΡΠ΅ΡΠ°Π²Π° ΡΠ°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ ΡΠΈ. ΠΡΠΎΡΡΠΎ Ρ
Π°ΡΡΠΈΠΌ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ΡΡΡΡΠΈ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΈΠ»ΠΈ Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΡΡΠΈΠ³Π°ΠΌΠ΅ Π΄ΠΎ ΠΏΡΠ΅ΡΠ°Π·Ρ
ΠΎΠ΄ Π½Π° ΡΠ΅ΡΡΡΡΠΈ. Π Π°ΠΊΠΎ ΡΠΎΠ²Π° Π΅ Π²ΠΈΡΠΎΠΊΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ΅Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π² ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΎ ΠΎΠ±Π»Π°ΠΊΠΎ, ΠΏΠΎΡΡΠΈ ΡΡΡ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ Π·Π°ΠΏΠΎΡΠ²Π°ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ΡΡΡΡΠΈ, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π½Π°ΠΈΡΡΠΈΠ½Π° Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ.
ΠΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΏΡΠ°Π²ΠΈΠΌ Ρ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π°?
ΠΡΠΎΡΡΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΈ ΠΈ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π° Π²Ρ ΠΎΠ΄-ΠΈΠ·Ρ ΠΎΠ΄ ΠΈ ΡΠ°ΠΌΠΊΠΈ ΠΊΠ°ΡΠΎ Netty, ΠΈΠ»ΠΈ Akka. Π’Π΅ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π·Π°ΡΠ°Π΄ΠΈ ΡΠ²ΠΎΡΡΠ° ΡΠ΅Π°ΠΊΡΠΈΠ²Π½Π° ΠΏΡΠΈΡΠΎΠ΄Π°. ΠΠΎΡΠ°Π΄ΠΈ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠΈΡ Π²Ρ ΠΎΠ΄-ΠΈΠ·Ρ ΠΎΠ΄, Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ. ΠΠΎΠΊΠ°ΡΠΎ Π΅Π΄Π½Π° Π·Π°ΡΠ²ΠΊΠ° ΡΠ°ΠΊΠ° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ Π²Ρ ΠΎΠ΄-ΠΈΠ·Ρ ΠΎΠ΄Π°, ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΡΠΈΡΡ Ρ ΠΏΠΎΡΠΎΠΊ ΡΠ΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π° ΠΈ ΠΏΠΎΠ΅ΠΌΠ° Π΄ΡΡΠ³Π° Π·Π°ΡΠ²ΠΊΠ°. Π ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ Π²Ρ ΠΎΠ΄-ΠΈΠ·Ρ ΠΎΠ΄Π° Π½Π°ΠΉ-Π½Π°ΠΊΡΠ°Ρ ΠΏΡΠΈΡΡΠΈΠ³Π½Π°Ρ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΏΡΡΠ²Π°ΡΠ° Π·Π°ΡΠ²ΠΊΠ° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°. Π§ΡΠ΅Π· ΡΠ΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠΈ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ ΠΏΠΎΡΠΎΠΊ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΠΌ ΠΎΠ±ΡΠΈΡ Π±ΡΠΎΠΉ ΠΏΠΎΡΠΎΡΠΈ ΠΈ Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΠΌ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΡΠ΅ΡΡΡΡΠΈ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠΈ.
ΠΡΠΈ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΠ°Ρ Π²Ρ ΠΎΠ΄-ΠΈΠ·Ρ ΠΎΠ΄, Π±ΡΠΎΡΡ Π½Π° ΡΠ΄ΡΠΎΡΠΎ ΡΡΠ°Π²Π° ΠΊΠ»ΡΡΠΎΠ² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠΎΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ Π±ΡΠΎΡ Π½Π° ΠΏΠΎΡΠΎΠΊΠΎΠ²Π΅ΡΠ΅ Π²Ρ ΠΎΠ΄-ΠΈΠ·Ρ ΠΎΠ΄, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ. ΠΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π° ΡΠΎΠ²Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΄ΡΠ°ΡΠ° ΠΈ ΡΠΏΡΠ°Π²ΡΠ½Π΅ Ρ ΠΏΠΎ-Π²ΠΈΡΠΎΠΊΠΈ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡΠ΅ΡΡΡΡΠΈ.
ΠΠ°ΠΊ, ΠΈ ΡΠΎΠ²Π° Π΅ Π²ΡΠΈΡΠΊΠΎ?
ΠΠ΅, ΠΈΠΌΠ° ΠΈ Π½Π΅ΡΠΎ Π΄ΡΡΠ³ΠΎ. Π Π΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ ΡΠ΅ΡΡΡΡΠΈΡΠ΅, Π½ΠΎ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈΠΌΠ° ΡΠ²ΠΎΡΡΠ° ΡΠ΅Π½Π°. Π ΡΠ°ΡΡΠ½ΠΎΡΡ, ΠΊΠΎΠ΄ΡΡ ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ°Π½ Π² ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΡΠ΅ Π½Π° Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΠΎΡΡ ΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·Π±ΡΠ³Π²Π° Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎΡΠΎΠΊΠΎΠ²Π΅ΡΠ΅ Π·Π° Π²Ρ ΠΎΠ΄-ΠΈΠ·Ρ ΠΎΠ΄. Π ΡΠΎΠ²Π° Π΅ ΡΡΠ²ΡΠ΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ ΠΌΠΎΠ΄Π΅Π» Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅. Π Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΡΠΊ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΠΎΠ²Π° Π²ΡΠ΅ ΠΏΠ°ΠΊ Π΅ ΡΠ°Π΄ΠΈΠΊΠ°Π»Π½Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΠΎΠ±ΠΈΡΠ°ΠΉΠ½ΠΈΡ Π½Π°ΡΠΈΠ½ Π½Π° ΠΌΠΈΡΠ»Π΅Π½Π΅.
ΠΠ° ΠΏΡΡΠ²ΠΎ ΠΌΡΡΡΠΎ, ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΡΡΠΈΡΠ΅ ΠΊΠ°ΠΊ Π΄Π° ΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎ. Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π½Π΅ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ΅Π½ Π²Ρ ΠΎΠ΄-ΠΈΠ·Ρ ΠΎΠ΄, Π²ΠΈΠ΅ ΡΡΡΠ±Π²Π° ΡΡΠ½ΠΎ Π΄Π° ΠΎΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΠ»ΡΡΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ°. ΠΡΠ΅ΠΊΡΠ°ΡΡΠ²Π°Π½Π΅ΡΠΎ ΠΈ ΠΈΠ·ΡΠ°ΠΊΠ²Π°Π½Π΅ΡΠΎ Π²Π΅ΡΠ΅ Π½Π΅ Π΅ ΠΎΠΏΡΠΈΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠ΅Π΄Π°Π²Π°ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΈ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ, Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ ΠΈΠ»ΠΈ continuation. ΠΠΎ ΡΠΎΠ²Π° Π½Π΅ Π΅ Π²ΡΠΈΡΠΊΠΎ: Π·Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π½Π΅ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ΅Π½ Π²Ρ ΠΎΠ΄-ΠΈΠ·Ρ ΠΎΠ΄, ΡΠ° Π²ΠΈ Π½ΡΠΆΠ½ΠΈ ΠΈ Π½Π΅ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΈ ΡΡΡΠ²ΡΡΠΈ ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ, Π° ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΡΠ΅Π»Π½ΠΎ Π½Π°Π²ΡΡΠΊΡΠ΄Π΅. Π ΡΠ»ΡΡΠ°Ρ Ρ HTTP Π²ΡΠΈΡΠΊΠΎ Π΅ ΠΏΡΠΎΡΡΠΎ, Π½ΠΎ ΠΈΠΌΠ° ΠΈ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ.
Π ΠΌΠ°ΠΊΠ°Ρ ΡΠΎΡΠ°Π»Π½Π°ΡΠ° ΡΠΊΡΡΡΡΠ½Π° ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡ Π΄Π° ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡ, ΡΠ°ΠΊΡΠ² ΠΏΡΠ΅Ρ ΠΎΠ΄ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΡΡΠ΄Π΅Π½ Π·Π° ΡΡΠ²ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°. ΠΠ°ΡΠΎΠ²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΡΠ΅ ΡΡΡΠ΅ΡΠ°ΡΡ ΡΠ΅Π°ΠΊΡΠΈΠ²Π΅Π½ ΠΈ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π΅Π½ ΠΊΠΎΠ΄ ΡΡΠ°Π²Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠ΅, Π·Π° Π΄Π°:
- ΠΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ΅ΡΡΡΡΠΈΡΠ΅ Π² Π½Π°ΠΉ-Π½Π°ΡΠΎΠ²Π°ΡΠ΅Π½ΠΈΡΠ΅ ΡΠ°ΡΡΠΈ Π½Π° ΡΠΎΡΡΡΠ΅ΡΠ½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°;
- ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΠΎ-ΠΏΡΠΎΡΡ ΡΡΠΈΠ» Π½Π° ΠΊΠΎΠ΄ Π² ΠΎΡΡΠ°Π½Π°Π»ΠΈΡΠ΅ ΡΠ°ΡΡΠΈ.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΠΌΠ΅ Quarkus
Π‘ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° Quarkus Π΅ Π΄Π° ΠΎΠ±Π΅Π΄ΠΈΠ½ΠΈ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΈΡΠ΅ ΠΈ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΈΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² Π΅Π΄Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΡΡΠ΅Π΄Π°.
Π ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° Quarkus ΡΡΠΎΡΡ Vert.x ΠΈ Netty, Π²ΡΡΡ Ρ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ΅Π΄ΠΈΡΠ° ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΈ ΡΡΠ΅ΠΉΠΌΡΠ΅ΡΡΠΈ ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅. Quarkus Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π΅ ΡΠ°ΠΌΠΎ Π½Π° HTTP ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ, Π½ΠΎ ΠΈ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ, ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Π½ΠΈ ΠΎΡ ΡΡΠ±ΠΈΡΠΈΡ. ΠΠ°Π·ΠΈΡΠ°Π½ Π½Π° ΡΠ²ΠΎΡΡΠ° ΡΠ΅Π°ΠΊΡΠΈΠ²Π½Π° ΠΏΡΠΈΡΠΎΠ΄Π°, ΡΠΎΠΉ ΡΠ°Π±ΠΎΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΠΎΠ±ΠΌΠ΅Π½ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ (Apache Kafka, AMQP ΠΈ Π΄Ρ.).
Π¦ΡΠ»Π°ΡΠ° Ρ ΠΈΡΡΠΎΡΡ Π΅ ΠΊΠ°ΠΊ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡ ΡΠ΅Π°ΠΊΡΠΈΠ²Π΅Π½ Π΄Π²ΠΈΠ³Π°ΡΠ΅Π» ΠΊΠ°ΠΊΡΠΎ Π·Π° ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π΅Π½, ΡΠ°ΠΊΠ° ΠΈ Π·Π° ΡΠ΅Π°ΠΊΡΠΈΠ²Π΅Π½ ΠΊΠΎΠ΄.

Quarkus ΡΠ΅ ΡΠΏΡΠ°Π²Ρ Π±Π»Π΅ΡΡΡΡΠΎ Ρ ΡΠΎΠ²Π°. ΠΠ·Π±ΠΎΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π΅Π½ ΠΈ ΡΠ΅Π°ΠΊΡΠΈΠ²Π΅Π½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π΅Π½ β Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΈ Π΄Π²Π°ΡΠ° ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΈ ΡΠ΄ΡΠ°. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠ°Π³Π° Ρ Π±ΡΡΠ· Π½Π΅Π±Π»ΠΎΠΊΠΈΡΠ°Ρ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΠΏΠΎΡΡΠΈ Π²ΡΠΈΡΠΊΠΎ, ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°ΡΠΎ ΠΏΡΠ΅Π· ΡΠΈΠΊΡΠ»Π° Π½Π° ΡΡΠ±ΠΈΡΠΈΡ (event-loop thread, ΡΡΡΠΎ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΊΠ°ΡΠΎ IO thread). ΠΠΎ Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΊΠ»Π°ΡΠΈΡΠ΅ΡΠΊΠΈ REST ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Quarkus ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° HTTP Π² Quarkus Π΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π°ΡΠ° Π½Π° Π½Π΅Π±Π»ΠΎΠΊΠΈΡΠ°Ρ ΠΈ ΡΠ΅Π°ΠΊΡΠΈΠ²Π΅Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ (Eclipse Vert.x ΠΈ Netty). ΠΡΠΈΡΠΊΠΈ HTTP Π·Π°ΡΠ²ΠΊΠΈ, ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½ΠΈ ΠΎΡ Π²Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡΡΠ²ΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Ρ ΠΏΡΠ΅Π· ΡΠΈΠΊΡΠ»Π° Π½Π° ΡΡΠ±ΠΈΡΠΈΡ (IO Thread), Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ ΠΊΡΠΌ ΡΠ°ΡΡΡΠ° ΠΎΡ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΡΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ²Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΡΠ΅Π»ΡΠ° ΠΊΠΎΠ΄Π° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·Π²ΠΈΠΊΠ°Π½ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΏΠΎΡΠΎΠΊ (ΡΠ°ΠΊΠ° Π½Π°ΡΠ΅ΡΠ΅Π½ΠΈΡ worker thread, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡΠΈ ΡΠ΅ΡΠ²Π»Π΅ΡΠΈ ΠΈ Jax-RS) ΠΈΠ»ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡ Π²Ρ ΠΎΠ΄Π½ΠΎ-ΠΈΠ·Ρ ΠΎΠ΄Π΅Π½ ΠΏΠΎΡΠΎΠΊ (ΡΠ΅Π°ΠΊΡΠΈΠ²Π΅Π½ ΠΌΠ°ΡΡΡΡΡ).

ΠΠ° ΡΠ²ΡΡΠ·Π²Π°ΡΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π²ΡΡΡ Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Vert.x. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°ΡΠ΅, ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΡΠ΅ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΡΠ΅ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°Ρ ΠΊΠ°ΡΠΎ messaging middleware.
ΠΠ° ΡΠ°ΠΉΡΠ° Π‘ΡΠ±ΡΠ°Π½ΠΈ ΡΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ° Ρ Quarkus:
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈΡ ΠΌΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎΡΠΈ Π·Π° ΠΈΠ·ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π°ΡΠΏΠ΅ΠΊΡΠΈ Π½Π° ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅, Π½Π° ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠ°ΠΌΠΎ Ρ Π±ΡΠ°ΡΠ·ΡΡ β Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° IDE, Π° ΠΊΠΎΠΌΠΏΡΡΡΡΡΡ Π½Π΅ Π΅ Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π΅Π½. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΡΠ΅Π·ΠΈ ΡΡΠΎΡΠΈ .
ΠΠΎΠ»Π΅Π·Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ
- Π‘Π°ΠΉΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Quarkus β
- ΠΡΠΎΠ΅ΠΊΡ Quarkus Π² GitHub β
- Π’ΡΠΈΡΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Quarkus β
- Π§Π°Ρ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Quarkus β
- Π€ΠΎΡΡΠΌΠΈ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Quarkus β !forum/quarkus-dev
10 Π²ΠΈΠ΄Π΅ΠΎ ΡΡΠΎΠΊΠ° ΠΏΠΎ Quarkus, Π·Π° Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ΡΠ΅ Ρ ΡΠ΅ΠΌΠ°ΡΠ°
ΠΠ°ΠΊΡΠΎ ΡΠ΅ ΠΏΠΈΡΠ΅ Π½Π° ΡΠ°ΠΉΡΠ° , β ΡΠΎΠ²Π° Π΅ -ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ Java ΡΡΠ΅ΠΊ, ΡΡΠ·Π΄Π°Π΄Π΅Π½ Π·Π° GraalVM ΠΈ OpenJDK HotSpot, ΡΡΡΡΠ°Π²Π΅Π½ ΠΎΡ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΠ΅ Java Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠΈ.
ΠΠ° Π΄Π° Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ΠΌ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ΡΠ΅ Ρ ΡΠ΅ΠΌΠ°ΡΠ°, ΡΠΌΠ΅ ΠΏΠΎΠ΄Π±ΡΠ°Π»ΠΈ 10 Π²ΠΈΠ΄Π΅ΠΎ ΡΡΠΎΠΊΠ°, ΠΊΠΎΠΈΡΠΎ ΠΎΠ±Ρ Π²Π°ΡΠ°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π°ΡΠΏΠ΅ΠΊΡΠΈ Π½Π° Quarkus ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π·Π° Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅:
1. ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΠΌΠ΅ Quarkus: Java ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΎΡ Π½ΠΎΠ²ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ Π·Π° Kubernetes
ΠΠ²ΡΠΎΡΠΈ: Π’ΠΎΠΌΠ°Ρ ΠΠ²ΠΎΡΠ½ΡΡΡΠΎΠΌ (Thomas Qvarnstrom) ΠΈ ΠΠΆΠ΅ΠΉΡΠΎΠ½ ΠΡΠΈΠ½ (Jason Greene)
Π¦Π΅Π»ΡΠ° Π½Π° Quarkus Π΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ Java ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π·Π° Kubernetes ΠΈ serverless ΡΡΠ΅Π΄ΠΈ, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° ΠΎΠ±Π΅Π΄ΠΈΠ½ΠΈ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΈ ΠΈ ΠΈΠΌΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Π² Π΅Π΄Π½Π° Π΅Π΄ΠΈΠ½Π½Π° ΡΡΠ΅Π΄Π° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, Π·Π° Π΄Π° ΠΌΠΎΠ³Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π΄Π° Π²Π°ΡΠΈΡΠ°Ρ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π° ΡΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠΈΡΠΎΠΊ ΡΠΏΠ΅ΠΊΡΡΡ ΠΎΡ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΡΡΠ΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ ΠΏΠΎ-Π΄ΠΎΠ»Ρ.

2. Quarkus: ΡΠ²ΡΡΡ Π±ΡΡΠ·Π° ΡΡΠ±Π°ΡΠΎΠΌΠ½Π° Java
ΠΠ²ΡΠΎΡ: ΠΠ»ΡΡ Π‘Π°ΡΡΠ΅Ρ (Burr Sutter)
ΠΠΈΠ΄Π΅ΠΎΡΡΠΎΠΊ ΠΎΡ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-Π»Π΅ΠΊΡΠΎΡΠΈΡΡΠ° DevNation Live ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Quarkus Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΈ Java ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, API, ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ ΠΈ serverless ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΡΠ΅Π΄Π°ΡΠ° Π½Π° Kubernetes/OpenShift, ΠΏΡΠ°Π²Π΅ΠΉΠΊΠΈ Π³ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΈ, ΠΏΠΎ-Π±ΡΡΠ·ΠΈ ΠΈ ΠΏΠΎ-ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΈ.

3. Quarkus ΠΈ GraalVM: ΡΡΠΊΠΎΡΡΠ²Π°Π½Π΅ Π½Π° Hibernate Π΄ΠΎ ΡΠ²ΡΡΡ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΈ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π΄ΠΎ ΡΡΠ±Π°ΡΠΎΠΌΠ½ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΈ
ΠΠ²ΡΠΎΡ: Π‘Π΅ΠΉΠ½ ΠΡΠΈΠ½ΠΎΠ²Π΅ΡΠΎ (Sanne Grinovero)
ΠΡ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡΡΠ° ΡΠ΅ Π½Π°ΡΡΠΈΡΠ΅ ΠΊΠ°ΠΊ Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ Quarkus, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ ΠΈ ΠΊΠ°ΠΊ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠ°ΡΠΎ Hibernate ORM, Π΄Π° Π±ΡΠ΄Π°Ρ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΈ Ρ native ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ GraalVM.

4. Π£ΡΠΈΠΌ ΡΠ΅ Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°ΠΌΠ΅ serverless ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ²ΡΠΎΡ: ΠΠ°ΡΡΠΈΠ½ ΠΡΡΠ΅Ρ (Marthen Luther)
Π Π²ΠΈΠ΄Π΅ΠΎΡΠΎ ΠΏΠΎ-Π΄ΠΎΠ»Ρ Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΊ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ Java ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Quarkus ΠΈ Π΄Π° Π³ΠΎ ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅ ΠΊΠ°ΡΠΎ serverless ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Knative.

5. Quarkus: ΠΊΠΎΠ΄ΠΈΡΠ°ΠΉΡΠ΅ Ρ ΡΠ΄ΠΎΠ²ΠΎΠ»ΡΡΠ²ΠΈΠ΅
ΠΠ²ΡΠΎΡ: ΠΠ΄ΡΠΎΠ½ Π―Π½Π°Π³Π° (Edson Yanaga)
ΠΠΈΠ΄Π΅ΠΎΠ³ΠΈΠ΄ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π²Π°ΡΠΈΡ ΠΏΡΡΠ²ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ Quarkus, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π²ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ Π·Π°ΡΠΎ Quarkus ΠΏΠ΅ΡΠ΅Π»ΠΈ ΡΡΡΡΠ°ΡΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅.

6. Java ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ β ΠΊΠ°ΠΊΠ²ΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ Π±ΡΠ΄Π΅ΡΠ΅ΡΠΎ ΠΈΠΌ Π·Π°Π΅Π΄Π½ΠΎ
ΠΠ²ΡΠΎΡ: ΠΠ°ΡΠΊ ΠΠΈΡΡΡΠ» (Mark Little)
Π’Π°Π·ΠΈ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡ Π·Π°ΠΏΠΎΠ·Π½Π°Π²Π° Ρ ΠΈΡΡΠΎΡΠΈΡΡΠ° Π½Π° Java ΠΈ ΠΎΠ±ΡΡΠ½ΡΠ²Π° Π·Π°ΡΠΎ Quarkus Π΅ Π±ΡΠ΄Π΅ΡΠ΅ΡΠΎ Π½Π° Java.

7. Quarkus: ΡΠ²ΡΡΡ Π±ΡΡΠ·Π° ΡΡΠ±Π°ΡΠΎΠΌΠ½Π° Java
ΠΠ²ΡΠΎΡ: ΠΠΌΠΈΡΡΠΈΡ ΠΠ΄ΡΠ΅Π°Π½Π΄ΠΈΡ (Dimitris Andreadis)
ΠΡΠ΅Π³Π»Π΅Π΄ Π½Π° ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°ΡΠ° Π½Π° Quarkus, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ ΠΏΡΠΈΠ·Π½Π°Π½ΠΈΠ΅ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅: ΠΏΡΠΎΡΡΠΎΡΠ°, ΡΠ²ΡΡΡ
Π²ΠΈΡΠΎΠΊΠΈ ΡΠΊΠΎΡΠΎΡΡΠΈ, Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠΈ.

8. Quarkus ΠΈ ΡΡΠ±Π°ΡΠΎΠΌΠ½ΠΈ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ
ΠΠ²ΡΠΎΡ: ΠΠ»Π΅ΠΌΠ΅Π½Ρ ΠΡΠΊΠΎΡΡΠ΅Ρ (Clement Escoffier)
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΡΠ° Ρ GraalVM, Quarkus ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΡΠ²ΡΡΡ
Π±ΡΡΠ·ΠΎ ΠΏΡΠ΅ΠΆΠΈΠ²ΡΠ²Π°Π½Π΅ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° ΠΈ ΡΡΠ±Π°ΡΠΎΠΌΠ½Π° ΡΡΠ΅Π΄Π° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅. ΠΠ²ΡΠΎΡΡΡ Π³ΠΎΠ²ΠΎΡΠΈ Π·Π° ΡΠ΅Π°ΠΊΡΠΈΠ²Π½Π°ΡΠ° ΡΡΡΠ°Π½Π° Π½Π° Quarkus ΠΈ ΠΊΠ°ΠΊ Π΄Π° Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΡΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π° ΡΡΡΠΈΠΉΠΌΠΈΠ½Π³.

9. Quarkus ΠΈ Π±ΡΡΠ·ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Eclipse MicroProfile
ΠΠ²ΡΠΎΡ: ΠΠΆΠΎΠ½ ΠΠ»ΠΈΠ½Π³Π°Π½ (John Clingan)
ΠΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°ΠΉΠΊΠΈ Eclipse MicroProfile Ρ Quarkus, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°Ρ ΠΏΡΠ»Π½ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ MicroProfile, ΠΊΠΎΠΈΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Ρ Π·Π° Π΄Π΅ΡΠ΅ΡΠΊΠΈ ΠΌΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄ΠΈ. ΠΡΠ² Π²ΠΈΠ΄Π΅ΠΎΡΠΎ ΡΠ΅ ΠΎΠ±ΡΡΠΆΠ΄Π° ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΊΠ°ΠΊ Π΄Π° ΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠ°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ MicroProfile Π·Π° ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Kubernetes.

10. Java, Π²Π΅ΡΡΠΈΡ "Π’ΡΡΠ±ΠΎ"
ΠΠ²ΡΠΎΡ: ΠΠ°ΡΠΊΡΡ ΠΠΈΠ» (Marcus Biel)
ΠΠ²ΡΠΎΡΡΡ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠ°ΠΊ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Quarkus Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΡΠΏΠ΅ΡΠΌΠ°Π»ΠΊΠΈ ΠΈ ΡΡΠΏΠ΅ΡΠ±ΡΡΠ·ΠΈ Java ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΈΡΡΠΈΠ½ΡΠΊΠΈ ΠΏΡΠΎΠ±ΠΈΠ², ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π² serverless ΡΡΠ΅Π΄ΠΈ.

ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
