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

Jakarta EE: A Weapon of Mass Development

Jakarta EE: A Weapon of Mass Development

We live in an era of building enterprise software in agile teams, using build pipelines, containerization and clouds in order to provide business value to the latest standards. Applying these concepts, it can’t be denied that there is more to building software than writing code and deploying it on an application server.

There are several additional concepts to adopt in order to test the software, release it in production and make it scalable. In my experience, a lot of factors can delay the time to market of new features because they cause overhead in time, maintenance and resources.

In order to maintain the quality of your software and fast delivery, you can optimize the development process, release strategy and deployment of enterprise software with tools and concepts that complement each other.

I will provide insights in how to apply these optimizations that revolve around a particular key component: the Jakarta EE platform. The audience will learn why this specific platform is such a valuable asset in the arsenal of tools for developing enterprise software.

Edwin Derks

April 26, 2019
Tweet

More Decks by Edwin Derks

Other Decks in Programming

Transcript

  1. Photo by Inge Wallumrød from Pexels - Vendors - 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 • Exposes API’s 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 • Once it runs, it runs • 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>2.2</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>2.2</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 WAR • Applications server as one single artifact • Once it runs, it runs • Don’t include the whole application server with every build of your application
  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?