SlideShare a Scribd company logo
Cloud Native Java Development
Patterns and Principles for Designing Kubernetes Applications
FOSDEM
February 2017
Bilgin Ibryam
Cloud Native Java Development2
Bilgin Ibryam
●
Architect at Red Hat
●
Apache Isis, Camel, OFBiz Committer
●
Author of Apache Camel books
●
Blogs about Cloud Native and Microservices
●
Twitter: @bibryam
●
Email: bibryam@gmail.com
●
Blog: http://ofbizian.com
●
Github: https://github.com/bibryam
Cloud Native Java Development3
The Move to Cloud Native
?
Cloud Native Java Development4
Are You Cloud Native?
Applications adopting the principles of
Microservices packaged as
Containers orchestrated by
Platforms running on top of
Cloud infrastructure
Cloud Native Java Development5
Cloud Native Platforms
Cloud Native Java Development6
How to Run k8s as a Dev (not Ops)
●
Google Container Engine (GKE) – Kubernetes as a service
●
Microsoft Azure Container Service (ACS) – DC/OS, Swarm, Kubernetes as a service
●
Red Hat OpenShift Online – The largest multi-tenanted Kubernetes cluster
●
Minikube – For local development and testing
●
Maven plugin - mvn fabric8:cluster-start
https://fabric8.io/
Cloud Native Java Development7
k8s Primitives for Devs
●
How to package apps? → Container
●
What is the deployment unit? → Pod
●
How to group artifacts? → Labels
●
How to isolate resources? → Namespaces
●
How to mange configs? → ConfigMap/Secret
●
How to get storage? → PC/PVC
●
How to do service discovery & load balancing? → Service & Route
●
How to update/rollback services? → Deployment
Cloud Native Java Development8
Java Runtimes and Packaging
●
Spring Boot – the most popular
●
DropWizard – the second most popular
●
WildFly-Swarm – for JEE compliance
●
Immutable Karaf – for OSGI addicts
●
Standalone Java – for NIHS
●
MicroProfile – new initiative
HTTP Server, REST, JSON, Health
Checks, Circuit Breaker, Service Discovery,
Metrics, Configuration, Logging...
Cloud Native Java Development9
Dockerizing Java Applications
●
Java - OpenJDK or Oracle JDK? JDK or JRE?
●
Licensing and Distribution - Does Running Java on Docker Violate
Agreements?
●
CPU - Runtime.availableProcessors() ignores Linux taskset (JDK-6515172)
● $ echo '0-1' > /tmp/online
$ mount --bind /tmp/online /sys/devices/system/cpu/online
●
Memory - XX:+UseCGroupLimits (JDK-8170888)
● -XX:MaxRAM=$(cat /sys/fs/cgroup/memory/memory.limit_in_bytes)
●
Many “Container Best Practices” to learn
●
Fabric8 docker-maven-plugin: mvn package fabric8:build
Common issues:
Cloud Native Java Development10
Interacting with k8s
How to tell Kubernetes to:
●
Keep 3 instances of my-service up
●
Use the command "/bin/echo", "hello", "world" to start
●
Allocate 512MiB memory and one core for it
●
Make port 80 accessible
●
Set foo environment variable with bar value
●
Mount configs with name my-service to location /my-service
●
Mount a 5GB R/W persistent volume
●
And for updates do rolling update by bringing only 30% of containers down
Cloud Native Java Development11
Generating Application Descriptor
Start Kubernetes: mvn fabric8:cluster-start
Build (maven artifacts and docker image): mvn package fabric8:build
Deploy a service to Kubernetes: mvn fabric8:json fabric8:apply
Cloud Native Java Development12
Observable Interior
In order to be a good cloud native citizen, every app should be able to report
its health status.
●
Spring Boot Actuator
●
Dropwizard Metrics
●
WildFly Swarm Monitor
●
MicroProfile Healthchecks Proposal (MP-0003)
Cloud Native Java Development13
Observable Interior
R E V I S E D
AGAIN
Cloud Native Java Development14
Life Cycle Conformance
Allows applications to do graceful shutdown and startup.
●
To stop a pod, Kubernetes will send SIGTERM 30 seconds before SIGKILL
●
PreStop lifecycle hook executed prior to sending SIGTERM.
●
PostStart sent immediately after a container is created.
●
Termination message - /dev/termination-log
Cloud Native Java Development16
Service Discovery & Load Balancing
Provided by the platform
Cloud Native Java Development18
Application Resilience on the JVM
Netflix Hystrix: Circuit Breaker, TimeOuts, BulkHead, Retry
Cloud Native Java Development19
For true resilience you must go
outside of the JVM!
●
Infinite loops: CPU shares and quotas
●
Memory leaks: OOM yourself
●
Disk hogs: Quotas
●
Fork bombs: Process limits
●
Process Bulkhead with Containers
●
Hardware Bulkhead through the Scheduler
●
Self Healing
●
AntiFragile
Cloud Native Java Development20
More Kubernetes Patterns
●
SideCar, Adapter, Ambassador - Pod
●
Managed Configurations – ConfigMaps/Secrets
●
Singleton Services (File, RDB, NoSQL, Message Queue) - replicas: 1
●
Batch Jobs (JDK Timer, JDK ScheduledExecutorService, Quartz Scheduler) - CronJob
●
Initializers, Daemon Services – Init Container, Daemon Sets
●
Self Healing – Containers, Pods, Health Checks, Scheduler
●
AntiFragile – Infrastructure and application Autoscaler
Cloud Native Java Development21
In Summary
✔ Let the platform handle the repeating boring tasks.
✔ Use Java to focus on the problem domain instead.
✔ Don't reinvent the wheel, use Fabric8 tools.
Q & A
@bibryam
Fabric8 https://fabric8.io
Kubernetes http://kubernetes.io
Kubernetes Patterns – book coming soon!

