ืื•ืกืฃ ืžืงื•ืจื™ ื‘-Quarkus - ืœืžื” ื–ื” ื—ืฉื•ื‘

ืฉืœื•ื ืœื›ื•ืœื! ื–ื”ื• ื”ืคื•ืกื˜ ื”ืฉื ื™ ื‘ืกื“ืจืช Quarkus ืฉืœื ื• - ื”ื™ื•ื ื ื“ื‘ืจ ืขืœ ืื•ืกืฃ ืžืงื•ืจื™.

ืื•ืกืฃ ืžืงื•ืจื™ ื‘-Quarkus - ืœืžื” ื–ื” ื—ืฉื•ื‘

ืงื•ื•ืจืงื•ืก ื”ื•ื ืขืจื™ืžืช Java ื”ืžื•ืชืืžืช ืขื‘ื•ืจ ืงื•ื‘ืจื ื˜. ืœืžืจื•ืช ืฉืื™ืŸ ืกืคืง ืฉื™ืฉ ืขื•ื“ ื”ืจื‘ื” ืžื” ืœืขืฉื•ืช ื›ืืŸ, ืขืฉื™ื ื• ื”ืจื‘ื” ืขื‘ื•ื“ื” ื˜ื•ื‘ื” ื‘ื”ืจื‘ื” ื”ื™ื‘ื˜ื™ื, ื›ื•ืœืœ ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ ื”-JVM ื•ืžืกืคืจ ืžืกื’ืจื•ืช. ืื—ืช ื”ืชื›ื•ื ื•ืช ืฉืœ Quarkus ืฉืžืฉื›ื” ื”ืชืขื ื™ื™ื ื•ืช ืžื•ื’ื‘ืจืช ืžืฆื“ ืžืคืชื—ื™ื ื”ื™ื ื”ื’ื™ืฉื” ื”ืžืงื™ืคื” ื•ื”ื—ืœืงื” ืฉืœื” ืœื”ืคื™ื›ืช ืงื•ื“ Java ืœืงื‘ืฆื™ ื”ืคืขืœื” ืขื‘ื•ืจ ืžืขืจื›ืช ื”ืคืขืœื” ืกืคืฆื™ืคื™ืช (ืžื” ืฉื ืงืจื "ืงื•ืžืคื™ืœืฆื™ื” ืžืงื•ืจื™ืช"), ื‘ื“ื•ืžื” ืœ-C ื•-C++, ืฉื‘ื”ืŸ ืงื•ืžืคื™ืœืฆื™ื” ื›ื–ื• ืžืชืจื—ืฉ ื‘ื“ืจืš ื›ืœืœ ื‘ืกื•ืฃ ืžื—ื–ื•ืจ ืฉืœ ื‘ื ื™ื™ื”, ื‘ื“ื™ืงื” ื•ืคืจื™ืกื”.

ื•ืœืžืจื•ืช ืฉื”ืงื•ืžืคื™ืœืฆื™ื” ืžืงื•ืจื™ืช ื—ืฉื•ื‘ื”, ื›ืคื™ ืฉื ืจืื” ืœื”ืœืŸ, ื™ืฉ ืœืฆื™ื™ืŸ ืฉ-Quarkus ืคื•ืขืœ ืžืžืฉ ื˜ื•ื‘ ืขืœ ืžื›ื•ื ืช ื”-Java ื”ื ืคื•ืฆื” ื‘ื™ื•ืชืจ, OpenJDK Hotspot, ื”ื•ื“ื•ืช ืœืฉื™ืคื•ืจื™ ื”ื‘ื™ืฆื•ืขื™ื ืฉื”ื˜ืžืขื ื• ื‘ื›ืœ ื”ืขืจื™ืžื”. ืœื›ืŸ, ื™ืฉ ืœื”ืชื™ื™ื—ืก ืœืงื•ืžืคื™ืœืฆื™ื” ืžืงื•ืจื™ืช ื›ื‘ื•ื ื•ืก ื ื•ืกืฃ ืฉื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื• ืœืคื™ ื”ืฆื•ืจืš ืื• ื”ื“ืจื•ืฉ. ืœืžืขืฉื”, Quarkus ืžืกืชืžืš ื‘ืžื™ื“ื” ืจื‘ื” ืขืœ OpenJDK ื‘ื›ืœ ื”ื ื•ื’ืข ืœืชืžื•ื ื•ืช ืžืงื•ืจื™ื•ืช. ื•ืžืฆื‘ ื”ืคื™ืชื•ื—, ืฉื”ืชืงื‘ืœ ื‘ื—ื•ื ืขืœ ื™ื“ื™ ืžืคืชื—ื™ื, ืžื‘ื˜ื™ื— ื‘ื“ื™ืงื” ื›ืžืขื˜ ืžื™ื™ื“ื™ืช ืฉืœ ืฉื™ื ื•ื™ื™ื ื‘ืฉืœ ื”ื™ื›ื•ืœื•ืช ื”ืžืชืงื“ืžื•ืช ืฉืœ ื‘ื™ืฆื•ืข ืงื•ื“ ื“ื™ื ืžื™ ื”ืžื™ื•ืฉื ื‘-Hotspot. ื‘ื ื•ืกืฃ, ื‘ืขืช ื™ืฆื™ืจืช ืชืžื•ื ื•ืช GraalVM ืžืงื•ืจื™ื•ืช, ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืกืคืจื™ื™ืช ืžื—ืœืงื•ืช OpenJDK ื•ื‘ื™ื›ื•ืœื•ืช HotSpot.

ืื– ืœืžื” ืืชื” ืฆืจื™ืš ืงื•ืžืคื™ืœืฆื™ื” ืžืงื•ืจื™ืช ืื ื”ื›ืœ ื›ื‘ืจ ืžื•ืชืื ื‘ืฆื•ืจื” ืžื•ืฉืœืžืช? ื ื ืกื” ืœืขื ื•ืช ืขืœ ืฉืืœื” ื–ื• ืœื”ืœืŸ.

ื ืชื—ื™ืœ ืขื ื”ืžื•ื‘ืŸ ืžืืœื™ื•: ืœ-Red Hat ื™ืฉ ื ื™ืกื™ื•ืŸ ืจื‘ ื‘ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ JVMs, ืขืจื™ืžื•ืช ื•ืžืกื’ืจื•ืช ื‘ืžื”ืœืš ืคื™ืชื•ื— ื”ืคืจื•ื™ืงื˜ JBoss, ื›ื•ืœืœ:

  • ืฉืจืช ื”ืืคืœื™ืงืฆื™ื•ืช ื”ืจืืฉื•ืŸ ืฉืขื•ื‘ื“ ื‘ืขื ืŸ ื‘ืคืœื˜ืคื•ืจืžื” ืจื“ ื”ืื˜.
  • ืฉืจืช ื”ื™ื™ืฉื•ืžื™ื ื”ืจืืฉื•ืŸ ืœื”ืคืขืœื” ืขืœ ืžื—ืฉื‘ื™ื ื—ื‘ืจ ืืช ื”ืžื—ืฉื‘.
  • ืฉืจืช ื”ื™ื™ืฉื•ืžื™ื ื”ืจืืฉื•ืŸ ืœืจื•ืฅ ืขืœื™ื• ืคื˜ืœ Pi.
  • ืžื’ื•ื•ืŸ ืคืจื•ื™ืงื˜ื™ื ื”ืคื•ืขืœื™ื ื‘ืžื›ืฉื™ืจื™ื ืื ื“ืจื•ืื™ื“.

