Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building Microservices with Jakarta EE and MicroProfile

Building Microservices with Jakarta EE and MicroProfile

We live in an era of building enterprise software with build pipelines, containerization and clouds in order to provide business value. In order to maintain the quality of your software and fast delivery, you must optimize the development process and release strategy with tools and concepts that complement each other.

I will provide insights in how to implement these optimizations utilizing the Jakarta EE platform with the addition of Eclipse MicroProfile. The audience will learn why this specific platform is such a valuable asset in the arsenal of tools for developing enterprise software.

Edwin Derks

July 30, 2019
Tweet

More Decks by Edwin Derks

Other Decks in Programming

Transcript

  1. Photo by Inge Wallumrød from Pexels - Vendors and Portability

    - Deployment types - Efficient development - MicroProfile
  2. Photo by David Dibert from Pexels - Ship Jakarta EE

    with Docker - Running Jakarta EE in a cloud-native environment
  3. Photo by Miguel Á. Padriñán from Pexels Uber / Fat

    JAR Application Server Hollow JAR +
  4. <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>8.0</version> <scope>provided</scope> </dependency> Jakarta EE compliant Application

    Server • One complete package providing Jakarta EE • What you see is what you get • Thoroughly tested by vendor • Easily patched and upgraded • Enables portability for enterprise applications WAR / EAR • Ideally only contains your business logic • Lean and tidy when built properly Java • Runs with Java version supported by the server The Jakarta EE compliant Application Server • Easy and fast redeploy in IDE • Keeps you focussed • Should save lots of development time
  5. Examples of Application Server Vendors Community Edition & Production Supported

    Community Edition Community Edition Production Supported
  6. Designed for building and running scalable applications Building Microservices with

    Eclipse Microprofile - Java EE 8 base (CDI, JSON-P, JAX-RS) - Microservice APIs - Healthcheck - Fault Tolerance - Metrics - Config - Tracing - Rest Client - JWT
  7. Building Microservices with Eclipse Microprofile Java • Runs with Java

    version supported by the server JAR Compiled Java Bytecode • One single artifact • Little to no operational management tools • Contains your code and application server • Opposite of lean and tidy, so bigger in size <dependency> <groupId>org.eclipse.microprofile</groupId> <artifactId>microprofile</artifactId> <version>3.0</version> <type>pom</type> </dependency>
  8. Jakarta EE & MicroProfile compliant Application Server WAR / EAR

    Java • Runs with Java version supported by the server The Jakarta EE compliant Application Server for Microservices <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>8.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.eclipse.microprofile</groupId> <artifactId>microprofile</artifactId> <version>3.0</version> <type>pom</type> </dependency>
  9. And to mix it up even further… meet the Hollow

    JAR Java • Runs with Java version supported by the server JAR WA R • Applications server as one single artifact • Little to no operational management tools • Don’t include the whole application server with every build of your application • Ideal for running your application server like a microservice
  10. Photo by David Dibert from Pexels But in the end

    Docker … does it even matter?
  11. Shipping and deploying with Docker Docker Image Choose your deployment

    type Java JAR / WAR / EAR Operational Environment • Use docker-compose • Ship anywhere • Run anywhere Docker Image Choose your deployment type Java JAR / WAR / EAR
  12. The Majestic Monolith “We realise that the majority of applications

    developed using Java EE (and in the future, Jakarta EE) don't need the scalability and complexity of an extreme, distributed microservices architecture.” -- Steve Millidge (Payara Founder) https://blog.payara.fish/the-future-of-the-payara-platform But do you really need Microservices?