More Related Content

What's hot (20)

PDF
The evolving container landscape
Nilesh Trivedi
 
PDF
Google Cloud Platform and Kubernetes
Kasper Nissen
 
PPTX
High Performance Cloud-Native Microservices With Distributed Caching
Mesut Celik
 
PPTX
Webinar: End-to-End CI/CD with GitLab and DC/OS
Mesosphere Inc.
 
PPTX
Episode 4: Operating Kubernetes at Scale with DC/OS
Mesosphere Inc.
 
PDF
3 - Delen Private Bank: FOSS adventures in a Cloud Native world
Kangaroot
 
PPTX
Microservices with Spring
Carlos Cavero Barca
 
PDF
Modernization patterns to refactor a legacy application into event driven mic...
Bilgin Ibryam
 
PDF
Serverless stream processing of Debezium data change events with Knative | De...
Red Hat Developers
 
PDF
Cncf storage-final-filip
Juraj Hantak
 
PDF
Cloud Native Development
Manuel Garcia
 
PPTX
WebSphere 20th - Application modernization
Arthur De Magalhaes
 
PPTX
Introduction to helm
Jeeva Chelladhurai
 
PDF
Storage os kubernetes clusters need persistent data
LibbySchulze
 
PPTX
PKS - Solving Complexity for Modern Data Workloads
Carlos Andrés García
 
PDF
Persist your data in an ephemeral k8 ecosystem
LibbySchulze
 
PDF
Google Anthos - Azure Stack - AWS Outposts :Comparison
Krishna-Kumar
 
PDF
Modernizing Traditional Applications with Docker EE: From PoC to Production
Docker, Inc.
 
PDF
Cloud Native Use Cases / Case Studies - KubeCon 2019 San Diego - RECAP
Krishna-Kumar
 
PDF
Best Practices for Managing Kubernetes and Stateful Services: Mesosphere & Sy...
Mesosphere Inc.
 
The evolving container landscape
Nilesh Trivedi
 
Google Cloud Platform and Kubernetes
Kasper Nissen
 
High Performance Cloud-Native Microservices With Distributed Caching
Mesut Celik
 
Webinar: End-to-End CI/CD with GitLab and DC/OS
Mesosphere Inc.
 
Episode 4: Operating Kubernetes at Scale with DC/OS
Mesosphere Inc.
 
3 - Delen Private Bank: FOSS adventures in a Cloud Native world
Kangaroot
 
Microservices with Spring
Carlos Cavero Barca
 
Modernization patterns to refactor a legacy application into event driven mic...
Bilgin Ibryam
 
Serverless stream processing of Debezium data change events with Knative | De...
Red Hat Developers
 
Cncf storage-final-filip
Juraj Hantak
 
