SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
SELF-SERVICE APP DEPLOYMENT
WITH KUBERNETES AND OPENSHIFT
A quick introduction to the two technologies
Marko Luksa
Software Engineer
February 11, 2017
2
MARKO LUKSA
About me
Software engineer at Red Hat, currently part of the Cloud Enablement team, bringing
Red Hat’s Java Middleware products (EAP, Data Grid, Data Virtualization, etc.) to OpenShift.
● Programming since age 6, developing sw professionally for 20+ years
● Various languages, 15+ years of Java
● 5 years at Red Hat
● CDI/Weld, CapeDwarf, some Infinispan contributions, Cloud Enablement
● Just started working on Kubernetes Service Catalog
● Author of Kubernetes in Action (Manning Publications, summer 2017)
3
THE OLD WAY OF DOING THINGS
How bringing software to production is like without Kubernetes & OpenShift
We’ve been doing it for so long, we don’t acknowledge these are really bad problems:
● Differences between dev and production environments
● From development to production:
○ Developers hand over their WARs & JARs to ops,
○ Must always wait for sysadmins to get access,
○ Sysadmins don’t want to know the peculiarities of each app
● Deploy to the cloud? Portability / lock-in!
● Bad hardware utilization
● Need to scale easily to enable business growth
4
THE NEW WAY OF DOING THINGS
Just do this and all your troubles will disappear
New tools and new ways of doing things help us fix the problems of yesterday.
● Containers
● Container orchestration
● Micro services
● DevOps
○ But now developers are forced to know the hardware infrastructure
● Continuous integration & delivery
5
CONTAINERS
Portability, consistency, standardization
Containers help alleviate a lot of our problems:
● Consistent environment
● Package the app + everything the app needs into a portable package
● Store app in a central registry, access it from anywhere
● Run on any Linux machine (prerequisite: container runtime)
● Pack more apps onto a machine (100s of containers per host vs. just a few VMs)
● Docker, rkt, Open Container Initiative
● Do we need anything else?
6
7
KUBERNETES
Greek for helmsman (person, who steers the ship) or pilot
Why is the whole world going crazy about k8s (k+ubernete(8 chars)+s)?
● Google! (Borg, Omega; doing it like this for more than a decade)
● Open Source, big community, very fast adoption & devel. (core velocity problem)
● Not just container orchestration
● Abstracts away the infrastructure
○ Exposes tens/hundreds/thousands of nodes as a single deployment plane
● Does the ops work for you
○ Scheduling, Self-healing, Autoscaling
8
KUBERNETES FEATURES
Much more than just container orchestration
Among other things, Kubernetes provides these features:
● Automatic bin packing
● Horizontal scaling
● Automated deployment rollouts and rollbacks
● Self-healing
● Service discovery and load balancing
● Secret and configuration management
● Storage orchestration
● Batch execution
9
SELF-SERVICE APP DEPLOYMENT
Developers can deploy apps without any help from the sysadmins
Once a sysadmin deploys Kubernetes on your servers, developers can start deploying
applications on those servers without having to know anything about them.
● Developer doesn’t need to deal with individual machines
● Developer doesn’t even need to know how many machines there are
● Developer tells Kubernetes: “I want X copies of this app to be running”
● Kubernetes finds the best spot to run the app (for each copy)
● Service discovery enables client apps to find other apps they need
● Sysadmins take care of Kubernetes, not the apps themselves
10
KUBERNETES ARCHITECTURE
The components that make up a Kubernetes cluster
Kubernetes components are split into two groups:
● Control plane (“master”)
○ etcd (distributed key value store)
○ Kubernetes API Server (REST)
○ Kubernetes Scheduler
○ Kubernetes Controller Manager
● Nodes (“workers”)
○ Container Runtime (Docker, rkt)
○ Kubelet
○ Kubernetes Proxy
11
INTERACTING WITH KUBERNETES
Users talk to the master; the master instructs nodes what to do
Kubernetes
Master
myapp.yaml
1
x
5
x
2
x
10s or 1000s of worker nodes
exposed as a single deployment platform
12
RUNNING AND MANAGING APPS
How applications are deployed and managed in Kubernetes
You tell Kubernetes what you want your system state to be and Kubernetes takes care of it.
● Declarative vs. imperative approach
● Post JSON or YAML descriptors to the Kubernetes REST API server
● Use kubectl command-line tool:
$ kubectl run <deploymentName> --image=<image> --replicas=3
$ kubectl expose deployment <deploymentName> --port=80
--target-port=8080
$ kubectl get pods,services,deployments
$ kubectl scale <deploymentName> --replicas=5
13
KUBERNETES CONCEPTS
The building blocks you use to run applications
Talking to Kubernetes entails creating objects through the Kubernetes API:
● Pods (one or more collocated containers)
● Labels & label selectors
● Replication controllers (ReplicaSet, DaemonSet, StatefulSet, Job, ScheduledJob)
● Services
● Volumes, PersistentVolumes
● ConfigMaps, Secrets
● Deployments
14
15
Red Hat OpenShift is a complete container application platform
RED HAT OPENSHIFT
Enterprise Kubernetes
CODE BUILD DEPLOY
16
RED HAT OPENSHIFT
Red Hat’s Container Application Platform
Red Hat OpenShift is an open-source Platform-as-a-Service built on top of Kubernetes.
● Not just run, but also build apps
● Don’t need to deal with Docker (sort of)
● Enterprise-grade container platform
● Origin, OCP, Dedicated, Online
● Suite of templates and container images with S2I capability
○ JBoss Enterprise Application Platform
○ JBoss Data Grid
○ ...
17
ADDITIONAL CONCEPTS IN OPENSHIFT
Additional API objects only available in OpenShift
OpenShift brings the following additional objects on top of what Kubernetes offers:
● Users and Security Policies
● Templates
● BuildConfig
● DeploymentConfig (similar to Deployment in Kubernetes)
● Routes (similar to Ingress in Kubernetes)
● ...
18
DEMO
Let’s see OpenShift in action
We’re going to show the following:
● Build and deploy a Java EE Enterprise Application in JBoss EAP (inside OpenShift)
● Horizontally scale up to three instances (three running EAP servers)
● Simulate node going down (by deleting a pod)
● Modify the app and perform a rolling update
● Scale back down to 1 EAP instance
● Clean up everything
19
Learn how to develop and run self-healing apps with
Kubernetes.
● Early access: first half of book already available
● Estimated publication date: Summer 2017
● www.manning.com/books/kubernetes-in-action
● 40% off all Manning books for Javantura attendees:
○ Use code ctwjavantura at manning.com
“KUBERNETES IN ACTION” BOOK
Marko Luksa (Manning Publications, 2017)
THANK YOU
plus.google.com/+RedHat
linkedin.com/company/red-hat
youtube.com/user/RedHatVideos
facebook.com/redhatinc
twitter.com/markoluksa
● mluksa@redhat.com
● twitter.com/markoluksa
● medium.com/@marko.luksa

Más contenido relacionado

La actualidad más candente

Modernizing Traditional Applications with Docker EE: From PoC to Production
Modernizing Traditional Applications with Docker EE: From PoC to ProductionModernizing Traditional Applications with Docker EE: From PoC to Production
Modernizing Traditional Applications with Docker EE: From PoC to Production
Docker, Inc.
 
#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...
#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...
#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...
Docker, Inc.
 

La actualidad más candente (20)

Pulumi iac on gcp
Pulumi iac on gcpPulumi iac on gcp
Pulumi iac on gcp
 
DockerCon SF 2015: Docker at Lyft
DockerCon SF 2015: Docker at LyftDockerCon SF 2015: Docker at Lyft
DockerCon SF 2015: Docker at Lyft
 
On Prem Container Cloud - Lessons Learned
On Prem Container Cloud - Lessons LearnedOn Prem Container Cloud - Lessons Learned
On Prem Container Cloud - Lessons Learned
 
Azure kubernetes service
Azure kubernetes serviceAzure kubernetes service
Azure kubernetes service
 
Automating CICD Pipeline with GitLab and Docker Containers for Java Applications
Automating CICD Pipeline with GitLab and Docker Containers for Java ApplicationsAutomating CICD Pipeline with GitLab and Docker Containers for Java Applications
Automating CICD Pipeline with GitLab and Docker Containers for Java Applications
 
Building Your NoSQL Ship: How an Enterprise Transitioned from a RDBMS to NoSQ...
Building Your NoSQL Ship: How an Enterprise Transitioned from a RDBMS to NoSQ...Building Your NoSQL Ship: How an Enterprise Transitioned from a RDBMS to NoSQ...
Building Your NoSQL Ship: How an Enterprise Transitioned from a RDBMS to NoSQ...
 
DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...
DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...
DCEU 18: Desigual Transforms the In-Store Experience with Docker Enterprise C...
 
Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...
Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...
Evénement Docker Paris: Anticipez les nouveaux business model et réduisez vos...
 
Digital Transformation with Docker, Cloud, and DevOps: How JCPenney Handles B...
Digital Transformation with Docker, Cloud, and DevOps: How JCPenney Handles B...Digital Transformation with Docker, Cloud, and DevOps: How JCPenney Handles B...
Digital Transformation with Docker, Cloud, and DevOps: How JCPenney Handles B...
 
Containers & Cloud Native Ops Cloud Foundry Approach
Containers & Cloud Native Ops Cloud Foundry ApproachContainers & Cloud Native Ops Cloud Foundry Approach
Containers & Cloud Native Ops Cloud Foundry Approach
 
Serverless in production (O'Reilly Software Architecture)
Serverless in production (O'Reilly Software Architecture)Serverless in production (O'Reilly Software Architecture)
Serverless in production (O'Reilly Software Architecture)
 
DockerCon SF 2015: Beyond CI to Production Scale PaaS with Docker
DockerCon SF 2015: Beyond CI to Production Scale PaaS with DockerDockerCon SF 2015: Beyond CI to Production Scale PaaS with Docker
DockerCon SF 2015: Beyond CI to Production Scale PaaS with Docker
 
Building a Platform-as-a-Service with Docker and Node.js
Building a Platform-as-a-Service with Docker and Node.jsBuilding a Platform-as-a-Service with Docker and Node.js
Building a Platform-as-a-Service with Docker and Node.js
 
Modernizing Traditional Applications with Docker EE: From PoC to Production
Modernizing Traditional Applications with Docker EE: From PoC to ProductionModernizing Traditional Applications with Docker EE: From PoC to Production
Modernizing Traditional Applications with Docker EE: From PoC to Production
 
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...
Putting The 'M' In MBaaS—Red Hat Mobile Client Development Platform (Jay Balu...
 
Living with microservices at Pipedrive
Living with microservices at PipedriveLiving with microservices at Pipedrive
Living with microservices at Pipedrive
 
ACM Gazi Docker?
ACM Gazi Docker?ACM Gazi Docker?
ACM Gazi Docker?
 
Introduction To Flink
Introduction To FlinkIntroduction To Flink
Introduction To Flink
 
DockerCon SF 2015: From Months to Minutes
DockerCon SF 2015: From Months to MinutesDockerCon SF 2015: From Months to Minutes
DockerCon SF 2015: From Months to Minutes
 
#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...
#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...
#bigwhale: An Unexpected Journey into Containerization @ Lockheed Martin - Pa...
 

Destacado

Destacado (20)

Javantura v4 - Let me tell you a story why Scrum is not for you - Roko Roić
Javantura v4 - Let me tell you a story why Scrum is not for you - Roko RoićJavantura v4 - Let me tell you a story why Scrum is not for you - Roko Roić
Javantura v4 - Let me tell you a story why Scrum is not for you - Roko Roić
 
Javantura v4 - The power of cloud in professional services company - Ivan Krn...
Javantura v4 - The power of cloud in professional services company - Ivan Krn...Javantura v4 - The power of cloud in professional services company - Ivan Krn...
Javantura v4 - The power of cloud in professional services company - Ivan Krn...
 
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
 
Javantura v4 - Test-driven documentation with Spring REST Docs - Danijel Mitar
Javantura v4 - Test-driven documentation with Spring REST Docs - Danijel MitarJavantura v4 - Test-driven documentation with Spring REST Docs - Danijel Mitar
Javantura v4 - Test-driven documentation with Spring REST Docs - Danijel Mitar
 
Javantura v4 - Angular2 - Ionic2 - from birth to stable versions - Hrvoje Pek...
Javantura v4 - Angular2 - Ionic2 - from birth to stable versions - Hrvoje Pek...Javantura v4 - Angular2 - Ionic2 - from birth to stable versions - Hrvoje Pek...
Javantura v4 - Angular2 - Ionic2 - from birth to stable versions - Hrvoje Pek...
 
Javantura v4 - Spring Boot and JavaFX - can they play together - Josip Kovaček
Javantura v4 - Spring Boot and JavaFX - can they play together - Josip KovačekJavantura v4 - Spring Boot and JavaFX - can they play together - Josip Kovaček
Javantura v4 - Spring Boot and JavaFX - can they play together - Josip Kovaček
 
Javantura v4 - Java and lambdas and streams - are they better than for loops ...
Javantura v4 - Java and lambdas and streams - are they better than for loops ...Javantura v4 - Java and lambdas and streams - are they better than for loops ...
Javantura v4 - Java and lambdas and streams - are they better than for loops ...
 
Javantura v4 - DMN – supplement your BPMN - Željko Šmaguc
Javantura v4 - DMN – supplement your BPMN - Željko ŠmagucJavantura v4 - DMN – supplement your BPMN - Željko Šmaguc
Javantura v4 - DMN – supplement your BPMN - Željko Šmaguc
 
Javantura v4 - CroDuke Indy and the Kingdom of Java Skills - Branko Mihaljevi...
Javantura v4 - CroDuke Indy and the Kingdom of Java Skills - Branko Mihaljevi...Javantura v4 - CroDuke Indy and the Kingdom of Java Skills - Branko Mihaljevi...
Javantura v4 - CroDuke Indy and the Kingdom of Java Skills - Branko Mihaljevi...
 
Javantura v4 - FreeMarker in Spring web - Marin Kalapać
Javantura v4 - FreeMarker in Spring web - Marin KalapaćJavantura v4 - FreeMarker in Spring web - Marin Kalapać
Javantura v4 - FreeMarker in Spring web - Marin Kalapać
 
Javantura v4 - JVM++ The GraalVM - Martin Toshev
Javantura v4 - JVM++ The GraalVM - Martin ToshevJavantura v4 - JVM++ The GraalVM - Martin Toshev
Javantura v4 - JVM++ The GraalVM - Martin Toshev
 
Javantura v4 - Getting started with Apache Spark - Dinko Srkoč
Javantura v4 - Getting started with Apache Spark - Dinko SrkočJavantura v4 - Getting started with Apache Spark - Dinko Srkoč
Javantura v4 - Getting started with Apache Spark - Dinko Srkoč
 
Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen ...
Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen ...Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen ...
Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen ...
 
Javantura v4 - Keycloak – instant login for your app - Marko Štrukelj
Javantura v4 - Keycloak – instant login for your app - Marko ŠtrukeljJavantura v4 - Keycloak – instant login for your app - Marko Štrukelj
Javantura v4 - Keycloak – instant login for your app - Marko Štrukelj
 
Javantura v4 - Cloud-native Architectures and Java - Matjaž B. Jurič
Javantura v4 - Cloud-native Architectures and Java - Matjaž B. JuričJavantura v4 - Cloud-native Architectures and Java - Matjaž B. Jurič
Javantura v4 - Cloud-native Architectures and Java - Matjaž B. Jurič
 
Javantura v4 - True RESTful Java Web Services with JSON API and Katharsis - M...
Javantura v4 - True RESTful Java Web Services with JSON API and Katharsis - M...Javantura v4 - True RESTful Java Web Services with JSON API and Katharsis - M...
Javantura v4 - True RESTful Java Web Services with JSON API and Katharsis - M...
 
Javantura v4 - What’s NOT new in modular Java - Milen Dyankov
Javantura v4 - What’s NOT new in modular Java - Milen DyankovJavantura v4 - What’s NOT new in modular Java - Milen Dyankov
Javantura v4 - What’s NOT new in modular Java - Milen Dyankov
 
Javantura v4 - Security architecture of the Java platform - Martin Toshev
Javantura v4 - Security architecture of the Java platform - Martin ToshevJavantura v4 - Security architecture of the Java platform - Martin Toshev
Javantura v4 - Security architecture of the Java platform - Martin Toshev
 
Javantura v4 - Java or Scala – Web development with Playframework 2.5.x - Kre...
Javantura v4 - Java or Scala – Web development with Playframework 2.5.x - Kre...Javantura v4 - Java or Scala – Web development with Playframework 2.5.x - Kre...
Javantura v4 - Java or Scala – Web development with Playframework 2.5.x - Kre...
 
Javantura v4 - (Spring)Boot your application on Red Hat middleware stack - Al...
Javantura v4 - (Spring)Boot your application on Red Hat middleware stack - Al...Javantura v4 - (Spring)Boot your application on Red Hat middleware stack - Al...
Javantura v4 - (Spring)Boot your application on Red Hat middleware stack - Al...
 

Similar a Javantura v4 - Self-service app deployment with Kubernetes and OpenShift - Marko Lukša

Docker in production service discovery with consul - road to opscon 2015
Docker in production  service discovery with consul - road to opscon 2015Docker in production  service discovery with consul - road to opscon 2015
Docker in production service discovery with consul - road to opscon 2015
Giovanni Toraldo
 

Similar a Javantura v4 - Self-service app deployment with Kubernetes and OpenShift - Marko Lukša (20)

From development to production: Deploying Java and Scala apps to kubernetes
From development to production: Deploying Java and Scala apps to kubernetesFrom development to production: Deploying Java and Scala apps to kubernetes
From development to production: Deploying Java and Scala apps to kubernetes
 
Openshift: The power of kubernetes for engineers - Riga Dev Days 18
Openshift: The power of kubernetes for engineers - Riga Dev Days 18Openshift: The power of kubernetes for engineers - Riga Dev Days 18
Openshift: The power of kubernetes for engineers - Riga Dev Days 18
 
AWS Summit Singapore 2019 | Latest Trends for Cloud-Native Application Develo...
AWS Summit Singapore 2019 | Latest Trends for Cloud-Native Application Develo...AWS Summit Singapore 2019 | Latest Trends for Cloud-Native Application Develo...
AWS Summit Singapore 2019 | Latest Trends for Cloud-Native Application Develo...
 
Interop 2018 - Understanding Kubernetes - Brian Gracely
Interop 2018 - Understanding Kubernetes - Brian GracelyInterop 2018 - Understanding Kubernetes - Brian Gracely
Interop 2018 - Understanding Kubernetes - Brian Gracely
 
Docker for dev
Docker for devDocker for dev
Docker for dev
 
Speed & Agility of Innovation with Docker & Kubernetes
Speed & Agility of Innovation with Docker & KubernetesSpeed & Agility of Innovation with Docker & Kubernetes
Speed & Agility of Innovation with Docker & Kubernetes
 
Developer workflow with docker
Developer workflow with dockerDeveloper workflow with docker
Developer workflow with docker
 
LINE's Private Cloud - Meet Cloud Native World
LINE's Private Cloud - Meet Cloud Native WorldLINE's Private Cloud - Meet Cloud Native World
LINE's Private Cloud - Meet Cloud Native World
 
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
 
[Global logic] container runtimes and kubernetes
[Global logic] container runtimes and kubernetes[Global logic] container runtimes and kubernetes
[Global logic] container runtimes and kubernetes
 
Painless containerization in your very own private Cloud
Painless containerization in your very own private CloudPainless containerization in your very own private Cloud
Painless containerization in your very own private Cloud
 
Docker in production service discovery with consul - road to opscon 2015
Docker in production  service discovery with consul - road to opscon 2015Docker in production  service discovery with consul - road to opscon 2015
Docker in production service discovery with consul - road to opscon 2015
 
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOpsDevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
 
OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...
OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...
OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...
 
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
 
Containers Anywhere with OpenShift by Red Hat
Containers Anywhere with OpenShift by Red HatContainers Anywhere with OpenShift by Red Hat
Containers Anywhere with OpenShift by Red Hat
 
Reproducible development to live applications with Red Hat CDK and Red Hat Op...
Reproducible development to live applications with Red Hat CDK and Red Hat Op...Reproducible development to live applications with Red Hat CDK and Red Hat Op...
Reproducible development to live applications with Red Hat CDK and Red Hat Op...
 
Docker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containersDocker - A high level introduction to dockers and containers
Docker - A high level introduction to dockers and containers
 
Introduction to Docker Container
Introduction to Docker ContainerIntroduction to Docker Container
Introduction to Docker Container
 
DockerCon EU 2015: Placing a container on a train at 200mph
DockerCon EU 2015: Placing a container on a train at 200mphDockerCon EU 2015: Placing a container on a train at 200mph
DockerCon EU 2015: Placing a container on a train at 200mph
 

Más de HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association

Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 

Más de HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association (20)

Java cro'21 the best tools for java developers in 2021 - hujak
Java cro'21   the best tools for java developers in 2021 - hujakJava cro'21   the best tools for java developers in 2021 - hujak
Java cro'21 the best tools for java developers in 2021 - hujak
 
JavaCro'21 - Java is Here To Stay - HUJAK Keynote
JavaCro'21 - Java is Here To Stay - HUJAK KeynoteJavaCro'21 - Java is Here To Stay - HUJAK Keynote
JavaCro'21 - Java is Here To Stay - HUJAK Keynote
 
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan LozićJavantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
 
Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...
Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...
Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...
 
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
 
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
 
Javantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander Radovan
Javantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander RadovanJavantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander Radovan
Javantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander Radovan
 
Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...
Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...
Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...
 
Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...
Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...
Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...
 
Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...
Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...
Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...
 
Javantura v6 - When remote work really works - the secrets behind successful ...
Javantura v6 - When remote work really works - the secrets behind successful ...Javantura v6 - When remote work really works - the secrets behind successful ...
Javantura v6 - When remote work really works - the secrets behind successful ...
 
Javantura v6 - Kotlin-Java Interop - Matej Vidaković
Javantura v6 - Kotlin-Java Interop - Matej VidakovićJavantura v6 - Kotlin-Java Interop - Matej Vidaković
Javantura v6 - Kotlin-Java Interop - Matej Vidaković
 
Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...
Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...
Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...
 
Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...
Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...
Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...
 
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
 
Javantura v6 - How can you improve the quality of your application - Ioannis ...
Javantura v6 - How can you improve the quality of your application - Ioannis ...Javantura v6 - How can you improve the quality of your application - Ioannis ...
Javantura v6 - How can you improve the quality of your application - Ioannis ...
 
Javantura v6 - Just say it v2 - Pavao Varela Petrac
Javantura v6 - Just say it v2 - Pavao Varela PetracJavantura v6 - Just say it v2 - Pavao Varela Petrac
Javantura v6 - Just say it v2 - Pavao Varela Petrac
 
Javantura v6 - Automation of web apps testing - Hrvoje Ruhek
Javantura v6 - Automation of web apps testing - Hrvoje RuhekJavantura v6 - Automation of web apps testing - Hrvoje Ruhek
Javantura v6 - Automation of web apps testing - Hrvoje Ruhek
 
Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...
Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...
Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...
 
Javantura v6 - Building IoT Middleware with Microservices - Mario Kusek
Javantura v6 - Building IoT Middleware with Microservices - Mario KusekJavantura v6 - Building IoT Middleware with Microservices - Mario Kusek
Javantura v6 - Building IoT Middleware with Microservices - Mario Kusek
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

Javantura v4 - Self-service app deployment with Kubernetes and OpenShift - Marko Lukša

  • 1. SELF-SERVICE APP DEPLOYMENT WITH KUBERNETES AND OPENSHIFT A quick introduction to the two technologies Marko Luksa Software Engineer February 11, 2017
  • 2. 2 MARKO LUKSA About me Software engineer at Red Hat, currently part of the Cloud Enablement team, bringing Red Hat’s Java Middleware products (EAP, Data Grid, Data Virtualization, etc.) to OpenShift. ● Programming since age 6, developing sw professionally for 20+ years ● Various languages, 15+ years of Java ● 5 years at Red Hat ● CDI/Weld, CapeDwarf, some Infinispan contributions, Cloud Enablement ● Just started working on Kubernetes Service Catalog ● Author of Kubernetes in Action (Manning Publications, summer 2017)
  • 3. 3 THE OLD WAY OF DOING THINGS How bringing software to production is like without Kubernetes & OpenShift We’ve been doing it for so long, we don’t acknowledge these are really bad problems: ● Differences between dev and production environments ● From development to production: ○ Developers hand over their WARs & JARs to ops, ○ Must always wait for sysadmins to get access, ○ Sysadmins don’t want to know the peculiarities of each app ● Deploy to the cloud? Portability / lock-in! ● Bad hardware utilization ● Need to scale easily to enable business growth
  • 4. 4 THE NEW WAY OF DOING THINGS Just do this and all your troubles will disappear New tools and new ways of doing things help us fix the problems of yesterday. ● Containers ● Container orchestration ● Micro services ● DevOps ○ But now developers are forced to know the hardware infrastructure ● Continuous integration & delivery
  • 5. 5 CONTAINERS Portability, consistency, standardization Containers help alleviate a lot of our problems: ● Consistent environment ● Package the app + everything the app needs into a portable package ● Store app in a central registry, access it from anywhere ● Run on any Linux machine (prerequisite: container runtime) ● Pack more apps onto a machine (100s of containers per host vs. just a few VMs) ● Docker, rkt, Open Container Initiative ● Do we need anything else?
  • 6. 6
  • 7. 7 KUBERNETES Greek for helmsman (person, who steers the ship) or pilot Why is the whole world going crazy about k8s (k+ubernete(8 chars)+s)? ● Google! (Borg, Omega; doing it like this for more than a decade) ● Open Source, big community, very fast adoption & devel. (core velocity problem) ● Not just container orchestration ● Abstracts away the infrastructure ○ Exposes tens/hundreds/thousands of nodes as a single deployment plane ● Does the ops work for you ○ Scheduling, Self-healing, Autoscaling
  • 8. 8 KUBERNETES FEATURES Much more than just container orchestration Among other things, Kubernetes provides these features: ● Automatic bin packing ● Horizontal scaling ● Automated deployment rollouts and rollbacks ● Self-healing ● Service discovery and load balancing ● Secret and configuration management ● Storage orchestration ● Batch execution
  • 9. 9 SELF-SERVICE APP DEPLOYMENT Developers can deploy apps without any help from the sysadmins Once a sysadmin deploys Kubernetes on your servers, developers can start deploying applications on those servers without having to know anything about them. ● Developer doesn’t need to deal with individual machines ● Developer doesn’t even need to know how many machines there are ● Developer tells Kubernetes: “I want X copies of this app to be running” ● Kubernetes finds the best spot to run the app (for each copy) ● Service discovery enables client apps to find other apps they need ● Sysadmins take care of Kubernetes, not the apps themselves
  • 10. 10 KUBERNETES ARCHITECTURE The components that make up a Kubernetes cluster Kubernetes components are split into two groups: ● Control plane (“master”) ○ etcd (distributed key value store) ○ Kubernetes API Server (REST) ○ Kubernetes Scheduler ○ Kubernetes Controller Manager ● Nodes (“workers”) ○ Container Runtime (Docker, rkt) ○ Kubelet ○ Kubernetes Proxy
  • 11. 11 INTERACTING WITH KUBERNETES Users talk to the master; the master instructs nodes what to do Kubernetes Master myapp.yaml 1 x 5 x 2 x 10s or 1000s of worker nodes exposed as a single deployment platform
  • 12. 12 RUNNING AND MANAGING APPS How applications are deployed and managed in Kubernetes You tell Kubernetes what you want your system state to be and Kubernetes takes care of it. ● Declarative vs. imperative approach ● Post JSON or YAML descriptors to the Kubernetes REST API server ● Use kubectl command-line tool: $ kubectl run <deploymentName> --image=<image> --replicas=3 $ kubectl expose deployment <deploymentName> --port=80 --target-port=8080 $ kubectl get pods,services,deployments $ kubectl scale <deploymentName> --replicas=5
  • 13. 13 KUBERNETES CONCEPTS The building blocks you use to run applications Talking to Kubernetes entails creating objects through the Kubernetes API: ● Pods (one or more collocated containers) ● Labels & label selectors ● Replication controllers (ReplicaSet, DaemonSet, StatefulSet, Job, ScheduledJob) ● Services ● Volumes, PersistentVolumes ● ConfigMaps, Secrets ● Deployments
  • 14. 14
  • 15. 15 Red Hat OpenShift is a complete container application platform RED HAT OPENSHIFT Enterprise Kubernetes CODE BUILD DEPLOY
  • 16. 16 RED HAT OPENSHIFT Red Hat’s Container Application Platform Red Hat OpenShift is an open-source Platform-as-a-Service built on top of Kubernetes. ● Not just run, but also build apps ● Don’t need to deal with Docker (sort of) ● Enterprise-grade container platform ● Origin, OCP, Dedicated, Online ● Suite of templates and container images with S2I capability ○ JBoss Enterprise Application Platform ○ JBoss Data Grid ○ ...
  • 17. 17 ADDITIONAL CONCEPTS IN OPENSHIFT Additional API objects only available in OpenShift OpenShift brings the following additional objects on top of what Kubernetes offers: ● Users and Security Policies ● Templates ● BuildConfig ● DeploymentConfig (similar to Deployment in Kubernetes) ● Routes (similar to Ingress in Kubernetes) ● ...
  • 18. 18 DEMO Let’s see OpenShift in action We’re going to show the following: ● Build and deploy a Java EE Enterprise Application in JBoss EAP (inside OpenShift) ● Horizontally scale up to three instances (three running EAP servers) ● Simulate node going down (by deleting a pod) ● Modify the app and perform a rolling update ● Scale back down to 1 EAP instance ● Clean up everything
  • 19. 19 Learn how to develop and run self-healing apps with Kubernetes. ● Early access: first half of book already available ● Estimated publication date: Summer 2017 ● www.manning.com/books/kubernetes-in-action ● 40% off all Manning books for Javantura attendees: ○ Use code ctwjavantura at manning.com “KUBERNETES IN ACTION” BOOK Marko Luksa (Manning Publications, 2017)