ืื ื—ื ื• ืžืชืžื•ื“ื“ื™ื ืขื ื”ืืชื’ืจื™ื ืฉืœ ื”ืคืขืœืช ื™ื™ืฉื•ืžื™ Java ื‘ืขื ืŸ ื•ื‘ืžื›ืฉื™ืจื™ื ืžื•ื’ื‘ืœื™ ืžืฉืื‘ื™ื (ืงืจืื•: IoT) ื›ื‘ืจ ืฉื ื™ื ืจื‘ื•ืช ื•ืœืžื“ื ื• ืœื”ืคื™ืง ืืช ื”ืžืจื‘ ืžื”-JVM ืžื‘ื—ื™ื ืช ื‘ื™ืฆื•ืขื™ื ื•ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ ื–ื™ื›ืจื•ืŸ. ื›ืžื• ืจื‘ื™ื ืื—ืจื™ื, ืื ื• ืขื•ื‘ื“ื™ื ืขื ืงื•ืžืคื™ืœืฆื™ื” ืžืงื•ืจื™ืช ืฉืœ ื™ื™ืฉื•ืžื™ Java ื‘ืžืฉืš ื–ืžืŸ ืจื‘ G.C.J., ืื‘ื™ืืŸ, ืืงืกืœืกื™ื•ืจ JET ื•ืืคื™ืœื• Dalvik ื•ืื ื—ื ื• ืžื•ื“ืขื™ื ื”ื™ื˜ื‘ ืœื™ืชืจื•ื ื•ืช ื•ืœื—ืกืจื•ื ื•ืช ืฉืœ ื’ื™ืฉื” ื–ื• (ืœื“ื•ื’ืžื”, ื”ื“ื™ืœืžื” ืฉืœ ื‘ื—ื™ืจื” ื‘ื™ืŸ ื”ืื•ื ื™ื‘ืจืกืœื™ื•ืช ืฉืœ "ื‘ื ื” ืคืขื ืื—ืช - ื”ืคืขืœื” ื‘ื›ืœ ืžืงื•ื" ืœื‘ื™ืŸ ื”ืขื•ื‘ื“ื” ืฉื™ื™ืฉื•ืžื™ื ืžื”ื•ื“ืจื™ื ืงื˜ื ื™ื ื™ื•ืชืจ ื•ืจืฆื™ื ืžื”ืจ ื™ื•ืชืจ).