Cloud Native Development
Manuel Garcia
 
WebSphere 20th - Application modernization
Arthur De Magalhaes
 
Introduction to helm
Jeeva Chelladhurai
 
Storage os kubernetes clusters need persistent data
LibbySchulze
 
PKS - Solving Complexity for Modern Data Workloads
Carlos Andrés García
 
Persist your data in an ephemeral k8 ecosystem
LibbySchulze
 
Google Anthos - Azure Stack - AWS Outposts :Comparison
Krishna-Kumar
 
Modernizing Traditional Applications with Docker EE: From PoC to Production
Docker, Inc.
 
Cloud Native Use Cases / Case Studies - KubeCon 2019 San Diego - RECAP
Krishna-Kumar
 
Best Practices for Managing Kubernetes and Stateful Services: Mesosphere & Sy...
Mesosphere Inc.
 

Viewers also liked (20)

PDF
Cloud Native Camel Design Patterns
Bilgin Ibryam
 
PDF
Kubernetes networking in AWS
Zvika Gazit
 
PPTX
Achieving Cost and Resource Efficiency through Docker, OpenShift and Kubernetes
Dean Delamont
 
PDF
Extend and build on Kubernetes
Stefan Schimanski
 
PDF
Camel Desing Patterns Learned Through Blood, Sweat, and Tears
Bilgin Ibryam
 
PPTX
Serverless on Kubernetes
Sebastien Goasguen
 
PPTX
RackN DevOps meetup NYC
Bob Sokol
 
PDF
Welcome talk for Moscow Kubernetes Meetup 1
MoscowKubernetes
 
PDF
Opening: builderscon tokyo 2016
lestrrat
 
PDF
Net core, mssql, container und kubernetes
Thomas Fricke
 
PDF
Mirantis Contributions to Kubernetes Ecosystem
MoscowKubernetes
 
PPTX
Ростислав Фридман: “Kubernetes как средство управления микросервисами"
Provectus
 
PPTX
Microservices summit talk 1/31
Varun Talwar
 
PPTX
Keeping up with Tech
Elana Krasner
 
PDF
Docker Containers in Azure
Aarno Aukia
 
PPTX
Deploy your favorite apps on Kubernetes
Adnan Abdulhussein
 
PPTX
Kubernetes as Orchestrator for A10 Lightning Controller
Akshay Mathur
 
PDF
Google Cloud Computing compares GCE, GAE and GKE
Simon Su
 
PDF
Kubernetes API - deep dive into the kube-apiserver
Stefan Schimanski
 
PDF
Bangalore Container Conference - Sponsor Deck
CodeOps Technologies LLP
 
Cloud Native Camel Design Patterns
Bilgin Ibryam
 
Kubernetes networking in AWS
Zvika Gazit
 
Achieving Cost and Resource Efficiency through Docker, OpenShift and Kubernetes
Dean Delamont
 
Extend and build on Kubernetes
Stefan Schimanski
 
Camel Desing Patterns Learned Through Blood, Sweat, and Tears
Bilgin Ibryam
 
Serverless on Kubernetes
Sebastien Goasguen
 
RackN DevOps meetup NYC
Bob Sokol
 
Welcome talk for Moscow Kubernetes Meetup 1
MoscowKubernetes
 
Opening: builderscon tokyo 2016
lestrrat
 
Net core, mssql, container und kubernetes
Thomas Fricke
 
Mirantis Contributions to Kubernetes Ecosystem
MoscowKubernetes
 
Ростислав Фридман: “Kubernetes как средство управления микросервисами"
Provectus
 
Microservices summit talk 1/31
Varun Talwar
 
Keeping up with Tech
Elana Krasner
 
Docker Containers in Azure
Aarno Aukia
 
Deploy your favorite apps on Kubernetes
Adnan Abdulhussein
 
Kubernetes as Orchestrator for A10 Lightning Controller
Akshay Mathur
 
Google Cloud Computing compares GCE, GAE and GKE
Simon Su
 
Kubernetes API - deep dive into the kube-apiserver
Stefan Schimanski
 
Bangalore Container Conference - Sponsor Deck
CodeOps Technologies LLP
 
Ad

Similar to Cloud Native Java Development Patterns (20)

PDF
Integration in the Age of DevOps
Brian Ashburn
 
PDF
Workday "Creating an Effective Developer Experience on Kubernetes"
Daniel Bryant
 
PDF
CNCF Webinar Series: "Creating an Effective Developer Experience on Kubernetes"
Daniel Bryant
 
PDF
Cloud Native Spring In Action With Spring Boot And Kubernetes 1st Edition Tho...
larrentehna
 
PDF
How to develop your first cloud-native Applications with Java - 30 Minutes
Niklas Heidloff
 
PDF
Cloud Native Spring in Action 1st Edition Thomas Vitale
kannorarcus
 
PDF
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
Mario-Leander Reimer
 
PDF
A hitchhiker‘s guide to the cloud native stack
QAware GmbH
 
PDF
KCD Czech & Slovak 2024 Keynote - Celebrating a Decade of Kubernetes and Adva...
Filip Pohronsky
 
PDF
SACON NY 19: "Creating an effective developer experience for cloud-native apps"
Daniel Bryant
 
PDF
Cloud Native Camel Riding
Christian Posta
 
PDF
Cloud Native Java Designing Resilient Systems With Spring Boot Spring Cloud A...
yiogomboya
 
PPTX
Are you ready for cloud-native Java?
Graham Charters
 
PPTX
CF Summit: A Developer's Perspective
Georgi Sabev
 
PDF
Cloud Native (Bert Ertman)
Anton de Ruiter
 
PDF
2019-10-15 - the future of cloud-native Java - Bert Ertman
Apeldoorn JUG
 
PPTX
Highly available nodejs
pfremm
 
PDF
Instant Access to Continuous Delivery in Java Essential Tools and Best Practi...
connermoutik
 
PDF
[Ebooks PDF] download Continuous Delivery in Java Essential Tools and Best Pr...
uouochanee
 
PDF
stackconf 2020 | The blinking cursor or kubernetes for people who aren´t supp...
NETWAYS
 
Integration in the Age of DevOps
Brian Ashburn
 
Workday "Creating an Effective Developer Experience on Kubernetes"
Daniel Bryant
 
CNCF Webinar Series: "Creating an Effective Developer Experience on Kubernetes"
Daniel Bryant
 
Cloud Native Spring In Action With Spring Boot And Kubernetes 1st Edition Tho...
larrentehna
 
How to develop your first cloud-native Applications with Java - 30 Minutes
Niklas Heidloff
 
Cloud Native Spring in Action 1st Edition Thomas Vitale
kannorarcus
 
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
Mario-Leander Reimer
 
A hitchhiker‘s guide to the cloud native stack
QAware GmbH
 
KCD Czech & Slovak 2024 Keynote - Celebrating a Decade of Kubernetes and Adva...
Filip Pohronsky
 
SACON NY 19: "Creating an effective developer experience for cloud-native apps"
Daniel Bryant
 
Cloud Native Camel Riding
Christian Posta
 
Cloud Native Java Designing Resilient Systems With Spring Boot Spring Cloud A...
yiogomboya
 
Are you ready for cloud-native Java?
Graham Charters
 
CF Summit: A Developer's Perspective
Georgi Sabev
 
Cloud Native (Bert Ertman)
Anton de Ruiter
 
2019-10-15 - the future of cloud-native Java - Bert Ertman
Apeldoorn JUG
 
Highly available nodejs
pfremm
 
Instant Access to Continuous Delivery in Java Essential Tools and Best Practi...
connermoutik
 
[Ebooks PDF] download Continuous Delivery in Java Essential Tools and Best Pr...
uouochanee
 
stackconf 2020 | The blinking cursor or kubernetes for people who aren´t supp...
NETWAYS
 
Ad

Recently uploaded (20)

PPTX
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
PDF
Powering GIS with FME and VertiGIS - Peak of Data & AI 2025
Safe Software
 
PPTX
Perfecting XM Cloud for Multisite Setup.pptx
Ahmed Okour
 
PDF
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
PPT
MergeSortfbsjbjsfk sdfik k
RafishaikIT02044
 
PPTX
How Odoo Became a Game-Changer for an IT Company in Manufacturing ERP
SatishKumar2651
 
PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
PDF
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
PPTX
Tally software_Introduction_Presentation
AditiBansal54083
 
PPTX
Writing Better Code - Helping Developers make Decisions.pptx
Lorraine Steyn
 
