Developing Java based microservices ready for the world of containers
The so-called experts are saying microservices and containers will change the way we build, maintain, operate, and integrate applications. This talk is intended for Java developers who wants to hear and see how you can develop Java microservices that are ready to run in containers.
In this talk we will build a set of Java based Microservices that uses a mix of technologies with:
- Spring Boot with Apache Camel
- Apache Tomcat with Apache Camel
You will see how we can build small discrete microservices with these Java technologies and build and deploy on the Kubernets/OpenShift3 container platform.
We will discuss practices how to build distributed and fault tolerant microservices using technologies such as Kubernetes Services, Camel EIPs, Netflixx Hysterix, and Ribbon.
We will use Zipkin service tracing across all four Java based microservices to provide a visualization of timings and help highlight latency problems in our mesh of microservices.
And the self healing and fault tolerant aspects of the Kubernetes/OpenShift3 platform is also discussed and demoed when we let the chaos monkeys loose killing containers.
This talk is a 50/50 mix between slides and demo.
2. I was here in 2015
.. and talking about Apache Camel
3. Claus Ibsen
• Principal Software Engineer
at Red Hat
• Apache Camel
8 years working with Camel
• Author of
Camel in Action books
@davsclaus
davsclaus
davsclaus.com
11. Kubernetes
‣ Open Source orchestration platform for Docker
containers
• Rewrite of Google’s internal framework “Borg”
‣ Declarative specification of a desired state
‣ Self-healing
‣ Service discovery
‣ Scheduling across hosts
‣ Replication
13. Key Concepts
‣Nodes
• Worker machine (physical or VM) running pods
‣Pods
• Collection of one or more Docker containers
‣Replication Controller
• Creates and takes care of Pods
‣Services
• Network Proxy for a collection of Pods
‣Labels
• Grouping and organization of Objects
‣Namespaces
• Virtual clusters backend by same physical cluster
16. fabric8
‣ Tools and Services for value add to Kubernetes and
OpenShift
• Management: console, logging, metrics, dashboards, …
• Continuous Delivery Workflow
• iPaaS: Camel route visualization, API registry, Messaging as
a Service, …
• Tools: Kubernetes/OpenShift build integration, Kubernetes
component test support, CDI extensions
• Quickstarts: Ready to use examples, also available as
Maven archetypes
42. Using Kubernetes
Service
• Environment Variables
• Hostname
• Port
Client
from timer
to http
log
Service Discovery using DNS is available
in newer versions of Kubernetes.