ืžื“ื•ืข ื—ืฉื•ื‘ ืœืงื—ืช ื‘ื—ืฉื‘ื•ืŸ ืืช ื”ื™ืชืจื•ื ื•ืช ื•ื”ื—ืกืจื•ื ื•ืช ื”ืœืœื•? ืžื›ื™ื•ื•ืŸ ืฉื‘ืžืฆื‘ื™ื ืžืกื•ื™ืžื™ื ื”ื™ื—ืก ืฉืœื”ื ื”ื•ืคืš ืœื”ื™ื•ืช ืžื›ืจื™ืข:

  • ืœื“ื•ื’ืžื”, ื‘ืกื‘ื™ื‘ื•ืช ืœืœื ืฉืจืชื™ื/ืื™ืจื•ืขื™ื ืฉื‘ื”ื ื”ืฉื™ืจื•ืชื™ื ืคืฉื•ื˜ ืฆืจื™ื›ื™ื ืœื”ืชื—ื™ืœ ื‘ื–ืžืŸ ืืžืช (ืงืฉื” ืื• ืจืš) ืขืœ ืžื ืช ืœื”ืกืคื™ืง ืœื”ื’ื™ื‘ ืœืื™ืจื•ืขื™ื. ื‘ื ื™ื’ื•ื“ ืœืฉื™ืจื•ืชื™ื ืžืชืžืฉื›ื™ื ืืจื•ื›ื™ื, ื›ืืŸ ืžืฉืš ื”ื”ืชื—ืœื” ื”ืงืจื” ืžื’ื“ื™ืœ ื‘ืื•ืคืŸ ืงืจื™ื˜ื™ ืืช ื–ืžืŸ ื”ืชื’ื•ื‘ื” ืœื‘ืงืฉื”. ื”-JVM ืขื“ื™ื™ืŸ ืœื•ืงื— ื–ืžืŸ ืžืฉืžืขื•ืชื™ ืœื”ืชื ืขื•ืœ, ื•ืœืžืจื•ืช ืฉื‘ืžืงืจื™ื ืžืกื•ื™ืžื™ื ื ื™ืชืŸ ืœื”ืคื—ื™ืช ื–ืืช ื‘ืฉื™ื˜ื•ืช ื—ื•ืžืจื” ื˜ื”ื•ืจื•ืช, ื”ื”ื‘ื“ืœ ื‘ื™ืŸ ืฉื ื™ื™ื” ืื—ืช ืœ-5 ืืœืคื™ื•ืช ื”ืฉื ื™ื™ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ื”ื”ื‘ื“ืœ ื‘ื™ืŸ ื—ื™ื™ื ืœืžื•ื•ืช. ื›ืŸ, ื›ืืŸ ืืชื” ื™ื›ื•ืœ ืœืฉื—ืง ืขื ื™ืฆื™ืจืช ืจื–ืจื‘ื” ื—ืžื” ืฉืœ ืžื›ื•ื ื•ืช Java (ืžื”, ืœืžืฉืœ, ืขืฉื™ื ื• ืื™ืชื ื”ืขื‘ืจื” ืฉืœ OpenWhisk ืœ-Knative), ืืš ื–ื” ื›ืฉืœืขืฆืžื• ืื™ื ื• ืžื‘ื˜ื™ื— ืฉื™ื”ื™ื• ืžืกืคื™ืง JVMs ืœืขื‘ื“ ื‘ืงืฉื•ืช ื›ืงื ื” ื”ืžื™ื“ื” ืฉืœ ื”ืขื•ืžืก. ื•ืžื‘ื—ื™ื ื” ื›ืœื›ืœื™ืช ื–ื• ื›ื ืจืื” ืœื ื”ืื•ืคืฆื™ื” ื”ื ื›ื•ื ื” ื‘ื™ื•ืชืจ.
  • ื™ืชืจ ืขืœ ื›ืŸ, ื™ืฉ ื”ื™ื‘ื˜ ื ื•ืกืฃ ืฉืฆืฅ ืœืขืชื™ื ืงืจื•ื‘ื•ืช: ืจื™ื‘ื•ื™ ื“ื™ืจื•ืช. ืœืžืจื•ืช ื”ืขื•ื‘ื“ื” ืฉืžื›ืฉื™ืจื™ JVM ื”ืชืงืจื‘ื• ืžืื•ื“ ืœืžืขืจื›ื•ืช ื”ืคืขืœื” ื‘ื™ื›ื•ืœื•ืช ืฉืœื”ื, ื”ื ืขื“ื™ื™ืŸ ืœื ืžืกื•ื’ืœื™ื ืœืขืฉื•ืช ืืช ืžื” ืฉืื ื—ื ื• ื›ืœ ื›ืš ืจื’ื™ืœื™ื ืืœื™ื• ื‘ืœื™ื ื•ืงืก โ€“ ื‘ื™ื“ื•ื“ ืชื”ืœื™ื›ื™ื. ืœื›ืŸ, ื›ืฉืœ ืฉืœ ืฉืจืฉื•ืจ ืื—ื“ ื™ื›ื•ืœ ืœื”ืคื™ืœ ืืช ื›ืœ ืžื›ื•ื ืช ื”-Java. ืื ืฉื™ื ืจื‘ื™ื ืžื ืกื™ื ืœืขืงื•ืฃ ืืช ื”ื—ื™ืกืจื•ืŸ ื”ื–ื” ืขืœ ื™ื“ื™ ื”ืงื“ืฉืช JVM ื ืคืจื“ ืขื‘ื•ืจ ื›ืœ ืืคืœื™ืงืฆื™ื” ืฉืœ ืžืฉืชืžืฉ ืขืœ ืžื ืช ืœืžื–ืขืจ ืืช ื”ื”ืฉืœื›ื•ืช ืฉืœ ื›ืฉืœ. ื–ื” ื“ื™ ื”ื’ื™ื•ื ื™, ืื‘ืœ ืœื ืžืชืื™ื ืœืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื”.
  • ื‘ื ื•ืกืฃ, ืขื‘ื•ืจ ื™ื™ืฉื•ืžื™ื ืžื•ื›ื•ื•ื ื™ ืขื ืŸ, ืื™ื ื“ื™ืงื˜ื•ืจ ื—ืฉื•ื‘ ื”ื•ื ืฆืคื™ืคื•ืช ื”ืฉื™ืจื•ืชื™ื ืขืœ ื”ืžืืจื—. ืžืขื‘ืจ ืœืžืชื•ื“ื•ืœื•ื’ื™ื” 12 ื’ื•ืจืžื™ ื™ื™ืฉื•ื, microservices ื•-Kubernetes ืžื’ื“ื™ืœื™ื ืืช ืžืกืคืจ ืžื›ื•ื ื•ืช Java ืœื›ืœ ืืคืœื™ืงืฆื™ื”. ื›ืœื•ืžืจ, ืžืฆื“ ืื—ื“ ื›ืœ ื–ื” ืžืกืคืง ื’ืžื™ืฉื•ืช ื•ืืžื™ื ื•ืช, ืืš ื‘ืžืงื‘ื™ืœ ื’ื ืฆืจื™ื›ืช ื”ื–ื™ื›ืจื•ืŸ ื”ื‘ืกื™ืกื™ ืžื‘ื—ื™ื ืช ืฉื™ืจื•ืช ืขื•ืœื”, ื•ื—ืœืง ืžื”ื”ื•ืฆืื•ืช ื”ืœืœื• ืœื ืชืžื™ื“ ื ื—ื•ืฆื•ืช ื‘ื”ื—ืœื˜. ืงื‘ืฆื™ ื”ืคืขืœื” ื‘ืขืœื™ ืงื•ืžืคื™ืœืฆื™ื” ืกื˜ื˜ื™ืช ืžืจื•ื•ื™ื—ื™ื ื›ืืŸ ื‘ืฉืœ ื˜ื›ื ื™ืงื•ืช ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉื•ื ื•ืช, ื›ืžื• ื—ื™ืกื•ืœ ืงื•ื“ ืžืช ื‘ืจืžื” ื ืžื•ื›ื”, ื›ืืฉืจ ื”ืชืžื•ื ื” ื”ืกื•ืคื™ืช ื›ื•ืœืœืช ืจืง ืืช ืื•ืชื ื—ืœืงื™ื ืฉืœ ื”-frameworks (ื›ื•ืœืœ ื”-JDK ืขืฆืžื•) ืฉื”ืฉื™ืจื•ืช ืžืฉืชืžืฉ ื‘ื”ื ื‘ืคื•ืขืœ. ืœื›ืŸ, ืงื•ืžืคื™ืœืฆื™ื” ืžืงื•ืจื™ืช ืฉืœ Quarkus ืขื•ื–ืจืช ืœืžืงื ื‘ืฆืคื™ืคื•ืช ืžื•ืคืขื™ ืฉื™ืจื•ืช ืขืœ ื”ืžืืจื— ืžื‘ืœื™ ืœืคื’ื•ืข ื‘ืื‘ื˜ื—ื”.

