eclipse microprofile starter
play

Eclipse MicroProfile Starter CONFIDENTIAL Designator with Quarkus - PowerPoint PPT Presentation

Eclipse MicroProfile Starter CONFIDENTIAL Designator with Quarkus OpenAlt 2019 Michal Karm Babacek Martin tefanko @_karm @xstefank Principal Quality Engineer, Red Hat Software Engineer, Red Hat C/Java/Go programmer focused on Apache HTTP


  1. Eclipse MicroProfile Starter CONFIDENTIAL Designator with Quarkus OpenAlt 2019 Michal Karm Babacek Martin Štefanko @_karm @xstefank Principal Quality Engineer, Red Hat Software Engineer, Red Hat C/Java/Go programmer focused on Apache HTTP Server, Tomcat, load-balancing, MicroProfile committer, Microservices enthusiast high-availability, containers and MicroProfile by day; Coding fluorescence JBoss EAP sustaining engineer microscopy data processing and DNS malware protection toys by night. Avid user JBoss Enterprise Application Platform - application server of Wildfly and Infinispan clustering. Considers 1MB being plenty of memory and WildFly application server - upstream community version of JBoss EAP 16ms plenty of time. Java EE / Jakarta EE specifications (e.g. JAX-RS, CDI, JPA) 1 1/65535

  2. CONFIDENTIAL Designator Agenda ● High-level intro to MicroProfile (15 minutes) (Martin) ● High-level intro to Quarkus (5 minutes) (Karm) ● Demo of MP Starter: (15 minutes) (Karm) ● Demo of MP Starter REST API (5 minutes) (Karm) ● More MicroProfile specs and Q&A (Martin, Karm) 2

  3. Enterprise Java in past 20 years Java EE (currently Jakarta EE) ● Java EE 5 - May 11, 2006 ○ Java EE 6 - December 10, 2009 ○ Java EE 7 - June 12, 2013 ○ Java EE 8 - August 31, 2017 ○ 3

  4. MicroProfile Eclipse MicroProfile is an open-source community specification for Enterprise ● Java microservices A community of individuals, organizations, and vendors collaborating within an ● open source (Eclipse) project to bring microservices to the Enterprise Java community 4

  5. MicroProfile 5

  6. +Under discussion Long Running Actions (LRA) ● Service mesh ● GraphQL ● Logging ● ... ● 6

  7. Community - individuals, organizations, vendors 7

  8. Current MicroProfile implementations And some are In Progress: Quarkus, WildFly... 8

  9. Differences from Java EE open source and open community ● code first approach ● release cadence ● MP 1.0 - Sep 2016 ○ MP 1.1 - Aug 2017 ○ MP 1.2 - Sep 2017 ○ MP 1.3 - Jan 2018 ○ MP 1.4 / MP 2.0 - Jun 2018 ○ MP 2.1 - Oct 2018 ○ 9

  10. Differences from Java EE ● 3 releases per year (Feb, Jun, Oct) MP 2.2 - Feb 2019 ○ MP 3.0 - Jun 2019 ○ MP 3.1 - Oct 2019 ○ ... ○ 10

  11. MicroProfile 3.2 11

  12. microprofile.io 12

  13. What is MicroProfile Starter MicroProfile Starter generates working sample code for MicroProfile specifications: ● To lower the learning curve for using MicroProfile specifications ○ To increase developer productivity ○ To deliver solutions faster to the business ○ A starter/generator had been discussed by the community many times before ● Earliest whisper by James Strachan back at Devoxx BE 2016 ○ An independent community member, Rudy De Busscher, on Aug 21, 2018, attended the ● bi-weekly MicroProfile community Hangout call and demoed a prototype that he had developed - (Rudy was hired by Payara subsequently) Starter team was assembled soon after. Starter Beta released on Feb 6, 2019. ● Current team members are from many organizations and communities: Rudy, Karm, YK, Ryan, ● etc. If you’d like to participate and help us develop the Starter, please post your desire to help us at ● microprofile@googlegroups.com to get you looped in Need help developing extensions for IntelliJ IDEA, Eclipse IDE, Netbeans, Eclipse Che ○ 13

  14. start.microprofile.io ● Examples generator for a variety of runtimes ● This is NOT just a pom.xml generator ● Sports REST API for easier integration ● Best for your first contact with MicroProfile, using your favourite runtime you are used to 14

  15. ❤ How to contribute ❤ ● Runtimes implementations ○ Adding your MP implementation - ensure it passes the MP TCKs for the umbrella release and is added to the MP implementations page ○ Improving current runtimes implementations. Are you a Launcher or KumuluzEE fan? Helidon expert? Take a look... ● Contribute to develop more code examples for MP specs ○ Follow these instructions ○ Do a Pull Request on the Starter project ○ Add your implementation or new code examples ○ Test your additions to the MicroProfile starter project ○ Community review, requires 2 acks ○ Merge 15

  16. What is Quarkus? A Kubernetes Native Java stack tailored for GraalVM & OpenJDK HotSpot, ● crafted from the best of breed Java libraries and standards Great interoperability with containers, small memory footprint ● Toolchain for building Java applications with a lot of heavy lifting done at build ● time instead of runtime 16

  17. Best of breed frameworks and standards Eclipse Vert.x Hibernate RESTEasy Apache Camel Eclipse MicroProfile Netty Kubernetes OpenShift Jaeger Prometheus Apache Kafka Infinispan For a complete list of supported extensions: https://github.com/quarkusio/quarkus/tree/master/extensions 17

  18. Developer joy A cohesive platform for optimized developer joy: Based on standards, but not limited ● Unified configuration ● Zero config, live reload in the blink of an eye ● Streamlined code for the 80% common ● usages, flexible for the 20% No hassle native executable generation ● 18

  19. Supersonic Subatomic Java - Memory footprint REST Quarkus + GraalVM Quarkus + OpenJDK Traditional Cloud-Native Stack 13 MB 74 MB 140 MB RSS (Resident Set Size) 19

  20. Supersonic Subatomic Java: Startup time REST Quarkus + GraalVM 0.014 Seconds Quarkus + OpenJDK 0.75 Seconds Traditional Cloud-Native Stack 4.3 Seconds REST + CRUD Quarkus + GraalVM 0.055 Seconds Quarkus + OpenJDK 2.5 Seconds Traditional Cloud-Native Stack 9.5 Seconds Time to first response 20 Boot + First Response Time (in seconds)

  21. Supersonic Subatomic Java JVM mode and Native executable trade-offs Startup Time Packaging Size ...puts Java in FaaS field alongside Go and JS... Memory Footprint Throughput saves $ with cloud providers... 21

  22. Build / Dev / Native modes You can use Quarkus to build a small uberjar ● https://quarkus.io/guides/maven-tooling.html#uber-jar-maven ○ Use HotSpot or GraalVM to to run it ○ You can work in Dev mode ● where Quarkus monitors your changed files, quickly recompiles ○ enables hot deployment with background compilation ○ https://quarkus.io/guides/maven-tooling.html#development-mode ○ You can use Quarkus to easily create a single statically linked executable ● Leverages SubstrateVM and Native image from GraalVM toolchain ○ Single executable for particular architecture ○ https://quarkus.io/guides/building-native-image-guide ○ 22

  23. And now, on to the demos! 1. Starter web page, examples https://starter.karms.biz/ 2. Downloading Quarkus 3. Your generated examples 4. Other runtimes, Payara, Helidon… 5. REST API 23

  24. MicroProfile YouTube Channel Twitter @MicroProfileIO LinkedIn MicroProfile.IO FB MicroProfile Quarkus YouTube Channel Twitter @QuarkusIO LinkedIn Quarkusio FB Quarkusio

  25. To get the instructions for the demos you have seen today, go to: bit.ly/MPOpenAlt

  26. MicroProfile - get involved! Google Groups MicroProfile Projects Video Hangouts Bi-Weekly & Quarterly YouTube Channel General community Meetings 26

  27. Known implementations In Progress to pass TCK: 27

  28. Eclipse MicroProfile 3.1 Oct 2019 <dependency> <groupId> org.eclipse.microprofile </groupId> <artifactId> microprofile </artifactId> <version> ${microProfile.version} </version> <type>pom</type> </dependency> …or select specs as needed… 28

  29. What?! This is the takeaway: Eclipse MicroProfile, Optimizing Enterprise Java for a Microservices Architecture ● https://microprofile.io/ Starter to generate your examples projects for selected APIs ● https://start.microprofile.io/ https://starter.karms.biz/ (with Quarkus) Quarkus runtime for your next Java application ● https://quarkus.io/ 29

  30. Questions? 30

  31. CONFIDENTIAL Designator Thank you 31

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend