SlideShare a Scribd company logo
J4K 2020 One K8s ◆ One Java ◆ All Clouds
www.j4k.io
Quarkus -
Top 10 Kubernetes Features
John Clingan
Sr Principal Product Manager, Red Hat
MicroProfile Co-Founder and Committer
All around nice guy
@jclingan
www.j4k.io
Agenda
Quarkus in a Nutshell
Top 10 Kubernetes Features
www.j4k.io
Quarkus in a Nutshell
Java Runtime
Support standards and best of breed frameworks
www.j4k.io
Quarkus in a Nutshell
Developer Joy
www.j4k.io
Quarkus in a Nutshell
Unifies imperative and reactive
www.j4k.io
Quarkus in a Nutshell
Container First
www.j4k.io
1) One-step Kubernetes Deployment
● Deploys application to Kubernetes (and OpenShift )
● Generates deployment YAML for target Kubernetes environment
○ Customizes deployment YAML
■ Creates Service, ServiceAccount, RoleBinding
○ Add quarkus-kubernetes dependency
■ Add quarkus-kubernetes-minikube dependency for minikube customizations
■ Add quarkus-kubernetes-openshift dependency for openshift customizations
○ Add image-builder dependency
■ Add quarkus-container image docker
● Customize generated YAML (and JSON) using properties
● Deploy
mvn clean install -Dquarkus.kubernetes.deploy=true
www.j4k.io
2) Live Coding in Kubernetes
● Add quarkus-kubernetes extension dependency
● Configure remote development
quarkus.package.type=mutable-jar
quarkus.live-reload.password=abc123
quarkus.kubernetes.env.vars.QUARKUS_LAUNCH_DEVMODE=true
● Deploy to Kubernetes
mvn clean install -Dquarkus.kubernetes.deploy=true
● Start quarkus in remote-dev mode
mvn quarkus:remote-dev -Dquarkus.live-reload.url=<url>
www.j4k.io
3) Direct ConfigMap and Secrets Access
● Reads properties from a Kubernetes ConfigMap
● Overrides values in application.properties
● Usage:
○ Add quarkus-kubernetes-config extension to
dependencies
○ quarkus.kubernetes-config.enabled=true
○ quarkus.kubernetes-config.config-maps=map1,map2,...
○ quarkus.kubernetes-config.secrets.enabled=true
○ quarkus.kubernetes-config.secrets=secret1,secret2
Kubernetes Cluster
Master Node
Etcd API Server
Worker Node
app.jar
www.j4k.io
4) Health Endpoints
● Expose application availability and status
● Create custom application health checks
● Built-in health status for "client" extensions
○ Amazon services, Kafka, JMS, JDBC datasources,
○ Reactive SQL clients, Mongodb, Neo4j, Vault, gRPC
○ Elasticsearch, Redis, Cassandra
● Most built-in health checks are enabled by default
● Usage: Add quarkus-smallrye-health extension
www.j4k.io
5) Kubernetes Client
● Interact with Kubernetes API server / cluster using Fabric8 Kubernetes client
● CRUD Kubernetes objects
● Useful to create Kubernetes Operators in Java instead of Go
● Usage:
○ Add quarkus-kubernetes-client dependency
www.j4k.io
6) OpenMetrics Support
● Expose application metrics for external collection and monitoring
● Supports MicroProfile Metrics
○ Application Metrics, vendor metrics, JVM/system metrics
● New! Micrometer metrics extension
● Many Quarkus extensions provide their own metrics
○ Most disabled by default for performance; see extension guide for property enable
● Quarkus Grafana dashboard generator: http://quarkusdemos.net/
● Usage: Add quarkus-smallrye-metrics (or micrometer metrics) extension
www.j4k.io
7) OpenTracing Support
● Trace flow across service boundaries
● Supports MicroProfile OpenTracing
○ JAX-RS and MicroProfile Rest Client support
● No code
○ Optional: @Traced annotation to enable/disable class/method tracing
● Usage: Add quarkus-smallrye-opentracing extension
○ quarkus.jaeger.service-name=j4k
○ quarkus.jaeger.sampler-type=const
○ quarkus.jaeger.sampler-param=1
○ quarkus.kubernetes.annotations."sidecar.jaegertracing.io/inject"=true
www.j4k.io
8) One-step Knative Deployment
● Kubernetes extensions to deploy and manage serverless workloads
○ Knative Serving - autoscaling, scaling to zero
○ Knative Eventing - Universal delivery and management of events
● Usage
○ Add quarkus-kubernetes extension
○ quarkus.kubernetes.deployment-target=knative
www.j4k.io
9) Functions as a Service (Funqy)
● Portable Java API to write functions deployable to various FaaS environments
○ AWS Lambda
○ Azure Functions
○ Google Cloud Functions
○ Knative, CloudEvents
○ Standalone
● Usage
○ Add @Funq annotation to a method
○ Add quarkus-funqy-[binding] extension
○ quarkus.kubernetes.deployment-target=knative
www.j4k.io
10a) Efficiency: Fast Startup Time
www.j4k.io
10b) Efficiency: Low Memory Utilization
www.j4k.io
Source available at github.com/jclingan/quarkus-kube-top10
J4K 2020 One K8s ◆ One Java ◆ All Clouds
www.j4k.io
@j4kio
FOLLOW US ON
www.linkedin.com/ company / j4k /
www.facebook.com / j4kio /
The End