PDF
Thread In Android-Mastering Concurrency for Responsive Apps.pdf
Nabin Dhakal
 
PPTX
A Complete Guide to Salesforce SMS Integrations Build Scalable Messaging With...
360 SMS APP
 
PPTX
MailsDaddy Outlook OST to PST converter.pptx
abhishekdutt366
 
PDF
GridView,Recycler view, API, SQLITE& NetworkRequest.pdf
Nabin Dhakal
 
PDF
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
PDF
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
PPTX
Revolutionizing Code Modernization with AI
KrzysztofKkol1
 
PDF
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
PDF
Capcut Pro Crack For PC Latest Version {Fully Unlocked} 2025
hashhshs786
 
PDF
Efficient, Automated Claims Processing Software for Insurers
Insurance Tech Services
 
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
Powering GIS with FME and VertiGIS - Peak of Data & AI 2025
Safe Software
 
Perfecting XM Cloud for Multisite Setup.pptx
Ahmed Okour
 
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
MergeSortfbsjbjsfk sdfik k
RafishaikIT02044
 
How Odoo Became a Game-Changer for an IT Company in Manufacturing ERP
SatishKumar2651
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
Tally software_Introduction_Presentation
AditiBansal54083
 
Writing Better Code - Helping Developers make Decisions.pptx
Lorraine Steyn
 
Thread In Android-Mastering Concurrency for Responsive Apps.pdf
Nabin Dhakal
 
A Complete Guide to Salesforce SMS Integrations Build Scalable Messaging With...
360 SMS APP
 
MailsDaddy Outlook OST to PST converter.pptx
abhishekdutt366
 
GridView,Recycler view, API, SQLITE& NetworkRequest.pdf
Nabin Dhakal
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
Revolutionizing Code Modernization with AI
KrzysztofKkol1
 
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
Capcut Pro Crack For PC Latest Version {Fully Unlocked} 2025
hashhshs786
 
Efficient, Automated Claims Processing Software for Insurers
Insurance Tech Services
 

