SlideShare a Scribd company logo
Dr. Roland Huß | Red Hat
fabric8
… and Docker, Kubernetes, OpenShift
?
Me
» Developer (mostly Java)
» Open Source
– Jolokia: JMX-HTTP Bridge
– docker-maven-plugin
» Software Engineer @ Red Hat
– (since May)
» Contact:
– Blog: https://ro14nd.de
– Twitter: @ro14nd
OS Level Virtualisation
Docker Orchestration
PaaS Platform on top
of Kubernetes
Services and Tools for
Kubernetes and OpenShift
Docker
Facts
» OS level virtualisation tool suite
» Client-Server architecture
– Server communicates via Unix- or INET-
Sockets with a REST API
» Docker commands via CLI
» Written in Go
» Current version: 1.6
Lightweight Container vs. VM
Containers are isolated, but
sharing the kernel and (some) files
➜ faster & lighter
Concepts
» Image
– Read-only filesystem layer
– Deploy & Share
– Blueprint for a container
» Container
– Read-write filesystem layer (copy-on-write)
– Instance of an image
– Has a lifecycle (start & stop)
Concepts
» Repository
– Collection of layered images
– often synonym for “Image”
– Has a name: registry/user/repository:tag
» Registry
– Storage for repositories
– Default: docker.io (public docker hub)
docker
» CLI for managing Docker
– docker <sub-command> …
ps Show all containers
images Show all images
run Create and run a container
search Seaarch for images on a registry
pull Dowmload of images
rm Remove container
rmi Remove image
Kubernetes
Facts
» Open Source orchestration platform for
Docker containers
– Rewrite of Google’s internal framework “Borg”
» Declarative specification of a desired state
» Self-healing
» Service discovery
» Scheduling across hosts
» Simple replication
Architecture
Concepts
» Pods
– Collection of one or more Docker containers
» Replication Controller
– Creates and takes care of Pods
» Services
– Proxy for a collection of Pods
» Labels
– Grouping and organisation of Objects
Pod
» Collection of Docker containers running
on the same host.
» Pods have a unique IP
» Containers in a Pod ….
– …. share the same IP
– …. can reach each other via local ports
– …. can share data via volumes
» Pods can have one or more Labels
Replication Controller
» Controls Pods selected by Labels
» Ensures that a specified number of Pod
replicas is running
» Holds Pod Templates for creating new
Pods
» Autoscaling
» Rolling Updates
{
"kind":"ReplicationController",
"apiVersion":"v1beta3",
"metadata":{
"name":"redis-master",
"labels":{
"name":"redis-master"
}
},
“spec":{
"replicas":1,
"selector":{
"name":"redis-master"
},
"template": …
}
}
"template":{
"metadata":{
"labels":{
"name":"redis-master"
}
},
"spec":{
"containers":[{
"name":"master",
"image":"redis",
"ports":[{
"containerPort":6379,
"protocol":"TCP"
}]
}]
}
}
Service
» View on a set of Pods with
single IP address and port
» Pods are selected by Label
» Services are referenced by
environment variables
» Service addresses stay
stable
– Pods come and go (with
different IPs)
{
"kind":"Service",
"apiVersion":"v1beta3",
"metadata":{
"name":"redis-master",
"labels":{
"name":"redis-master"
}
},
"spec":{
"ports": [{
"port":6379,
"targetPort":6379,
"protocol":"TCP"
}],
"selector":{
"name":"redis-master"
}
}
}
kubectl
» CLI for managing Kubernetes
– kubectl <sub-command> …
get pods
get services
get rc
Show pods/service/replication
controllers
create Create objects
update Update objects
delete Delete objects
resize New size for a RC
History
» 2011: Platform-as-a-Service (PaaS) from
Red Hat
» Three variants:
– Online - Public PaaS
– Enterprise - Private PaaS
– Origin - Community PaaS
» OpenShift V3: Complete rewrite on basis
of Kubernetes
Features
» Adds the “Build” aspect to Kubernetes
» Developer and Operation Tools
» Application Component Libraries
» Infrastructure Services
– Registry, Router, OAuth2 Security
» Team and user isolation (multi-tenancy)
» Management UI
Builds
» Extension for building images
» Docker Builds
– Build images get access to enclosing Docker
daemon.
» Source-To-Image
– Assembly of new image from a builder image
and source code
– Often combined with a Webhook for automatic
builds
Templates
» Templates allow the specifications of
replication controller, services, …
» Parameter slots can be filled in …
– from the CLI wit osc process
– from the User Interface
» might become a Kubernetes feature in the
future
Templates
{
"apiVersion": "v1beta1",
"kind": "Template",
"metadata": {
"name": "Template_Name",
"annotations": {
"description": "Description"
}
},
"parameters": [{
"name": "username"
"value": "admin"
"description": "administrative user"
}],
"labels": {
"custom_label": "Label_Name"
},
"items": [{
...
}]
}
Deployments
» Update of a replication controller’s pod
template
– based on triggers
‣ image change
‣ configuration change
– custom deployment strategies
– rollback support
– replication scaling
Registry
» OpenShift provides an own Docker
registry as service
» OpenShift projects are mapped to registry
user
– e.g. for an image “fabric8/console” to be
pushed there must exist a OpenShift project
“fabric8”
Router
» External DNS mapping to services
– based on HAProxy
» Different types of TLS termination
– edge : TLS terminates at the router
– passthrough: TLS stream is handle through
to the service
– re-encryption: TLS terminates at the router
and is re-encrypted for the service
Web-Console
osc
» OpenShift CLI
» Extension to kubectl
process Process Templates
project Change namespace/project
get routes Show created routes
port-forward Port forwarding into pod
exec Execute process in running pod
fabric8
» Tools and Services for value add to
Kubernetes and OpenShift
– Management: console, logging, metrics, …
– Continous Delivery Workflow
– iPaaS: Camel route visualisation, API registry,
Messaging as a Service, …
– Tools: Kubernetes/OpenShift build integration,
Kubernetes component test support, CDI
extensions
History
» Fuse ESB: Open Source integration
platform by FuseSource
» Fabric: Extension for managing many
ESBs
» Red Hat acquired FuseSource in 2012
– Fuse ESB JBoss Fuse
– Fabric (closed) fabric8 (open source)
» fabric8 1.x is based on Zookeeper as
central view of the system
– JBoss Fuse 6.1: fabric8 1.0
– JBoss Fuse 6.2: fabric8 1.2.x
» fabric8 2.x sits on top of Kubernetes
– fabric8 1.x functionality became Jube, a pure
Java implementation of the Kubernetes API
Management
» Web console for Kubernetes
– Starting/Stopping of pods
– Changing Replicas
– Individual management of pods
– based on hawt.io
Continous Delivery
iPaas
» Console for visualising and working with
integration services
– e.g. showing the Camel routes
» API registry for a global view of all
RESTful and WebServices
» MQ provides Messaging as a Service
– based on ActiveMQ
– allows autoscaling
Tools
» fabric8-maven-plugin
– Creates and apply Kubernetes
descriptors out of build informations
– Creates OpenShift routes
– Deploys kubernetes.json as Maven
artefacts
Tools
» Arquillian extension for testing
– Provision containers to Kubernetes
– Separate namespace per test (isolation)
– Annotations for injecting Kubernetes objects
– Assertions on Kubernetes objects
» Java Libraries
– Access to Kubernetes API
– CDI injections of Kubernetes Services
– ….
Summary
» Docker is the perfect foundation for a
container based infrastructure
» Kubernetes is a powerful Docker
orchestration platform backed with great
momentum
» OpenShift as a PaaS adds the “Build”
dimension to Kubernetes
» Fabric8 adds services and Java tooling to
Docker, Kubernetes and OpenShift
Questions ?

More Related Content

What's hot

Beyond static configuration
Beyond static configurationBeyond static configuration
Beyond static configuration
Stefan Schimanski
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
Jacopo Nardiello
 
Kubernetes @ meetic
Kubernetes @ meeticKubernetes @ meetic
Kubernetes @ meetic
Sébastien Le Gall
 
Play Support in Cloud Foundry
Play Support in Cloud FoundryPlay Support in Cloud Foundry
Play Support in Cloud Foundry
rajdeep
 
(Draft) Kubernetes - A Comprehensive Overview
(Draft) Kubernetes - A Comprehensive Overview(Draft) Kubernetes - A Comprehensive Overview
(Draft) Kubernetes - A Comprehensive Overview
Bob Killen
 
Planes, Raft, and Pods: A Tour of Distributed Systems Within Kubernetes
Planes, Raft, and Pods: A Tour of Distributed Systems Within KubernetesPlanes, Raft, and Pods: A Tour of Distributed Systems Within Kubernetes
Planes, Raft, and Pods: A Tour of Distributed Systems Within Kubernetes
Bo Ingram
 
Docker SF Meetup January 2016
Docker SF Meetup January 2016Docker SF Meetup January 2016
Docker SF Meetup January 2016
Patrick Chanezon
 
Secrets in Kubernetes
Secrets in KubernetesSecrets in Kubernetes
Secrets in Kubernetes
Jerry Jalava
 
Orchestration tool roundup kubernetes vs. docker vs. heat vs. terra form vs...
Orchestration tool roundup   kubernetes vs. docker vs. heat vs. terra form vs...Orchestration tool roundup   kubernetes vs. docker vs. heat vs. terra form vs...
Orchestration tool roundup kubernetes vs. docker vs. heat vs. terra form vs...
Nati Shalom
 
The Operator Pattern - Managing Stateful Services in Kubernetes
The Operator Pattern - Managing Stateful Services in KubernetesThe Operator Pattern - Managing Stateful Services in Kubernetes
The Operator Pattern - Managing Stateful Services in Kubernetes
QAware GmbH
 
Scaling Development Environments with Docker
Scaling Development Environments with DockerScaling Development Environments with Docker
Scaling Development Environments with Docker
Docker, Inc.
 
Orchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failuresOrchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failures
Docker, Inc.
 
Clocker - The Docker Cloud Maker
Clocker - The Docker Cloud MakerClocker - The Docker Cloud Maker
Clocker - The Docker Cloud Maker
Andrew Kennedy
 
Service Discovery In Kubernetes
Service Discovery In KubernetesService Discovery In Kubernetes
Service Discovery In Kubernetes
Knoldus Inc.
 
Adf with docker
Adf with dockerAdf with docker
Adf with docker
Eugene Fedorenko
 
Dockerizing Windows Server Applications by Ender Barillas and Taylor Brown
Dockerizing Windows Server Applications by Ender Barillas and Taylor BrownDockerizing Windows Server Applications by Ender Barillas and Taylor Brown
Dockerizing Windows Server Applications by Ender Barillas and Taylor Brown
Docker, Inc.
 
Kubernetes 101 for Developers
Kubernetes 101 for DevelopersKubernetes 101 for Developers
Kubernetes 101 for Developers
Ross Kukulinski
 
Microservices with containers in the cloud
Microservices with containers in the cloudMicroservices with containers in the cloud
Microservices with containers in the cloud
Eugene Fedorenko
 
Openstack Overview
Openstack OverviewOpenstack Overview
Openstack Overview
rajdeep
 
Serverless forwardjs
Serverless forwardjsServerless forwardjs
Serverless forwardjs
Upkar Lidder
 

What's hot (20)

Beyond static configuration
Beyond static configurationBeyond static configuration
Beyond static configuration
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Kubernetes @ meetic
Kubernetes @ meeticKubernetes @ meetic
Kubernetes @ meetic
 
Play Support in Cloud Foundry
Play Support in Cloud FoundryPlay Support in Cloud Foundry
Play Support in Cloud Foundry
 
(Draft) Kubernetes - A Comprehensive Overview
(Draft) Kubernetes - A Comprehensive Overview(Draft) Kubernetes - A Comprehensive Overview
(Draft) Kubernetes - A Comprehensive Overview
 
Planes, Raft, and Pods: A Tour of Distributed Systems Within Kubernetes
Planes, Raft, and Pods: A Tour of Distributed Systems Within KubernetesPlanes, Raft, and Pods: A Tour of Distributed Systems Within Kubernetes
Planes, Raft, and Pods: A Tour of Distributed Systems Within Kubernetes
 
Docker SF Meetup January 2016
Docker SF Meetup January 2016Docker SF Meetup January 2016
Docker SF Meetup January 2016
 
Secrets in Kubernetes
Secrets in KubernetesSecrets in Kubernetes
Secrets in Kubernetes
 
Orchestration tool roundup kubernetes vs. docker vs. heat vs. terra form vs...
Orchestration tool roundup   kubernetes vs. docker vs. heat vs. terra form vs...Orchestration tool roundup   kubernetes vs. docker vs. heat vs. terra form vs...
Orchestration tool roundup kubernetes vs. docker vs. heat vs. terra form vs...
 
The Operator Pattern - Managing Stateful Services in Kubernetes
The Operator Pattern - Managing Stateful Services in KubernetesThe Operator Pattern - Managing Stateful Services in Kubernetes
The Operator Pattern - Managing Stateful Services in Kubernetes
 
Scaling Development Environments with Docker
Scaling Development Environments with DockerScaling Development Environments with Docker
Scaling Development Environments with Docker
 
Orchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failuresOrchestrating Linux Containers while tolerating failures
Orchestrating Linux Containers while tolerating failures
 
Clocker - The Docker Cloud Maker
Clocker - The Docker Cloud MakerClocker - The Docker Cloud Maker
Clocker - The Docker Cloud Maker
 
Service Discovery In Kubernetes
Service Discovery In KubernetesService Discovery In Kubernetes
Service Discovery In Kubernetes
 
Adf with docker
Adf with dockerAdf with docker
Adf with docker
 
Dockerizing Windows Server Applications by Ender Barillas and Taylor Brown
Dockerizing Windows Server Applications by Ender Barillas and Taylor BrownDockerizing Windows Server Applications by Ender Barillas and Taylor Brown
Dockerizing Windows Server Applications by Ender Barillas and Taylor Brown
 
Kubernetes 101 for Developers
Kubernetes 101 for DevelopersKubernetes 101 for Developers
Kubernetes 101 for Developers
 
Microservices with containers in the cloud
Microservices with containers in the cloudMicroservices with containers in the cloud
Microservices with containers in the cloud
 
Openstack Overview
Openstack OverviewOpenstack Overview
Openstack Overview
 
Serverless forwardjs
Serverless forwardjsServerless forwardjs
Serverless forwardjs
 

Viewers also liked

Cloud Computing Fundamental
Cloud Computing FundamentalCloud Computing Fundamental
Cloud Computing Fundamental
Dony Riyanto
 
Docker Meetup - Melbourne 2015 - Kubernetes Deep Dive
Docker Meetup - Melbourne 2015 - Kubernetes Deep DiveDocker Meetup - Melbourne 2015 - Kubernetes Deep Dive
Docker Meetup - Melbourne 2015 - Kubernetes Deep Dive
Ken Thompson
 
Scalable Python with Docker, Kubernetes, OpenShift
Scalable Python with Docker, Kubernetes, OpenShiftScalable Python with Docker, Kubernetes, OpenShift
Scalable Python with Docker, Kubernetes, OpenShift
Aarno Aukia
 
Cloud computing stack
Cloud computing stackCloud computing stack
Cloud computing stack
Pedro Alexander Romero Tortosa
 
Achieving Cost and Resource Efficiency through Docker, OpenShift and Kubernetes
Achieving Cost and Resource Efficiency through Docker, OpenShift and KubernetesAchieving Cost and Resource Efficiency through Docker, OpenShift and Kubernetes
Achieving Cost and Resource Efficiency through Docker, OpenShift and KubernetesDean Delamont
 
Serverless on Kubernetes
Serverless on KubernetesServerless on Kubernetes
Serverless on Kubernetes
Sebastien Goasguen
 
OpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetesOpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetes
Samuel Terburg
 
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Kai Wähner
 
Feature Engineering
Feature EngineeringFeature Engineering
Feature Engineering
HJ van Veen
 

Viewers also liked (9)

Cloud Computing Fundamental
Cloud Computing FundamentalCloud Computing Fundamental
Cloud Computing Fundamental
 
Docker Meetup - Melbourne 2015 - Kubernetes Deep Dive
Docker Meetup - Melbourne 2015 - Kubernetes Deep DiveDocker Meetup - Melbourne 2015 - Kubernetes Deep Dive
Docker Meetup - Melbourne 2015 - Kubernetes Deep Dive
 
Scalable Python with Docker, Kubernetes, OpenShift
Scalable Python with Docker, Kubernetes, OpenShiftScalable Python with Docker, Kubernetes, OpenShift
Scalable Python with Docker, Kubernetes, OpenShift
 
Cloud computing stack
Cloud computing stackCloud computing stack
Cloud computing stack
 
Achieving Cost and Resource Efficiency through Docker, OpenShift and Kubernetes
Achieving Cost and Resource Efficiency through Docker, OpenShift and KubernetesAchieving Cost and Resource Efficiency through Docker, OpenShift and Kubernetes
Achieving Cost and Resource Efficiency through Docker, OpenShift and Kubernetes
 
Serverless on Kubernetes
Serverless on KubernetesServerless on Kubernetes
Serverless on Kubernetes
 
OpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetesOpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetes
 
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
Microservices, Containers, Docker and a Cloud-Native Architecture in the Midd...
 
Feature Engineering
Feature EngineeringFeature Engineering
Feature Engineering
 

Similar to fabric8 ... and Docker, Kubernetes & OpenShift

2 Linux Container and Docker
2 Linux Container and Docker2 Linux Container and Docker
2 Linux Container and Docker
Fabio Fumarola
 
Develop with linux containers and docker
Develop with linux containers and dockerDevelop with linux containers and docker
Develop with linux containers and docker
Fabio Fumarola
 
Linux containers and docker
Linux containers and dockerLinux containers and docker
Linux containers and docker
Fabio Fumarola
 
Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby project
Patrick Chanezon
 
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
Patrick Chanezon
 
Containers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshellContainers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshell
Eugene Fedorenko
 
Containerize! Between Docker and Jube.
Containerize! Between Docker and Jube.Containerize! Between Docker and Jube.
Containerize! Between Docker and Jube.
Henryk Konsek
 
Azure deployments and ARM templates
Azure deployments and ARM templatesAzure deployments and ARM templates
Azure deployments and ARM templates
gjuljo
 
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Etsuji Nakai
 
Understanding the container landscape and it associated projects
Understanding the container landscape and it associated projectsUnderstanding the container landscape and it associated projects
Understanding the container landscape and it associated projects
Anthony Chow
 
Microservices and containers for the unitiated
Microservices and containers for the unitiatedMicroservices and containers for the unitiated
Microservices and containers for the unitiated
Kevin Lee
 
Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016
Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016
Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016
Zabbix
 
LAMP Stack (Reloaded) - Infrastructure as Code with Terraform & Packer
LAMP Stack (Reloaded) - Infrastructure as Code with Terraform & PackerLAMP Stack (Reloaded) - Infrastructure as Code with Terraform & Packer
LAMP Stack (Reloaded) - Infrastructure as Code with Terraform & Packer
Jan-Christoph Küster
 
Infrastructure as Code: Manage your Architecture with Git
Infrastructure as Code: Manage your Architecture with GitInfrastructure as Code: Manage your Architecture with Git
Infrastructure as Code: Manage your Architecture with Git
Danilo Poccia
 
[FDD 2016] Marek Śledziński - Microsoft Windows a sprawa kontenerów
[FDD 2016] Marek Śledziński - Microsoft Windows a sprawa kontenerów[FDD 2016] Marek Śledziński - Microsoft Windows a sprawa kontenerów
[FDD 2016] Marek Śledziński - Microsoft Windows a sprawa kontenerów
Future Processing
 
Vert.x devoxx london 2013
Vert.x devoxx london 2013Vert.x devoxx london 2013
Vert.x devoxx london 2013
Stuart (Pid) Williams
 
Microservices, Containers and Docker
Microservices, Containers and DockerMicroservices, Containers and Docker
Microservices, Containers and Docker
Ioannis Papapanagiotou
 
Kubernetes for the PHP developer
Kubernetes for the PHP developerKubernetes for the PHP developer
Kubernetes for the PHP developer
Paul Czarkowski
 
Evolution of containers to kubernetes
Evolution of containers to kubernetesEvolution of containers to kubernetes
Evolution of containers to kubernetes
Krishna-Kumar
 
Techdays SE 2016 - Micros.. err Microcosmos
Techdays SE 2016 - Micros.. err MicrocosmosTechdays SE 2016 - Micros.. err Microcosmos
Techdays SE 2016 - Micros.. err Microcosmos
Mike Martin
 

Similar to fabric8 ... and Docker, Kubernetes & OpenShift (20)

2 Linux Container and Docker
2 Linux Container and Docker2 Linux Container and Docker
2 Linux Container and Docker
 
Develop with linux containers and docker
Develop with linux containers and dockerDevelop with linux containers and docker
Develop with linux containers and docker
 
Linux containers and docker
Linux containers and dockerLinux containers and docker
Linux containers and docker
 
Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby project
 
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
 
Containers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshellContainers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshell
 
Containerize! Between Docker and Jube.
Containerize! Between Docker and Jube.Containerize! Between Docker and Jube.
Containerize! Between Docker and Jube.
 
Azure deployments and ARM templates
Azure deployments and ARM templatesAzure deployments and ARM templates
Azure deployments and ARM templates
 
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
 
Understanding the container landscape and it associated projects
Understanding the container landscape and it associated projectsUnderstanding the container landscape and it associated projects
Understanding the container landscape and it associated projects
 
Microservices and containers for the unitiated
Microservices and containers for the unitiatedMicroservices and containers for the unitiated
Microservices and containers for the unitiated
 
Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016
Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016
Erik Skytthe - Monitoring Mesos, Docker, Containers with Zabbix | ZabConf2016
 
LAMP Stack (Reloaded) - Infrastructure as Code with Terraform & Packer
LAMP Stack (Reloaded) - Infrastructure as Code with Terraform & PackerLAMP Stack (Reloaded) - Infrastructure as Code with Terraform & Packer
LAMP Stack (Reloaded) - Infrastructure as Code with Terraform & Packer
 
Infrastructure as Code: Manage your Architecture with Git
Infrastructure as Code: Manage your Architecture with GitInfrastructure as Code: Manage your Architecture with Git
Infrastructure as Code: Manage your Architecture with Git
 
[FDD 2016] Marek Śledziński - Microsoft Windows a sprawa kontenerów
[FDD 2016] Marek Śledziński - Microsoft Windows a sprawa kontenerów[FDD 2016] Marek Śledziński - Microsoft Windows a sprawa kontenerów
[FDD 2016] Marek Śledziński - Microsoft Windows a sprawa kontenerów
 
Vert.x devoxx london 2013
Vert.x devoxx london 2013Vert.x devoxx london 2013
Vert.x devoxx london 2013
 
Microservices, Containers and Docker
Microservices, Containers and DockerMicroservices, Containers and Docker
Microservices, Containers and Docker
 
Kubernetes for the PHP developer
Kubernetes for the PHP developerKubernetes for the PHP developer
Kubernetes for the PHP developer
 
Evolution of containers to kubernetes
Evolution of containers to kubernetesEvolution of containers to kubernetes
Evolution of containers to kubernetes
 
Techdays SE 2016 - Micros.. err Microcosmos
Techdays SE 2016 - Micros.. err MicrocosmosTechdays SE 2016 - Micros.. err Microcosmos
Techdays SE 2016 - Micros.. err Microcosmos
 

Recently uploaded

top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 

Recently uploaded (20)

top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 

fabric8 ... and Docker, Kubernetes & OpenShift

  • 1. Dr. Roland Huß | Red Hat fabric8 … and Docker, Kubernetes, OpenShift
  • 2.
  • 3.
  • 4. ?
  • 5.
  • 6. Me » Developer (mostly Java) » Open Source – Jolokia: JMX-HTTP Bridge – docker-maven-plugin » Software Engineer @ Red Hat – (since May) » Contact: – Blog: https://ro14nd.de – Twitter: @ro14nd
  • 7. OS Level Virtualisation Docker Orchestration PaaS Platform on top of Kubernetes Services and Tools for Kubernetes and OpenShift
  • 9. Facts » OS level virtualisation tool suite » Client-Server architecture – Server communicates via Unix- or INET- Sockets with a REST API » Docker commands via CLI » Written in Go » Current version: 1.6
  • 10. Lightweight Container vs. VM Containers are isolated, but sharing the kernel and (some) files ➜ faster & lighter
  • 11. Concepts » Image – Read-only filesystem layer – Deploy & Share – Blueprint for a container » Container – Read-write filesystem layer (copy-on-write) – Instance of an image – Has a lifecycle (start & stop)
  • 12. Concepts » Repository – Collection of layered images – often synonym for “Image” – Has a name: registry/user/repository:tag » Registry – Storage for repositories – Default: docker.io (public docker hub)
  • 13. docker » CLI for managing Docker – docker <sub-command> … ps Show all containers images Show all images run Create and run a container search Seaarch for images on a registry pull Dowmload of images rm Remove container rmi Remove image
  • 15. Facts » Open Source orchestration platform for Docker containers – Rewrite of Google’s internal framework “Borg” » Declarative specification of a desired state » Self-healing » Service discovery » Scheduling across hosts » Simple replication
  • 17. Concepts » Pods – Collection of one or more Docker containers » Replication Controller – Creates and takes care of Pods » Services – Proxy for a collection of Pods » Labels – Grouping and organisation of Objects
  • 18. Pod » Collection of Docker containers running on the same host. » Pods have a unique IP » Containers in a Pod …. – …. share the same IP – …. can reach each other via local ports – …. can share data via volumes » Pods can have one or more Labels
  • 19. Replication Controller » Controls Pods selected by Labels » Ensures that a specified number of Pod replicas is running » Holds Pod Templates for creating new Pods » Autoscaling » Rolling Updates
  • 21. Service » View on a set of Pods with single IP address and port » Pods are selected by Label » Services are referenced by environment variables » Service addresses stay stable – Pods come and go (with different IPs)
  • 23. kubectl » CLI for managing Kubernetes – kubectl <sub-command> … get pods get services get rc Show pods/service/replication controllers create Create objects update Update objects delete Delete objects resize New size for a RC
  • 24.
  • 25. History » 2011: Platform-as-a-Service (PaaS) from Red Hat » Three variants: – Online - Public PaaS – Enterprise - Private PaaS – Origin - Community PaaS » OpenShift V3: Complete rewrite on basis of Kubernetes
  • 26. Features » Adds the “Build” aspect to Kubernetes » Developer and Operation Tools » Application Component Libraries » Infrastructure Services – Registry, Router, OAuth2 Security » Team and user isolation (multi-tenancy) » Management UI
  • 27. Builds » Extension for building images » Docker Builds – Build images get access to enclosing Docker daemon. » Source-To-Image – Assembly of new image from a builder image and source code – Often combined with a Webhook for automatic builds
  • 28. Templates » Templates allow the specifications of replication controller, services, … » Parameter slots can be filled in … – from the CLI wit osc process – from the User Interface » might become a Kubernetes feature in the future
  • 29. Templates { "apiVersion": "v1beta1", "kind": "Template", "metadata": { "name": "Template_Name", "annotations": { "description": "Description" } }, "parameters": [{ "name": "username" "value": "admin" "description": "administrative user" }], "labels": { "custom_label": "Label_Name" }, "items": [{ ... }] }
  • 30. Deployments » Update of a replication controller’s pod template – based on triggers ‣ image change ‣ configuration change – custom deployment strategies – rollback support – replication scaling
  • 31. Registry » OpenShift provides an own Docker registry as service » OpenShift projects are mapped to registry user – e.g. for an image “fabric8/console” to be pushed there must exist a OpenShift project “fabric8”
  • 32. Router » External DNS mapping to services – based on HAProxy » Different types of TLS termination – edge : TLS terminates at the router – passthrough: TLS stream is handle through to the service – re-encryption: TLS terminates at the router and is re-encrypted for the service
  • 34. osc » OpenShift CLI » Extension to kubectl process Process Templates project Change namespace/project get routes Show created routes port-forward Port forwarding into pod exec Execute process in running pod
  • 35.
  • 36. fabric8 » Tools and Services for value add to Kubernetes and OpenShift – Management: console, logging, metrics, … – Continous Delivery Workflow – iPaaS: Camel route visualisation, API registry, Messaging as a Service, … – Tools: Kubernetes/OpenShift build integration, Kubernetes component test support, CDI extensions
  • 37. History » Fuse ESB: Open Source integration platform by FuseSource » Fabric: Extension for managing many ESBs » Red Hat acquired FuseSource in 2012 – Fuse ESB JBoss Fuse – Fabric (closed) fabric8 (open source)
  • 38. » fabric8 1.x is based on Zookeeper as central view of the system – JBoss Fuse 6.1: fabric8 1.0 – JBoss Fuse 6.2: fabric8 1.2.x » fabric8 2.x sits on top of Kubernetes – fabric8 1.x functionality became Jube, a pure Java implementation of the Kubernetes API
  • 39. Management » Web console for Kubernetes – Starting/Stopping of pods – Changing Replicas – Individual management of pods – based on hawt.io
  • 40.
  • 42. iPaas » Console for visualising and working with integration services – e.g. showing the Camel routes » API registry for a global view of all RESTful and WebServices » MQ provides Messaging as a Service – based on ActiveMQ – allows autoscaling
  • 43. Tools » fabric8-maven-plugin – Creates and apply Kubernetes descriptors out of build informations – Creates OpenShift routes – Deploys kubernetes.json as Maven artefacts
  • 44. Tools » Arquillian extension for testing – Provision containers to Kubernetes – Separate namespace per test (isolation) – Annotations for injecting Kubernetes objects – Assertions on Kubernetes objects » Java Libraries – Access to Kubernetes API – CDI injections of Kubernetes Services – ….
  • 45. Summary » Docker is the perfect foundation for a container based infrastructure » Kubernetes is a powerful Docker orchestration platform backed with great momentum » OpenShift as a PaaS adds the “Build” dimension to Kubernetes » Fabric8 adds services and Java tooling to Docker, Kubernetes and OpenShift