ืœืžืขืฉื”, ื”ื˜ื™ืขื•ื ื™ื ืฉืœืขื™ืœ ื›ื‘ืจ ืžืกืคื™ืงื™ื ื›ื“ื™ ืœื”ื‘ื™ืŸ ืืช ื”ื”ืฆื“ืงื” ืฉืœ ืงื•ืžืคื™ืœืฆื™ื” ืžืงื•ืžื™ืช ืžื ืงื•ื“ืช ื”ืžื‘ื˜ ืฉืœ ืžืฉืชืชืคื™ ืคืจื•ื™ืงื˜ Quarkus. ืขื ื–ืืช, ื™ืฉ ืกื™ื‘ื” ื ื•ืกืคืช, ืœื ื˜ื›ื ื™ืช, ืืš ื’ื ื—ืฉื•ื‘ื”: ื‘ืฉื ื™ื ื”ืื—ืจื•ื ื•ืช, ื”ืจื‘ื” ืžืชื›ื ืชื™ื ื•ื—ื‘ืจื•ืช ืคื™ืชื•ื— ื ื˜ืฉื• ืืช ื’'ืื•ื•ื” ืœื˜ื•ื‘ืช ืฉืคื•ืช ืชื›ื ื•ืช ื—ื“ืฉื•ืช, ืžืชื•ืš ืืžื•ื ื” ืฉ-Java, ื™ื—ื“ ืขื ื”-JVMs, ื”ืขืจื™ืžื•ืช ื•ื”-frameworks ืฉืœื”, ื”ืคื›ื• ื’ื ืจืขื‘ ืœื–ื™ื›ืจื•ืŸ, ืื™ื˜ื™ ืžื“ื™ ื•ื›ื•'.

