Deploy your Java applications to the Cloud using Eclipse JKube

Marc Nuri

About me
Illustration of Marc Nuri

Marc Nuri

Senior Software Engineer - Red Hat

Working on:

  • Fabric8 Kubernetes Client
  • Eclipse JKube
@MarcNuri
Agenda
  • Cloud Native / Kubernetes
  • What is Eclipse JKube?
  • Demo
    • From zero to cloud with Maven and Eclipse JKube
    • Old school Java Web application ready for the cloud
  • Future developments
Cloud Native Java

Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.

Cloud Native Computing Foundation (CNCF)

Deploying my Java app into Kubernetes isn't stressing me out.

Benjamin Price, 23 years old.

Microservice / Distributed Architecture

Challenges

  • Data consistency and transactionality
  • Security
  • Service discovery
  • Service Communications (Point 2 point connections, Messaging, service mesh)
  • Distributed logging
  • Monitoring
  • Fault tolerance
  • Twelve-factor apps, design to fail, resilience, ...

Developer Workflow

Docker Namespace Deployment ReplicaSet Pod Service Ingress ConfigMap Secret Volume
What is Eclipse JKube?
  • Tools and plugins
    • Generate container images
    • Generate and deploy configuration manifests (Kubernetes / OpenShift)
  • Standalone Java API (Kit) & Maven Plugins
    • Kubernetes Maven Plugin (k8s)
    • OpenShift Maven Plugin (oc)
  • Build Strategies
    • Docker: uses local Docker Daemon (k8s) or remote (oc)
    • S2I: OC only plugin configuration
    • JIB: delegates to build to JIB (Dockerless)
What is Eclipse JKube? (2)
  • Support for multiple frameworks and technologies
    WildFly Eclipse Vert.x Quarkus Spring Boot Open Liberty Thorntail Apache Tomcat Eclipse Jetty Apache Karaf
  • 3 configuration modes
    • Zero Config, Opinionated defaults
    • XML plugin configuration
    • Resource fragments enrich missing parts of opinionated defaults
What is Eclipse JKube? Simplified Developer Workflow

From zero to cloud with Maven and Eclipse JKube

Demo

Old school Java Web application ready for the cloud

Demo

What's coming - Roadmap
  • Additional build strategies (Kaniko)
  • Gradle Plugins
  • Support for more frameworks
  • ...get involved to decide