Cloud Native Java Development Patterns

  • 1. Cloud Native Java Development Patterns and Principles for Designing Kubernetes Applications FOSDEM February 2017 Bilgin Ibryam
  • 2. Cloud Native Java Development2 Bilgin Ibryam ● Architect at Red Hat ● Apache Isis, Camel, OFBiz Committer ● Author of Apache Camel books ● Blogs about Cloud Native and Microservices ● Twitter: @bibryam ● Email: [email protected] ● Blog: http://ofbizian.com ● Github: https://github.com/bibryam
  • 3. Cloud Native Java Development3 The Move to Cloud Native ?
  • 4. Cloud Native Java Development4 Are You Cloud Native? Applications adopting the principles of Microservices packaged as Containers orchestrated by Platforms running on top of Cloud infrastructure
  • 5. Cloud Native Java Development5 Cloud Native Platforms
  • 6. Cloud Native Java Development6 How to Run k8s as a Dev (not Ops) ● Google Container Engine (GKE) – Kubernetes as a service ● Microsoft Azure Container Service (ACS) – DC/OS, Swarm, Kubernetes as a service ● Red Hat OpenShift Online – The largest multi-tenanted Kubernetes cluster ● Minikube – For local development and testing ● Maven plugin - mvn fabric8:cluster-start https://fabric8.io/
  • 7. Cloud Native Java Development7 k8s Primitives for Devs ● How to package apps? → Container ● What is the deployment unit? → Pod ● How to group artifacts? → Labels ● How to isolate resources? → Namespaces ● How to mange configs? → ConfigMap/Secret ● How to get storage? → PC/PVC ● How to do service discovery & load balancing? → Service & Route ● How to update/rollback services? → Deployment
  • 8. Cloud Native Java Development8 Java Runtimes and Packaging ● Spring Boot – the most popular ● DropWizard – the second most popular ● WildFly-Swarm – for JEE compliance ● Immutable Karaf – for OSGI addicts ● Standalone Java – for NIHS ● MicroProfile – new initiative HTTP Server, REST, JSON, Health Checks, Circuit Breaker, Service Discovery, Metrics, Configuration, Logging...
  • 9. Cloud Native Java Development9 Dockerizing Java Applications ● Java - OpenJDK or Oracle JDK? JDK or JRE? ● Licensing and Distribution - Does Running Java on Docker Violate Agreements? ● CPU - Runtime.availableProcessors() ignores Linux taskset (JDK-6515172) ● $ echo '0-1' > /tmp/online $ mount --bind /tmp/online /sys/devices/system/cpu/online ● Memory - XX:+UseCGroupLimits (JDK-8170888) ● -XX:MaxRAM=$(cat /sys/fs/cgroup/memory/memory.limit_in_bytes) ● Many “Container Best Practices” to learn ● Fabric8 docker-maven-plugin: mvn package fabric8:build Common issues:
  • 10. Cloud Native Java Development10 Interacting with k8s How to tell Kubernetes to: ● Keep 3 instances of my-service up ● Use the command "/bin/echo", "hello", "world" to start ● Allocate 512MiB memory and one core for it ● Make port 80 accessible ● Set foo environment variable with bar value ● Mount configs with name my-service to location /my-service ● Mount a 5GB R/W persistent volume ● And for updates do rolling update by bringing only 30% of containers down
  • 11. Cloud Native Java Development11 Generating Application Descriptor Start Kubernetes: mvn fabric8:cluster-start Build (maven artifacts and docker image): mvn package fabric8:build Deploy a service to Kubernetes: mvn fabric8:json fabric8:apply
  • 12. Cloud Native Java Development12 Observable Interior In order to be a good cloud native citizen, every app should be able to report its health status. ● Spring Boot Actuator ● Dropwizard Metrics ● WildFly Swarm Monitor ● MicroProfile Healthchecks Proposal (MP-0003)
  • 13. Cloud Native Java Development13 Observable Interior R E V I S E D AGAIN
  • 14. Cloud Native Java Development14 Life Cycle Conformance Allows applications to do graceful shutdown and startup. ● To stop a pod, Kubernetes will send SIGTERM 30 seconds before SIGKILL ● PreStop lifecycle hook executed prior to sending SIGTERM. ● PostStart sent immediately after a container is created. ● Termination message - /dev/termination-log
  • 15. Cloud Native Java Development16 Service Discovery & Load Balancing Provided by the platform
  • 16. Cloud Native Java Development18 Application Resilience on the JVM Netflix Hystrix: Circuit Breaker, TimeOuts, BulkHead, Retry
  • 17. Cloud Native Java Development19 For true resilience you must go outside of the JVM! ● Infinite loops: CPU shares and quotas ● Memory leaks: OOM yourself ● Disk hogs: Quotas ● Fork bombs: Process limits ● Process Bulkhead with Containers ● Hardware Bulkhead through the Scheduler ● Self Healing ● AntiFragile
  • 18. Cloud Native Java Development20 More Kubernetes Patterns ● SideCar, Adapter, Ambassador - Pod ● Managed Configurations – ConfigMaps/Secrets ● Singleton Services (File, RDB, NoSQL, Message Queue) - replicas: 1 ● Batch Jobs (JDK Timer, JDK ScheduledExecutorService, Quartz Scheduler) - CronJob ● Initializers, Daemon Services – Init Container, Daemon Sets ● Self Healing – Containers, Pods, Health Checks, Scheduler ● AntiFragile – Infrastructure and application Autoscaler
  • 19. Cloud Native Java Development21 In Summary ✔ Let the platform handle the repeating boring tasks. ✔ Use Java to focus on the problem domain instead. ✔ Don't reinvent the wheel, use Fabric8 tools.
  • 20. Q & A @bibryam Fabric8 https://fabric8.io Kubernetes http://kubernetes.io Kubernetes Patterns – book coming soon!

Editor's Notes

  • #3: Architect Committer Blog books Middleware architect at RH consulting ½ day to over a year. Bug fix, healthcheck, design, implemented, POC Camel committer, contribited compoents such as aws-ses, aws-cloudwatch, aws- swf, aws-sdb, aws-ddb, solr, cmis, fop, redis, infinispan, jbpm, circuit breaker EIP, hystrix components Blogger about opensource, integration and came and author...Camel messages routing book which is an introduction to Camel and more recent book about Camel Design Patterns… which is the topic of this presentation. The goal today is to cover half of the more popular patterns from this book
  • #4: microservices - my blog about MSA years ago. But now there is a formalized, recognized, vocabulary