ืขื ื–ืืช, ื”ื”ืจื’ืœ ืœื”ืฉืชืžืฉ ื‘ืื•ืชื• ื›ืœื™ ื›ื“ื™ ืœืคืชื•ืจ ื›ืœ ื‘ืขื™ื” ื”ื•ื ื–ื” ืœื ืชืžื™ื“ ื ื›ื•ืŸ. ืœืคืขืžื™ื ืขื“ื™ืฃ ืœืงื—ืช ืฆืขื“ ืื—ื•ืจื” ื•ืœื—ืคืฉ ืžืฉื”ื• ืื—ืจ. ื•ืื Quarkus ื’ื•ืจื ืœืื ืฉื™ื ืœืขืฆื•ืจ ื•ืœื—ืฉื•ื‘, ืื– ื–ื” ื˜ื•ื‘ ืœื›ืœ ื”ืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ืฉืœ Java. Quarkus ืžื™ื™ืฆื’ ื”ืฉืงืคื” ื—ื“ืฉื ื™ืช ื›ื™ืฆื“ ืœื‘ื ื•ืช ื™ื™ืฉื•ืžื™ื ื™ืขื™ืœื™ื ื™ื•ืชืจ, ืžื” ืฉื”ื•ืคืš ืืช Java ืœืจืœื•ื•ื ื˜ื™ ื™ื•ืชืจ ืœืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ื™ื™ืฉื•ืžื™ื ื—ื“ืฉื•ืช ื›ืžื• ืœืœื ืฉืจืช. ื‘ื ื•ืกืฃ, ื‘ืฉืœ ื™ื›ื•ืœืช ื”ื”ืจื—ื‘ื” ืฉืœื”, ืœืงื•ื•ืจืงื•ืก ืชื”ื™ื” ื‘ืชืงื•ื•ื” ืžืขืจื›ืช ืืงื•ืœื•ื’ื™ืช ืฉืœืžื” ืฉืœ ื”ืจื—ื‘ื•ืช Java, ืžื” ืฉื™ื’ื“ื™ืœ ืžืฉืžืขื•ืชื™ืช ืืช ืžืกืคืจ ื”-frameworks ืฉื™ืชืžื›ื• ื‘ื”ื™ื“ื•ืจ ืžืงื•ืจื™ ื‘ื™ื™ืฉื•ืžื™ื ืžื—ื•ืฅ ืœืงื•ืคืกื”.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”