More Related Content

What's hot

GitBucket: Git Centric Software Development Platform by Scala
GitBucket:  Git Centric Software Development Platform by ScalaGitBucket:  Git Centric Software Development Platform by Scala
GitBucket: Git Centric Software Development Platform by Scala
takezoe
 
How to manage Kubernetes at scale with just git
How to manage Kubernetes at scale with just git How to manage Kubernetes at scale with just git
How to manage Kubernetes at scale with just git
Weaveworks
 
Trove Updates - Liberty Edition
Trove Updates - Liberty EditionTrove Updates - Liberty Edition
Trove Updates - Liberty Edition
OpenStack Foundation
 
WKSctl: Gitops Management of Kubernetes Clusters
WKSctl: Gitops Management of Kubernetes ClustersWKSctl: Gitops Management of Kubernetes Clusters
WKSctl: Gitops Management of Kubernetes Clusters
Weaveworks
 
Why observability matters - now and in the future (w/guest Grafana)
Why observability matters - now and in the future (w/guest Grafana)Why observability matters - now and in the future (w/guest Grafana)
Why observability matters - now and in the future (w/guest Grafana)
Weaveworks
 
Implementing Progressive Delivery with Your Team (by Leigh Capili)
Implementing Progressive Delivery with Your Team (by Leigh Capili)Implementing Progressive Delivery with Your Team (by Leigh Capili)
Implementing Progressive Delivery with Your Team (by Leigh Capili)
Weaveworks
 
OpenDaylight OpenStack Integration
OpenDaylight OpenStack IntegrationOpenDaylight OpenStack Integration
OpenDaylight OpenStack Integration
LinuxCon ContainerCon CloudOpen China
 
Kubernetes and OpenStack at Scale
Kubernetes and OpenStack at ScaleKubernetes and OpenStack at Scale
Kubernetes and OpenStack at Scale
Stephen Gordon
 
Cost Control and Rapid Innovation in Kubernetes with OpenRewrite
Cost Control and Rapid Innovation in Kubernetes with OpenRewriteCost Control and Rapid Innovation in Kubernetes with OpenRewrite
Cost Control and Rapid Innovation in Kubernetes with OpenRewrite
Konveyor Community
 
Shaker
ShakerShaker
Shaker
Ilya Shakhat
 
11th Docker Switzerland User Group Meetup
11th Docker Switzerland User Group Meetup11th Docker Switzerland User Group Meetup
11th Docker Switzerland User Group Meetup
Philipp Grossenbacher
 
Elasticsearch Monitoring in Openshift
Elasticsearch Monitoring in OpenshiftElasticsearch Monitoring in Openshift
Elasticsearch Monitoring in Openshift
Lukas Vlcek
 
Intro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps WorkshopIntro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps Workshop
Weaveworks
 
Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016
Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016
Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016
ManageIQ
 
DevOps at FSOFT as BOI | Nguyễn Hoài Nam, Vũ Xuân Lộc
DevOps at FSOFT as BOI | Nguyễn Hoài Nam, Vũ Xuân LộcDevOps at FSOFT as BOI | Nguyễn Hoài Nam, Vũ Xuân Lộc
DevOps at FSOFT as BOI | Nguyễn Hoài Nam, Vũ Xuân Lộc
Vietnam Open Infrastructure User Group
 
VietOpenStack meetup 7th High Performance VM
VietOpenStack meetup 7th High Performance VMVietOpenStack meetup 7th High Performance VM
VietOpenStack meetup 7th High Performance VM
Vietnam Open Infrastructure User Group
 
Migrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 months
Migrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 monthsMigrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 months
Migrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 months
Konveyor Community
 
Promise of DevOps
Promise of DevOpsPromise of DevOps
Promise of DevOps
Juraj Hantak
 
Neutron Updates - Kilo Edition
Neutron Updates - Kilo EditionNeutron Updates - Kilo Edition
Neutron Updates - Kilo Edition
OpenStack Foundation
 
Introduction to docker_notary_v1.0.0
Introduction to docker_notary_v1.0.0Introduction to docker_notary_v1.0.0
Introduction to docker_notary_v1.0.0
Anshul Patel
 

What's hot (20)

GitBucket: Git Centric Software Development Platform by Scala
GitBucket:  Git Centric Software Development Platform by ScalaGitBucket:  Git Centric Software Development Platform by Scala
GitBucket: Git Centric Software Development Platform by Scala
 
How to manage Kubernetes at scale with just git
How to manage Kubernetes at scale with just git How to manage Kubernetes at scale with just git
How to manage Kubernetes at scale with just git
 
Trove Updates - Liberty Edition
Trove Updates - Liberty EditionTrove Updates - Liberty Edition
Trove Updates - Liberty Edition
 
WKSctl: Gitops Management of Kubernetes Clusters
WKSctl: Gitops Management of Kubernetes ClustersWKSctl: Gitops Management of Kubernetes Clusters
WKSctl: Gitops Management of Kubernetes Clusters
 
Why observability matters - now and in the future (w/guest Grafana)
Why observability matters - now and in the future (w/guest Grafana)Why observability matters - now and in the future (w/guest Grafana)
Why observability matters - now and in the future (w/guest Grafana)
 
Implementing Progressive Delivery with Your Team (by Leigh Capili)
Implementing Progressive Delivery with Your Team (by Leigh Capili)Implementing Progressive Delivery with Your Team (by Leigh Capili)
Implementing Progressive Delivery with Your Team (by Leigh Capili)
 
OpenDaylight OpenStack Integration
OpenDaylight OpenStack IntegrationOpenDaylight OpenStack Integration
OpenDaylight OpenStack Integration
 
Kubernetes and OpenStack at Scale
Kubernetes and OpenStack at ScaleKubernetes and OpenStack at Scale
Kubernetes and OpenStack at Scale
 
Cost Control and Rapid Innovation in Kubernetes with OpenRewrite
Cost Control and Rapid Innovation in Kubernetes with OpenRewriteCost Control and Rapid Innovation in Kubernetes with OpenRewrite
Cost Control and Rapid Innovation in Kubernetes with OpenRewrite
 
Shaker
ShakerShaker
Shaker
 
11th Docker Switzerland User Group Meetup
11th Docker Switzerland User Group Meetup11th Docker Switzerland User Group Meetup
11th Docker Switzerland User Group Meetup
 
Elasticsearch Monitoring in Openshift
Elasticsearch Monitoring in OpenshiftElasticsearch Monitoring in Openshift
Elasticsearch Monitoring in Openshift
 
Intro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps WorkshopIntro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps Workshop
 
Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016
Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016
Pluggable Providers - Greg Blomquist - ManageIQ Design Summit 2016
 
DevOps at FSOFT as BOI | Nguyễn Hoài Nam, Vũ Xuân Lộc
DevOps at FSOFT as BOI | Nguyễn Hoài Nam, Vũ Xuân LộcDevOps at FSOFT as BOI | Nguyễn Hoài Nam, Vũ Xuân Lộc
DevOps at FSOFT as BOI | Nguyễn Hoài Nam, Vũ Xuân Lộc
 
VietOpenStack meetup 7th High Performance VM
VietOpenStack meetup 7th High Performance VMVietOpenStack meetup 7th High Performance VM
VietOpenStack meetup 7th High Performance VM
 
Migrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 months
Migrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 monthsMigrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 months
Migrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 months
 
Promise of DevOps
Promise of DevOpsPromise of DevOps
Promise of DevOps
 
Neutron Updates - Kilo Edition
Neutron Updates - Kilo EditionNeutron Updates - Kilo Edition
Neutron Updates - Kilo Edition
 
Introduction to docker_notary_v1.0.0
Introduction to docker_notary_v1.0.0Introduction to docker_notary_v1.0.0
Introduction to docker_notary_v1.0.0
 

Similar to Top 10 Kubernetes Native Java Quarkus Features

DCSF19 How Docker Simplifies Kubernetes for the Masses
DCSF19 How Docker Simplifies Kubernetes for the Masses  DCSF19 How Docker Simplifies Kubernetes for the Masses
DCSF19 How Docker Simplifies Kubernetes for the Masses
Docker, Inc.
 
Empowering Your Java Applications with Quarkus. A New Era of Fast, Efficient,...
Empowering Your Java Applications with Quarkus. A New Era of Fast, Efficient,...Empowering Your Java Applications with Quarkus. A New Era of Fast, Efficient,...
Empowering Your Java Applications with Quarkus. A New Era of Fast, Efficient,...
Ivelin Yanev
 
[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1
Rubens Dos Santos Filho
 
Using Docker Platform to Provide Services
Using Docker Platform to Provide ServicesUsing Docker Platform to Provide Services
Using Docker Platform to Provide Services
GLC Networks
 
Reactive Amsterdam - Maxim Burgerhout - Quarkus Intro
Reactive Amsterdam - Maxim Burgerhout - Quarkus IntroReactive Amsterdam - Maxim Burgerhout - Quarkus Intro
Reactive Amsterdam - Maxim Burgerhout - Quarkus Intro
Fabio Tiriticco
 
Containerising bootiful microservices javaeeconf
Containerising bootiful microservices javaeeconfContainerising bootiful microservices javaeeconf
Containerising bootiful microservices javaeeconf
Ivan Vasyliev
 
Cloud Native Java Development Patterns
Cloud Native Java Development PatternsCloud Native Java Development Patterns
Cloud Native Java Development Patterns
Bilgin Ibryam
 
Microservices and modularity with java
Microservices and modularity with javaMicroservices and modularity with java
Microservices and modularity with java
DPC Consulting Ltd
 
Red Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus IntroductionRed Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus Introduction
John Archer
 
ОЛЕГ МАЦЬКІВ «Crash course on Operator Framework» Lviv DevOps Conference 2019
ОЛЕГ МАЦЬКІВ «Crash course on Operator Framework» Lviv DevOps Conference 2019ОЛЕГ МАЦЬКІВ «Crash course on Operator Framework» Lviv DevOps Conference 2019
ОЛЕГ МАЦЬКІВ «Crash course on Operator Framework» Lviv DevOps Conference 2019
UA DevOps Conference
 
From Code to Kubernetes
From Code to KubernetesFrom Code to Kubernetes
From Code to Kubernetes
Daniel Oliveira Filho
 
On-Demand Image Resizing Extended - External Meet-up
On-Demand Image Resizing Extended - External Meet-upOn-Demand Image Resizing Extended - External Meet-up
On-Demand Image Resizing Extended - External Meet-up
Jonathan Lee
 
Spring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
Spring Boot to Quarkus: A real app migration experience | DevNation Tech TalkSpring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
Spring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
Red Hat Developers
 
What’s New in CloudStack 4.19, Abhishek Kumar, Release Manager Apache CloudSt...
What’s New in CloudStack 4.19, Abhishek Kumar, Release Manager Apache CloudSt...What’s New in CloudStack 4.19, Abhishek Kumar, Release Manager Apache CloudSt...
What’s New in CloudStack 4.19, Abhishek Kumar, Release Manager Apache CloudSt...
ShapeBlue
 
OSDC 2018 | Highly Available Cloud Foundry on Kubernetes by Cornelius Schumacher
OSDC 2018 | Highly Available Cloud Foundry on Kubernetes by Cornelius SchumacherOSDC 2018 | Highly Available Cloud Foundry on Kubernetes by Cornelius Schumacher
OSDC 2018 | Highly Available Cloud Foundry on Kubernetes by Cornelius Schumacher
NETWAYS
 
Hawkular overview
Hawkular overviewHawkular overview
Hawkular overview
Ted Won
 
Hawkular overview
Hawkular overviewHawkular overview
Hawkular overview
jbugkorea
 
CON6423: Scalable JavaScript applications with Project Nashorn
CON6423: Scalable JavaScript applications with Project NashornCON6423: Scalable JavaScript applications with Project Nashorn
CON6423: Scalable JavaScript applications with Project Nashorn
Michel Graciano
 
Splunk: Druid on Kubernetes with Druid-operator
Splunk: Druid on Kubernetes with Druid-operatorSplunk: Druid on Kubernetes with Druid-operator
Splunk: Druid on Kubernetes with Druid-operator
Imply
 
Deploying WSO2 API Manager in Production-Grade Kubernetes
Deploying WSO2 API Manager in Production-Grade KubernetesDeploying WSO2 API Manager in Production-Grade Kubernetes
Deploying WSO2 API Manager in Production-Grade Kubernetes
WSO2
 

Similar to Top 10 Kubernetes Native Java Quarkus Features (20)

DCSF19 How Docker Simplifies Kubernetes for the Masses
DCSF19 How Docker Simplifies Kubernetes for the Masses  DCSF19 How Docker Simplifies Kubernetes for the Masses
DCSF19 How Docker Simplifies Kubernetes for the Masses
 
Empowering Your Java Applications with Quarkus. A New Era of Fast, Efficient,...
Empowering Your Java Applications with Quarkus. A New Era of Fast, Efficient,...Empowering Your Java Applications with Quarkus. A New Era of Fast, Efficient,...
Empowering Your Java Applications with Quarkus. A New Era of Fast, Efficient,...
 
[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1
 
Using Docker Platform to Provide Services
Using Docker Platform to Provide ServicesUsing Docker Platform to Provide Services
Using Docker Platform to Provide Services
 
Reactive Amsterdam - Maxim Burgerhout - Quarkus Intro
Reactive Amsterdam - Maxim Burgerhout - Quarkus IntroReactive Amsterdam - Maxim Burgerhout - Quarkus Intro
Reactive Amsterdam - Maxim Burgerhout - Quarkus Intro
 
Containerising bootiful microservices javaeeconf
Containerising bootiful microservices javaeeconfContainerising bootiful microservices javaeeconf
Containerising bootiful microservices javaeeconf
 
Cloud Native Java Development Patterns
Cloud Native Java Development PatternsCloud Native Java Development Patterns
Cloud Native Java Development Patterns
 
Microservices and modularity with java
Microservices and modularity with javaMicroservices and modularity with java
Microservices and modularity with java
 
Red Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus IntroductionRed Hat Java Update and Quarkus Introduction
Red Hat Java Update and Quarkus Introduction
 
ОЛЕГ МАЦЬКІВ «Crash course on Operator Framework» Lviv DevOps Conference 2019
ОЛЕГ МАЦЬКІВ «Crash course on Operator Framework» Lviv DevOps Conference 2019ОЛЕГ МАЦЬКІВ «Crash course on Operator Framework» Lviv DevOps Conference 2019
ОЛЕГ МАЦЬКІВ «Crash course on Operator Framework» Lviv DevOps Conference 2019
 
From Code to Kubernetes
From Code to KubernetesFrom Code to Kubernetes
From Code to Kubernetes
 
On-Demand Image Resizing Extended - External Meet-up
On-Demand Image Resizing Extended - External Meet-upOn-Demand Image Resizing Extended - External Meet-up
On-Demand Image Resizing Extended - External Meet-up
 
Spring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
Spring Boot to Quarkus: A real app migration experience | DevNation Tech TalkSpring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
Spring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
 
What’s New in CloudStack 4.19, Abhishek Kumar, Release Manager Apache CloudSt...
What’s New in CloudStack 4.19, Abhishek Kumar, Release Manager Apache CloudSt...What’s New in CloudStack 4.19, Abhishek Kumar, Release Manager Apache CloudSt...
What’s New in CloudStack 4.19, Abhishek Kumar, Release Manager Apache CloudSt...
 
OSDC 2018 | Highly Available Cloud Foundry on Kubernetes by Cornelius Schumacher
OSDC 2018 | Highly Available Cloud Foundry on Kubernetes by Cornelius SchumacherOSDC 2018 | Highly Available Cloud Foundry on Kubernetes by Cornelius Schumacher
OSDC 2018 | Highly Available Cloud Foundry on Kubernetes by Cornelius Schumacher
 
Hawkular overview
Hawkular overviewHawkular overview
Hawkular overview
 
Hawkular overview
Hawkular overviewHawkular overview
Hawkular overview
 
CON6423: Scalable JavaScript applications with Project Nashorn
CON6423: Scalable JavaScript applications with Project NashornCON6423: Scalable JavaScript applications with Project Nashorn
CON6423: Scalable JavaScript applications with Project Nashorn
 
Splunk: Druid on Kubernetes with Druid-operator
Splunk: Druid on Kubernetes with Druid-operatorSplunk: Druid on Kubernetes with Druid-operator
Splunk: Druid on Kubernetes with Druid-operator
 
Deploying WSO2 API Manager in Production-Grade Kubernetes
Deploying WSO2 API Manager in Production-Grade KubernetesDeploying WSO2 API Manager in Production-Grade Kubernetes
Deploying WSO2 API Manager in Production-Grade Kubernetes
 

More from jclingan

MicroProfile: Optimizing Java EE for a Microservices Architecture
MicroProfile: Optimizing Java EE for a Microservices ArchitectureMicroProfile: Optimizing Java EE for a Microservices Architecture
MicroProfile: Optimizing Java EE for a Microservices Architecture
jclingan
 
MicroProfile Devoxx.us
MicroProfile Devoxx.usMicroProfile Devoxx.us
MicroProfile Devoxx.us
jclingan
 
Java EE Microservices
Java EE MicroservicesJava EE Microservices
Java EE Microservices
jclingan
 
MicroProfile
MicroProfileMicroProfile
MicroProfile
jclingan
 
What's new in Java 8
What's new in Java 8What's new in Java 8
What's new in Java 8
jclingan
 
Java 8
Java 8Java 8
Java 8
jclingan
 

More from jclingan (6)

MicroProfile: Optimizing Java EE for a Microservices Architecture
MicroProfile: Optimizing Java EE for a Microservices ArchitectureMicroProfile: Optimizing Java EE for a Microservices Architecture
MicroProfile: Optimizing Java EE for a Microservices Architecture
 
MicroProfile Devoxx.us
MicroProfile Devoxx.usMicroProfile Devoxx.us
MicroProfile Devoxx.us
 
Java EE Microservices
Java EE MicroservicesJava EE Microservices
Java EE Microservices
 
MicroProfile
MicroProfileMicroProfile
MicroProfile
 
What's new in Java 8
What's new in Java 8What's new in Java 8
What's new in Java 8
 
Java 8
Java 8Java 8
Java 8
 

Recently uploaded

Beginner's Guide to Observability@Devoxx PL 2024
Beginner's  Guide to Observability@Devoxx PL 2024Beginner's  Guide to Observability@Devoxx PL 2024
Beginner's Guide to Observability@Devoxx PL 2024
michniczscribd
 
What is Continuous Testing in DevOps - A Definitive Guide.pdf
What is Continuous Testing in DevOps - A Definitive Guide.pdfWhat is Continuous Testing in DevOps - A Definitive Guide.pdf
What is Continuous Testing in DevOps - A Definitive Guide.pdf
kalichargn70th171
 
Hands-on with Apache Druid: Installation & Data Ingestion Steps
Hands-on with Apache Druid: Installation & Data Ingestion StepsHands-on with Apache Druid: Installation & Data Ingestion Steps
Hands-on with Apache Druid: Installation & Data Ingestion Steps
servicesNitor
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
The Third Creative Media
 
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptxOperational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
sandeepmenon62
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
kgyxske
 
Flutter vs. React Native: A Detailed Comparison for App Development in 2024
Flutter vs. React Native: A Detailed Comparison for App Development in 2024Flutter vs. React Native: A Detailed Comparison for App Development in 2024
Flutter vs. React Native: A Detailed Comparison for App Development in 2024
dhavalvaghelanectarb
 
How GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdfHow GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdf
Zycus
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Paul Brebner
 
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
widenerjobeyrl638
 
Going AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applicationsGoing AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applications
Alina Yurenko
 
Microsoft-Power-Platform-Adoption-Planning.pptx
Microsoft-Power-Platform-Adoption-Planning.pptxMicrosoft-Power-Platform-Adoption-Planning.pptx
Microsoft-Power-Platform-Adoption-Planning.pptx
jrodriguezq3110
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
kalichargn70th171
 
Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...
Paul Brebner
 
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
campbellclarkson
 
Orca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container OrchestrationOrca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container Orchestration
Pedro J. Molina
 
Computer Science & Engineering VI Sem- New Syllabus.pdf
Computer Science & Engineering VI Sem- New Syllabus.pdfComputer Science & Engineering VI Sem- New Syllabus.pdf
Computer Science & Engineering VI Sem- New Syllabus.pdf
chandangoswami40933
 
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
kalichargn70th171
 
TheFutureIsDynamic-BoxLang-CFCamp2024.pdf
TheFutureIsDynamic-BoxLang-CFCamp2024.pdfTheFutureIsDynamic-BoxLang-CFCamp2024.pdf
TheFutureIsDynamic-BoxLang-CFCamp2024.pdf
Ortus Solutions, Corp
 
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery FleetStork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Vince Scalabrino
 

Recently uploaded (20)

Beginner's Guide to Observability@Devoxx PL 2024
Beginner's  Guide to Observability@Devoxx PL 2024Beginner's  Guide to Observability@Devoxx PL 2024
Beginner's Guide to Observability@Devoxx PL 2024
 
What is Continuous Testing in DevOps - A Definitive Guide.pdf
What is Continuous Testing in DevOps - A Definitive Guide.pdfWhat is Continuous Testing in DevOps - A Definitive Guide.pdf
What is Continuous Testing in DevOps - A Definitive Guide.pdf
 
Hands-on with Apache Druid: Installation & Data Ingestion Steps
Hands-on with Apache Druid: Installation & Data Ingestion StepsHands-on with Apache Druid: Installation & Data Ingestion Steps
Hands-on with Apache Druid: Installation & Data Ingestion Steps
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
 
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptxOperational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
Operational ease MuleSoft and Salesforce Service Cloud Solution v1.0.pptx
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
 
Flutter vs. React Native: A Detailed Comparison for App Development in 2024
Flutter vs. React Native: A Detailed Comparison for App Development in 2024Flutter vs. React Native: A Detailed Comparison for App Development in 2024
Flutter vs. React Native: A Detailed Comparison for App Development in 2024
 
How GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdfHow GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdf
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
 
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
美洲杯赔率投注网【​网址​🎉3977·EE​🎉】
 
Going AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applicationsGoing AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applications
 
Microsoft-Power-Platform-Adoption-Planning.pptx
Microsoft-Power-Platform-Adoption-Planning.pptxMicrosoft-Power-Platform-Adoption-Planning.pptx
Microsoft-Power-Platform-Adoption-Planning.pptx
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
 
Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...
 
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
🏎️Tech Transformation: DevOps Insights from the Experts 👩‍💻
 
Orca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container OrchestrationOrca: Nocode Graphical Editor for Container Orchestration
Orca: Nocode Graphical Editor for Container Orchestration
 
Computer Science & Engineering VI Sem- New Syllabus.pdf
Computer Science & Engineering VI Sem- New Syllabus.pdfComputer Science & Engineering VI Sem- New Syllabus.pdf
Computer Science & Engineering VI Sem- New Syllabus.pdf
 
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
The Power of Visual Regression Testing_ Why It Is Critical for Enterprise App...
 
TheFutureIsDynamic-BoxLang-CFCamp2024.pdf
TheFutureIsDynamic-BoxLang-CFCamp2024.pdfTheFutureIsDynamic-BoxLang-CFCamp2024.pdf
TheFutureIsDynamic-BoxLang-CFCamp2024.pdf
 
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery FleetStork Product Overview: An AI-Powered Autonomous Delivery Fleet
Stork Product Overview: An AI-Powered Autonomous Delivery Fleet
 

Top 10 Kubernetes Native Java Quarkus Features

  • 1. J4K 2020 One K8s ◆ One Java ◆ All Clouds www.j4k.io Quarkus - Top 10 Kubernetes Features John Clingan Sr Principal Product Manager, Red Hat MicroProfile Co-Founder and Committer All around nice guy @jclingan
  • 2. www.j4k.io Agenda Quarkus in a Nutshell Top 10 Kubernetes Features
  • 3. www.j4k.io Quarkus in a Nutshell Java Runtime Support standards and best of breed frameworks
  • 4. www.j4k.io Quarkus in a Nutshell Developer Joy
  • 5. www.j4k.io Quarkus in a Nutshell Unifies imperative and reactive
  • 6. www.j4k.io Quarkus in a Nutshell Container First
  • 7. www.j4k.io 1) One-step Kubernetes Deployment ● Deploys application to Kubernetes (and OpenShift ) ● Generates deployment YAML for target Kubernetes environment ○ Customizes deployment YAML ■ Creates Service, ServiceAccount, RoleBinding ○ Add quarkus-kubernetes dependency ■ Add quarkus-kubernetes-minikube dependency for minikube customizations ■ Add quarkus-kubernetes-openshift dependency for openshift customizations ○ Add image-builder dependency ■ Add quarkus-container image docker ● Customize generated YAML (and JSON) using properties ● Deploy mvn clean install -Dquarkus.kubernetes.deploy=true
  • 8. www.j4k.io 2) Live Coding in Kubernetes ● Add quarkus-kubernetes extension dependency ● Configure remote development quarkus.package.type=mutable-jar quarkus.live-reload.password=abc123 quarkus.kubernetes.env.vars.QUARKUS_LAUNCH_DEVMODE=true ● Deploy to Kubernetes mvn clean install -Dquarkus.kubernetes.deploy=true ● Start quarkus in remote-dev mode mvn quarkus:remote-dev -Dquarkus.live-reload.url=<url>
  • 9. www.j4k.io 3) Direct ConfigMap and Secrets Access ● Reads properties from a Kubernetes ConfigMap ● Overrides values in application.properties ● Usage: ○ Add quarkus-kubernetes-config extension to dependencies ○ quarkus.kubernetes-config.enabled=true ○ quarkus.kubernetes-config.config-maps=map1,map2,... ○ quarkus.kubernetes-config.secrets.enabled=true ○ quarkus.kubernetes-config.secrets=secret1,secret2 Kubernetes Cluster Master Node Etcd API Server Worker Node app.jar
  • 10. www.j4k.io 4) Health Endpoints ● Expose application availability and status ● Create custom application health checks ● Built-in health status for "client" extensions ○ Amazon services, Kafka, JMS, JDBC datasources, ○ Reactive SQL clients, Mongodb, Neo4j, Vault, gRPC ○ Elasticsearch, Redis, Cassandra ● Most built-in health checks are enabled by default ● Usage: Add quarkus-smallrye-health extension
  • 11. www.j4k.io 5) Kubernetes Client ● Interact with Kubernetes API server / cluster using Fabric8 Kubernetes client ● CRUD Kubernetes objects ● Useful to create Kubernetes Operators in Java instead of Go ● Usage: ○ Add quarkus-kubernetes-client dependency
  • 12. www.j4k.io 6) OpenMetrics Support ● Expose application metrics for external collection and monitoring ● Supports MicroProfile Metrics ○ Application Metrics, vendor metrics, JVM/system metrics ● New! Micrometer metrics extension ● Many Quarkus extensions provide their own metrics ○ Most disabled by default for performance; see extension guide for property enable ● Quarkus Grafana dashboard generator: http://quarkusdemos.net/ ● Usage: Add quarkus-smallrye-metrics (or micrometer metrics) extension
  • 13. www.j4k.io 7) OpenTracing Support ● Trace flow across service boundaries ● Supports MicroProfile OpenTracing ○ JAX-RS and MicroProfile Rest Client support ● No code ○ Optional: @Traced annotation to enable/disable class/method tracing ● Usage: Add quarkus-smallrye-opentracing extension ○ quarkus.jaeger.service-name=j4k ○ quarkus.jaeger.sampler-type=const ○ quarkus.jaeger.sampler-param=1 ○ quarkus.kubernetes.annotations."sidecar.jaegertracing.io/inject"=true
  • 14. www.j4k.io 8) One-step Knative Deployment ● Kubernetes extensions to deploy and manage serverless workloads ○ Knative Serving - autoscaling, scaling to zero ○ Knative Eventing - Universal delivery and management of events ● Usage ○ Add quarkus-kubernetes extension ○ quarkus.kubernetes.deployment-target=knative
  • 15. www.j4k.io 9) Functions as a Service (Funqy) ● Portable Java API to write functions deployable to various FaaS environments ○ AWS Lambda ○ Azure Functions ○ Google Cloud Functions ○ Knative, CloudEvents ○ Standalone ● Usage ○ Add @Funq annotation to a method ○ Add quarkus-funqy-[binding] extension ○ quarkus.kubernetes.deployment-target=knative
  • 17. www.j4k.io 10b) Efficiency: Low Memory Utilization
  • 18. www.j4k.io Source available at github.com/jclingan/quarkus-kube-top10
  • 19. J4K 2020 One K8s ◆ One Java ◆ All Clouds www.j4k.io @j4kio FOLLOW US ON www.linkedin.com/ company / j4k / www.facebook.com / j4kio / The End