SlideShare a Scribd company logo
1 of 42
Download to read offline
The Latest in Linux Containers Technology
Podman, Buildah and Quarkus
Daniel Oh
Open Source Summit Japan 2019
1
About Me
danieloh30
Daniel Oh
@danieloh30doh@redhat.com
● Principal Technical Product Marketing Manager at Red Hat
○ Cloud Native App Development
○ Agile & DevOps practices
● CNCF Ambassador
● Java Developer
● Opensource.com Moderator
● Public Speaker & Writer
Container tools landscape is changing.
Why?
INTRODUCTION
3
Since Open Container Initiative (OCI)
there are several new projects
What needs do these projects address?
What are these projects and when
should I use them?
What specific security concern does
each address?
@danieloh30
Early concerns with Docker
INTRODUCTION
4
Since the early days enterprise users of
Docker had concerns
● Build requires a “big fat” daemon on
every host
● Regression for integration with
container platforms
Kubernetes/OpenShift
● Build has secret handling issues
● Root/privileged concerns at runtime
● Root/privileged concerns with daemon
● Build requires a running container
@danieloh30
INTRODUCTION
5
● Docker, Red Hat et al. June 2015
● Two specifications
○ Image format
■ How to package an OCI Image with sufficient information to launch
the application on the target platform
○ Runtime
■ How to launch a “filesystem bundle” that is unpacked on disk
● Version 1.0 of each released July 19th 2017
● Distribution spec started in April, 2018.
@danieloh30
6
CONTAINERSARELINUX
Containers are
Linux
CONTAINERS ARE LINUX
7
LXC Initial
release
Aug
‘08
OpenShift
online
May
‘11
Container innovation continues ….
Docker
initial
Mar
‘13
OpenShift
Enterprise
3.0
Jun
‘15
OCI
CNCF
Initial
release,
Buildah
Jun
‘17
Moby
Apr
‘17
Sep
‘17
Kubernetes
Mid
‘14
Buildah 1.0
Podman
New logo
May
‘18
buildah.io
podman.io
Sep
‘18
Buildah
Skopeo
Podman
RHEL
May
‘19
Nov
‘15
Mar
‘16
@danieloh30
CONTAINERS ARE LINUX
How did Docker change containers?
Docker
Daemon
Image
Layers
Docker CLI
Docker daemon
image container
registry
Base Distro Image
App. Package
Dependencies
App. Package
Dependencies
Application
CLI
kernel
8
@danieloh30
9
SKOPEO
Skopeo.
The first break
away.
SKOPEO
IMAGE COPY WITH SKOPEO
● Built for interfacing with Docker registry
● CLI for images and image registries
● Rejected by upstream Docker ¯_(ツ)_/¯
● Allows remote inspection of image metadata
- no downloading
● Can copy from one storage to another
SKOPEO
Image
Repository
Image
Registry
Host
/var/lib/containers
or
/var/lib/docker
SECURITY FEATURES
Share securely
No daemon
Inspect remote images
No pulling potentially malicious images
Non-root copy. Bridge between registries.
10
@danieloh30
11
PODMAN
Podman.
The daemonless
client for
developers and
beyond.
PODMAN
The new container CLI
● @ podman.io
● Client only tool, based on the Docker CLI. (same+)
● No daemon!
● Storage for
○ Images - containers/image
○ Containers - containers/storage
● Runtime - runc
● Shares state with CRI-O and with Buildah!
PODMAN
Images
Image
Registry
Containers
Kernel
SECURITY FEATURES
Run and develop securely
No daemon
Run without root
Isolate with user namespaces
Audit who runs what
12
@danieloh30
PODMAN
Developer’s experience
● Provides a familiar command line experience compatible with the Docker CLI
● Great for running, building, and sharing containers outside of
Kubernetes/OpenShift
● Build and run containers as non-root (enhanced user namespaces)
● Can be wired into existing infrastructure where the docker daemon/cli are
used today
● Use existing Dockerfiles
● Simple command line interface, no client-server architecture
● Docker compatible health checks
@danieloh30
14
PODMANDEMO
Podman
Demo
PODMAN
But there’s more : podman pod
Pods are a group of one or more containers sharing the same network, pid and ipc
namespaces.
create Create a new empty pod
exists Check if a pod exists in
local storage
inspect Displays a pod configuration
kill Send the specified signal or
SIGKILL to containers in pod
pause Pause one or more pods
ps List pods
restart Restart one or more pods
rm Remove one or more pods
start Start one or more pods
stats Display a live stream of
resource usage statistics
for the containers in one or
more pods
stop Stop one or more pods
top Display the running
processes of containers in a
pod
unpause Unpause one or more pods
@danieloh30
16
BUILDAH
Buildah.
The secure
container
builder.
BUILDAH
17
Source
Repo
Image
Repo
Build Test
Review/
Appr
Deliver Deploy
3rd
Party
$ podman build
$ docker build
Developer
Workstation/Laptop
Container Platform
DataCenter
OCI Compliant
CI/CD LIFECYCLE
git
The separation of concerns
@danieloh30
BUILDAH
18
Why use Buildah?
● Now buildah.io
● Builds OCI compliant images
● No daemon - no “docker socket”
● Does not require a running container
● Can use the host’s user’s secrets.
● Single layer, from scratch images are made
easy and it ensures limited manifest.
● If needed you can still maintain Dockerfile
based workflow
Base RHEL
OS Update Layer
Java Runtime Layer
Application Layer
Java runtime and
dependencies, and
Application
From scratch,
single layer
From base,
multi-layer
SECURITY FEATURES
Build securely
No daemon
Shrink the attack surface
Fine-grained control of the layers
Run builds isolated
Better secret management
@danieloh30
19
BUILDAHDEMO
Buildah
Demo
What does Buildah do?
BUILDAH
20
buildah from - Build up a container root filesystem from an image or scratch.
buildah config - Adjust defaults in the image’s configuration blob.
buildah run - Run a command in the container’s filesystem using runc.
NOT like docker run. Like Dockerfile RUN.
buildah mount - Mount the container’s root filesystem on the host.
buildah commit - Commit container’s changes to a new image.
@danieloh30
What does Buildah do?
BUILDAH
21
buildah push - Push images to registries (Quay etc.) or a local dockerd instance
buildah build-using-dockerfile (a.k.a. buildah bud) - Build images using a Dockerfile for
instructions
buildah unmount - Oh, it also unmounts container filesystems
Provide a library API that’s used by the CLI
Share libraries and on-disk storage with CRI-O
@danieloh30
22
CRI-O
CRI-O.
The OCI
runtime
abstraction for
Kubernetes
CRI-O
OCI AND CRI-O
● A Kubernetes thing
● Now part of CNCF! (April 8th)
● OCI daemon
● Implements Kubelet Container Runtime
Interface (CRI)
CRI-O
Container
Host
Container
Container
Container
Kubernetes
READONLY
SECURITY FEATURES
Run securely in a production cluster
No daemon
Read-only containers
Enable fewer capabilities
User namespaces
FIPS mode support
23
@danieloh30
24
WHEREDOIGOFROMHERE?
Which app will
be the best for
the Linux
Containers?
@danieloh30 @QuarkusIO
Supersonic Subatomic Java
A Kubernetes Native Java stack tailored for GraalVM &
OpenJDK HotSpot, crafted from the best of breed Java
libraries and standards
@danieloh30 @QuarkusIO
@danieloh30 @QuarkusIO
A stack to write Java apps
Cloud Native, Microservices, Serverless
28
BUILDAHDEMO
Quarkus
Demo
@danieloh30 @QuarkusIO
A cohesive platform for optimized developer joy:
● Based on standards, but not limited
● Unified configuration
● Zero config, live reload in the blink of an eye
● Streamlined code for the 80% common usages,
flexible for the 20%
● No hassle native executable generation
Benefit No. 1: Developer Joy
@danieloh30 @QuarkusIO
Benefit No. 2: Supersonic Subatomic Java
Memory (RSS) in Megabytes
Quarkus + GraalVM
13 MB
Quarkus + OpenJDK
74 MB
Traditional Cloud-Native Stack
74 MB
REST
@danieloh30 @QuarkusIO
Benefit No. 2: Supersonic Subatomic Java
Memory (RSS) in Megabytes
REST + CRUD
Quarkus + GraalVM
35 MB
Quarkus + OpenJDK
130 MB
Traditional Cloud-Native Stack
218 MB
@danieloh30 @QuarkusIO
Benefit No. 2: Supersonic Subatomic Java
Boot + First Response Time (in seconds)
Quarkus + GraalVM 0.014 Seconds
REST
REST + CRUD
Quarkus + OpenJDK 0.75 Seconds
Quarkus + GraalVM 0.055 Seconds
Quarkus + OpenJDK 2.5 Seconds
Traditional Cloud-Native Stack 9.5 Seconds
Traditional Cloud-Native Stack 4.3 Seconds
@danieloh30 @QuarkusIO
Benefit No. 3: Unifies Imperative and Reactive
● Combine both Reactive and imperative development in the same application
● Inject the EventBus or the Vertx context
● Use the technology that fits your use-case
@Inject
SayService say;
@GET
@Produces(MediaType.TEXT_PLAIN)
public String hello() {
return say.hello();
}
@Inject @Stream(”kafka”)
Publisher<String> reactiveSay;
@GET
@Produces(MediaType.SERVER_SENT_EVENTS)
public Publisher<String> stream() {
return reactiveSay;
}
@danieloh30 @QuarkusIO
Benefit No. 4: Best of Breed Frameworks & Standards
Eclipse Vert.x Hibernate RESTEasy Apache Camel Eclipse MicroProfile Netty
Kubernetes OpenShift Jaeger Prometheus Apache Kafka Infinispan
35
WHEREDOIGOFROMHERE?
Where do I find
these projects
in Red Hat
products?
WHERE CAN I FIND THESE AWESOME PROJECTS
IN RED HAT PRODUCTS?
WHERE? RED HAT PRODUCTS
36
SECURING THE PLATFORMS
Red Hat chose to move away from Docker to
Podman, Buildah and CRI-O in order to provide
a more secure environment for containers on
both OpenShift Container Platform and RHEL
SMART LIGHT CONTAINERS TOOL
The container-tools package installs Podman,
Buildah and Skopeo together.
Users can use these in root or user namespace.
CONTINUOUS BUILDING, SECURE RUNTIME
Red Hat OCP has been using Skopeo for
efficiency for a number of years. OCP 4 moves
to using Buildah by default for building
container images. CRI-O is the default container
runtime. Use Podman for helping to debug pods
and containers.
@danieloh30
37
OPENSOURCEWINS
Open source
wins. Questions
inspire
community
innovations.
OPEN SOURCE WINS
● Why do we have to pull down a container
just to inspect it?
● Could we decouple kubernetes from the
container runtime?
● Is it possible to build containers on a cluster
without having to install and run a daemon?
● How will we design, use, debug containers
on the cluster if we don’t have client tools
because we don’t have Docker?
38
@danieloh30
OPEN SOURCE WINS
Getting Started
● Download Podman today
○ Package name podman
● It won’t clash with your existing Docker
● If you feel more adventurous download
Buildah too
○ Package name buildah
● Or all with : container-tools
● Lots of demos and tutorials are available
● Contribute to the projects! (Next page)
39
@danieloh30
CONFIDENTIAL Designator
Where can I learn more?
Where to find more information
40
Buildah
https://github.com/containers/buildah
https://buildah.io/
Podman
https://github.com/containers/libpod
https://podman.io/
Skopeo
https://github.com/containers/skopeo
Other useful links
https://github.com/opencontainers/runc
https://developers.redhat.com/blog/2019/02/21/podman-and-buildah-for-docker-users
https://www.katacoda.com/courses/containers-without-docker
@danieloh30
@danieloh30 @QuarkusIO
https://quarkus.io
@QuarkusIO
https://quarkusio.zulipchat.com
linkedin.com/company/red-hat
youtube.com/user/RedHatVideos
facebook.com/redhatinc
twitter.com/RedHat
linkedin.com/in/williamhenry twitter.com/ipbabble
42
Red Hat is the world’s leading provider of enterprise
open source software solutions. Award-winning
support, training, and consulting services make Red
Hat a trusted adviser to the Fortune 500.
Thank you
THANKYOU

More Related Content

What's hot

Docker Compose by Aanand Prasad
Docker Compose by Aanand Prasad Docker Compose by Aanand Prasad
Docker Compose by Aanand Prasad Docker, Inc.
 
Kubernetes - introduction
Kubernetes - introductionKubernetes - introduction
Kubernetes - introductionSparkbit
 
Faster Container Image Distribution on a Variety of Tools with Lazy Pulling
Faster Container Image Distribution on a Variety of Tools with Lazy PullingFaster Container Image Distribution on a Variety of Tools with Lazy Pulling
Faster Container Image Distribution on a Variety of Tools with Lazy PullingKohei Tokunaga
 
K8s security best practices
K8s security best practicesK8s security best practices
K8s security best practicesSharon Vendrov
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker IntroductionSparkbit
 
Ceph Block Devices: A Deep Dive
Ceph Block Devices:  A Deep DiveCeph Block Devices:  A Deep Dive
Ceph Block Devices: A Deep DiveRed_Hat_Storage
 
Kubernetes
KubernetesKubernetes
Kuberneteserialc_w
 
[CNCF TAG-Runtime 2022-10-06] Lima
[CNCF TAG-Runtime 2022-10-06] Lima[CNCF TAG-Runtime 2022-10-06] Lima
[CNCF TAG-Runtime 2022-10-06] LimaAkihiro Suda
 
A brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsA brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsRamit Surana
 
Kubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionKubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionStefan Schimanski
 
Docker Registry V2
Docker Registry V2Docker Registry V2
Docker Registry V2Docker, Inc.
 
Room 2 - 3 - Nguyễn Hoài Nam & Nguyễn Việt Hùng - Terraform & Pulumi Comparin...
Room 2 - 3 - Nguyễn Hoài Nam & Nguyễn Việt Hùng - Terraform & Pulumi Comparin...Room 2 - 3 - Nguyễn Hoài Nam & Nguyễn Việt Hùng - Terraform & Pulumi Comparin...
Room 2 - 3 - Nguyễn Hoài Nam & Nguyễn Việt Hùng - Terraform & Pulumi Comparin...Vietnam Open Infrastructure User Group
 
Kubernetes and container security
Kubernetes and container securityKubernetes and container security
Kubernetes and container securityVolodymyr Shynkar
 
Containerd + buildkit breakout
Containerd + buildkit breakoutContainerd + buildkit breakout
Containerd + buildkit breakoutDocker, Inc.
 
Kubernetes
KubernetesKubernetes
KubernetesHenry He
 
DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et DockerStephane Manciot
 
Kubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideKubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideBytemark
 

What's hot (20)

Docker Compose by Aanand Prasad
Docker Compose by Aanand Prasad Docker Compose by Aanand Prasad
Docker Compose by Aanand Prasad
 
Jenkins
JenkinsJenkins
Jenkins
 
Kubernetes - introduction
Kubernetes - introductionKubernetes - introduction
Kubernetes - introduction
 
Faster Container Image Distribution on a Variety of Tools with Lazy Pulling
Faster Container Image Distribution on a Variety of Tools with Lazy PullingFaster Container Image Distribution on a Variety of Tools with Lazy Pulling
Faster Container Image Distribution on a Variety of Tools with Lazy Pulling
 
K8s security best practices
K8s security best practicesK8s security best practices
K8s security best practices
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Ceph Block Devices: A Deep Dive
Ceph Block Devices:  A Deep DiveCeph Block Devices:  A Deep Dive
Ceph Block Devices: A Deep Dive
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
[CNCF TAG-Runtime 2022-10-06] Lima
[CNCF TAG-Runtime 2022-10-06] Lima[CNCF TAG-Runtime 2022-10-06] Lima
[CNCF TAG-Runtime 2022-10-06] Lima
 
A brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsA brief study on Kubernetes and its components
A brief study on Kubernetes and its components
 
Kubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionKubernetes Architecture and Introduction
Kubernetes Architecture and Introduction
 
Docker
DockerDocker
Docker
 
Docker Registry V2
Docker Registry V2Docker Registry V2
Docker Registry V2
 
Room 2 - 3 - Nguyễn Hoài Nam & Nguyễn Việt Hùng - Terraform & Pulumi Comparin...
Room 2 - 3 - Nguyễn Hoài Nam & Nguyễn Việt Hùng - Terraform & Pulumi Comparin...Room 2 - 3 - Nguyễn Hoài Nam & Nguyễn Việt Hùng - Terraform & Pulumi Comparin...
Room 2 - 3 - Nguyễn Hoài Nam & Nguyễn Việt Hùng - Terraform & Pulumi Comparin...
 
Kubernetes and container security
Kubernetes and container securityKubernetes and container security
Kubernetes and container security
 
Containerd + buildkit breakout
Containerd + buildkit breakoutContainerd + buildkit breakout
Containerd + buildkit breakout
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
What is Docker
What is Docker What is Docker
What is Docker
 
DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et Docker
 
Kubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideKubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory Guide
 

Similar to Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies

Why Users Are Moving on from Docker and Leaving Its Security Risks Behind (Sp...
Why Users Are Moving on from Docker and Leaving Its Security Risks Behind (Sp...Why Users Are Moving on from Docker and Leaving Its Security Risks Behind (Sp...
Why Users Are Moving on from Docker and Leaving Its Security Risks Behind (Sp...Amazon Web Services
 
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, ...Ambassador Labs
 
Developer workflow with docker
Developer workflow with dockerDeveloper workflow with docker
Developer workflow with dockerLalatendu Mohanty
 
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...Ambassador Labs
 
OpenShift Commons - Adopting Podman, Skopeo and Buildah for Building and Mana...
OpenShift Commons - Adopting Podman, Skopeo and Buildah for Building and Mana...OpenShift Commons - Adopting Podman, Skopeo and Buildah for Building and Mana...
OpenShift Commons - Adopting Podman, Skopeo and Buildah for Building and Mana...Mihai Criveti
 
Docker Timisoara: Dockercon19 recap slides, 23 may 2019
Docker Timisoara: Dockercon19 recap slides, 23 may 2019Docker Timisoara: Dockercon19 recap slides, 23 may 2019
Docker Timisoara: Dockercon19 recap slides, 23 may 2019Radulescu Adina-Valentina
 
Accelerate your development with Docker
Accelerate your development with DockerAccelerate your development with Docker
Accelerate your development with DockerAndrey Hristov
 
Accelerate your software development with Docker
Accelerate your software development with DockerAccelerate your software development with Docker
Accelerate your software development with DockerAndrey Hristov
 
.docker : How to deploy Digital Experience in a container, drinking a cup of ...
.docker : How to deploy Digital Experience in a container, drinking a cup of ....docker : How to deploy Digital Experience in a container, drinking a cup of ...
.docker : How to deploy Digital Experience in a container, drinking a cup of ...ICON UK EVENTS Limited
 
docker : how to deploy Digital Experience in a container drinking a cup of co...
docker : how to deploy Digital Experience in a container drinking a cup of co...docker : how to deploy Digital Experience in a container drinking a cup of co...
docker : how to deploy Digital Experience in a container drinking a cup of co...Matteo Bisi
 
Containers without docker | DevNation Tech Talk
Containers without docker | DevNation Tech TalkContainers without docker | DevNation Tech Talk
Containers without docker | DevNation Tech TalkRed Hat Developers
 
.docker : how to deploy Digital Experience in a container drinking a cup of c...
.docker : how to deploy Digital Experience in a container drinking a cup of c....docker : how to deploy Digital Experience in a container drinking a cup of c...
.docker : how to deploy Digital Experience in a container drinking a cup of c...Andrea Fontana
 
DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDocker, Inc.
 
Docker London Meetup: Docker Engine Evolution
Docker London Meetup: Docker Engine EvolutionDocker London Meetup: Docker Engine Evolution
Docker London Meetup: Docker Engine EvolutionPhil Estes
 
DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline  DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline Docker, Inc.
 
Docker on Power Systems
Docker on Power SystemsDocker on Power Systems
Docker on Power SystemsCesar Maciel
 
Docker primer and tips
Docker primer and tipsDocker primer and tips
Docker primer and tipsSamuel Chow
 

Similar to Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies (20)

Why Users Are Moving on from Docker and Leaving Its Security Risks Behind (Sp...
Why Users Are Moving on from Docker and Leaving Its Security Risks Behind (Sp...Why Users Are Moving on from Docker and Leaving Its Security Risks Behind (Sp...
Why Users Are Moving on from Docker and Leaving Its Security Risks Behind (Sp...
 
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, ...
 
Developer workflow with docker
Developer workflow with dockerDeveloper workflow with docker
Developer workflow with docker
 
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
 
OpenShift Commons - Adopting Podman, Skopeo and Buildah for Building and Mana...
OpenShift Commons - Adopting Podman, Skopeo and Buildah for Building and Mana...OpenShift Commons - Adopting Podman, Skopeo and Buildah for Building and Mana...
OpenShift Commons - Adopting Podman, Skopeo and Buildah for Building and Mana...
 
Docker Timisoara: Dockercon19 recap slides, 23 may 2019
Docker Timisoara: Dockercon19 recap slides, 23 may 2019Docker Timisoara: Dockercon19 recap slides, 23 may 2019
Docker Timisoara: Dockercon19 recap slides, 23 may 2019
 
Accelerate your development with Docker
Accelerate your development with DockerAccelerate your development with Docker
Accelerate your development with Docker
 
Accelerate your software development with Docker
Accelerate your software development with DockerAccelerate your software development with Docker
Accelerate your software development with Docker
 
.docker : How to deploy Digital Experience in a container, drinking a cup of ...
.docker : How to deploy Digital Experience in a container, drinking a cup of ....docker : How to deploy Digital Experience in a container, drinking a cup of ...
.docker : How to deploy Digital Experience in a container, drinking a cup of ...
 
docker : how to deploy Digital Experience in a container drinking a cup of co...
docker : how to deploy Digital Experience in a container drinking a cup of co...docker : how to deploy Digital Experience in a container drinking a cup of co...
docker : how to deploy Digital Experience in a container drinking a cup of co...
 
Containers without docker | DevNation Tech Talk
Containers without docker | DevNation Tech TalkContainers without docker | DevNation Tech Talk
Containers without docker | DevNation Tech Talk
 
.docker : how to deploy Digital Experience in a container drinking a cup of c...
.docker : how to deploy Digital Experience in a container drinking a cup of c....docker : how to deploy Digital Experience in a container drinking a cup of c...
.docker : how to deploy Digital Experience in a container drinking a cup of c...
 
Docker for dev
Docker for devDocker for dev
Docker for dev
 
Run automated tests in Docker
Run automated tests in DockerRun automated tests in Docker
Run automated tests in Docker
 
DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development Pipeline
 
Docker London Meetup: Docker Engine Evolution
Docker London Meetup: Docker Engine EvolutionDocker London Meetup: Docker Engine Evolution
Docker London Meetup: Docker Engine Evolution
 
DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline  DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline
 
Docker on Power Systems
Docker on Power SystemsDocker on Power Systems
Docker on Power Systems
 
Docker handons-workshop-for-charity
Docker handons-workshop-for-charityDocker handons-workshop-for-charity
Docker handons-workshop-for-charity
 
Docker primer and tips
Docker primer and tipsDocker primer and tips
Docker primer and tips
 

More from Daniel Oh

[DevConf.US 2019]Quarkus Brings Serverless to Java Developers
[DevConf.US 2019]Quarkus Brings Serverless to Java Developers[DevConf.US 2019]Quarkus Brings Serverless to Java Developers
[DevConf.US 2019]Quarkus Brings Serverless to Java DevelopersDaniel Oh
 
Quarkus on Knative at Red Hat Summit 2019
Quarkus on Knative at Red Hat Summit 2019Quarkus on Knative at Red Hat Summit 2019
Quarkus on Knative at Red Hat Summit 2019Daniel Oh
 
Knative makes Developers Incredible on Serverless
Knative makes Developers Incredible on ServerlessKnative makes Developers Incredible on Serverless
Knative makes Developers Incredible on ServerlessDaniel Oh
 
Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...
Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...
Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...Daniel Oh
 
[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise Applications[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise ApplicationsDaniel Oh
 
[muCon2017]DevSecOps: How to Continuously Integrate Security into DevOps
[muCon2017]DevSecOps: How to Continuously Integrate Security into DevOps[muCon2017]DevSecOps: How to Continuously Integrate Security into DevOps
[muCon2017]DevSecOps: How to Continuously Integrate Security into DevOpsDaniel Oh
 
[OSSummitEU2017]Ten Llayers of Linux Container Security
[OSSummitEU2017]Ten Llayers of Linux Container Security[OSSummitEU2017]Ten Llayers of Linux Container Security
[OSSummitEU2017]Ten Llayers of Linux Container SecurityDaniel Oh
 
Transform Digital Business with DevOps
Transform Digital Business with DevOpsTransform Digital Business with DevOps
Transform Digital Business with DevOpsDaniel Oh
 
Automate App Container Delivery with CI/CD and DevOps
Automate App Container Delivery with CI/CD and DevOpsAutomate App Container Delivery with CI/CD and DevOps
Automate App Container Delivery with CI/CD and DevOpsDaniel Oh
 
Red Hhat Summit 2017 : Love Containers, Love Devops, Love Openshift, Where's ...
Red Hhat Summit 2017 : Love Containers, Love Devops, Love Openshift, Where's ...Red Hhat Summit 2017 : Love Containers, Love Devops, Love Openshift, Where's ...
Red Hhat Summit 2017 : Love Containers, Love Devops, Love Openshift, Where's ...Daniel Oh
 
ApacheCon Europe 2016 : CONTAINERS IN ACTION - Transform Application Delivery...
ApacheCon Europe 2016 : CONTAINERS IN ACTION - Transform Application Delivery...ApacheCon Europe 2016 : CONTAINERS IN ACTION - Transform Application Delivery...
ApacheCon Europe 2016 : CONTAINERS IN ACTION - Transform Application Delivery...Daniel Oh
 

More from Daniel Oh (11)

[DevConf.US 2019]Quarkus Brings Serverless to Java Developers
[DevConf.US 2019]Quarkus Brings Serverless to Java Developers[DevConf.US 2019]Quarkus Brings Serverless to Java Developers
[DevConf.US 2019]Quarkus Brings Serverless to Java Developers
 
Quarkus on Knative at Red Hat Summit 2019
Quarkus on Knative at Red Hat Summit 2019Quarkus on Knative at Red Hat Summit 2019
Quarkus on Knative at Red Hat Summit 2019
 
Knative makes Developers Incredible on Serverless
Knative makes Developers Incredible on ServerlessKnative makes Developers Incredible on Serverless
Knative makes Developers Incredible on Serverless
 
Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...
Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...
Microservice 4.0 Journey - From Spring NetFlix OSS to Istio Service Mesh and ...
 
[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise Applications[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise Applications
 
[muCon2017]DevSecOps: How to Continuously Integrate Security into DevOps
[muCon2017]DevSecOps: How to Continuously Integrate Security into DevOps[muCon2017]DevSecOps: How to Continuously Integrate Security into DevOps
[muCon2017]DevSecOps: How to Continuously Integrate Security into DevOps
 
[OSSummitEU2017]Ten Llayers of Linux Container Security
[OSSummitEU2017]Ten Llayers of Linux Container Security[OSSummitEU2017]Ten Llayers of Linux Container Security
[OSSummitEU2017]Ten Llayers of Linux Container Security
 
Transform Digital Business with DevOps
Transform Digital Business with DevOpsTransform Digital Business with DevOps
Transform Digital Business with DevOps
 
Automate App Container Delivery with CI/CD and DevOps
Automate App Container Delivery with CI/CD and DevOpsAutomate App Container Delivery with CI/CD and DevOps
Automate App Container Delivery with CI/CD and DevOps
 
Red Hhat Summit 2017 : Love Containers, Love Devops, Love Openshift, Where's ...
Red Hhat Summit 2017 : Love Containers, Love Devops, Love Openshift, Where's ...Red Hhat Summit 2017 : Love Containers, Love Devops, Love Openshift, Where's ...
Red Hhat Summit 2017 : Love Containers, Love Devops, Love Openshift, Where's ...
 
ApacheCon Europe 2016 : CONTAINERS IN ACTION - Transform Application Delivery...
ApacheCon Europe 2016 : CONTAINERS IN ACTION - Transform Application Delivery...ApacheCon Europe 2016 : CONTAINERS IN ACTION - Transform Application Delivery...
ApacheCon Europe 2016 : CONTAINERS IN ACTION - Transform Application Delivery...
 

Recently uploaded

Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 

Recently uploaded (20)

Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 

Podman, Buildah, and Quarkus - The Latest in Linux Containers Technologies

  • 1. The Latest in Linux Containers Technology Podman, Buildah and Quarkus Daniel Oh Open Source Summit Japan 2019 1
  • 2. About Me danieloh30 Daniel Oh @danieloh30doh@redhat.com ● Principal Technical Product Marketing Manager at Red Hat ○ Cloud Native App Development ○ Agile & DevOps practices ● CNCF Ambassador ● Java Developer ● Opensource.com Moderator ● Public Speaker & Writer
  • 3. Container tools landscape is changing. Why? INTRODUCTION 3 Since Open Container Initiative (OCI) there are several new projects What needs do these projects address? What are these projects and when should I use them? What specific security concern does each address? @danieloh30
  • 4. Early concerns with Docker INTRODUCTION 4 Since the early days enterprise users of Docker had concerns ● Build requires a “big fat” daemon on every host ● Regression for integration with container platforms Kubernetes/OpenShift ● Build has secret handling issues ● Root/privileged concerns at runtime ● Root/privileged concerns with daemon ● Build requires a running container @danieloh30
  • 5. INTRODUCTION 5 ● Docker, Red Hat et al. June 2015 ● Two specifications ○ Image format ■ How to package an OCI Image with sufficient information to launch the application on the target platform ○ Runtime ■ How to launch a “filesystem bundle” that is unpacked on disk ● Version 1.0 of each released July 19th 2017 ● Distribution spec started in April, 2018. @danieloh30
  • 7. CONTAINERS ARE LINUX 7 LXC Initial release Aug ‘08 OpenShift online May ‘11 Container innovation continues …. Docker initial Mar ‘13 OpenShift Enterprise 3.0 Jun ‘15 OCI CNCF Initial release, Buildah Jun ‘17 Moby Apr ‘17 Sep ‘17 Kubernetes Mid ‘14 Buildah 1.0 Podman New logo May ‘18 buildah.io podman.io Sep ‘18 Buildah Skopeo Podman RHEL May ‘19 Nov ‘15 Mar ‘16 @danieloh30
  • 8. CONTAINERS ARE LINUX How did Docker change containers? Docker Daemon Image Layers Docker CLI Docker daemon image container registry Base Distro Image App. Package Dependencies App. Package Dependencies Application CLI kernel 8 @danieloh30
  • 10. SKOPEO IMAGE COPY WITH SKOPEO ● Built for interfacing with Docker registry ● CLI for images and image registries ● Rejected by upstream Docker ¯_(ツ)_/¯ ● Allows remote inspection of image metadata - no downloading ● Can copy from one storage to another SKOPEO Image Repository Image Registry Host /var/lib/containers or /var/lib/docker SECURITY FEATURES Share securely No daemon Inspect remote images No pulling potentially malicious images Non-root copy. Bridge between registries. 10 @danieloh30
  • 12. PODMAN The new container CLI ● @ podman.io ● Client only tool, based on the Docker CLI. (same+) ● No daemon! ● Storage for ○ Images - containers/image ○ Containers - containers/storage ● Runtime - runc ● Shares state with CRI-O and with Buildah! PODMAN Images Image Registry Containers Kernel SECURITY FEATURES Run and develop securely No daemon Run without root Isolate with user namespaces Audit who runs what 12 @danieloh30
  • 13. PODMAN Developer’s experience ● Provides a familiar command line experience compatible with the Docker CLI ● Great for running, building, and sharing containers outside of Kubernetes/OpenShift ● Build and run containers as non-root (enhanced user namespaces) ● Can be wired into existing infrastructure where the docker daemon/cli are used today ● Use existing Dockerfiles ● Simple command line interface, no client-server architecture ● Docker compatible health checks @danieloh30
  • 15. PODMAN But there’s more : podman pod Pods are a group of one or more containers sharing the same network, pid and ipc namespaces. create Create a new empty pod exists Check if a pod exists in local storage inspect Displays a pod configuration kill Send the specified signal or SIGKILL to containers in pod pause Pause one or more pods ps List pods restart Restart one or more pods rm Remove one or more pods start Start one or more pods stats Display a live stream of resource usage statistics for the containers in one or more pods stop Stop one or more pods top Display the running processes of containers in a pod unpause Unpause one or more pods @danieloh30
  • 17. BUILDAH 17 Source Repo Image Repo Build Test Review/ Appr Deliver Deploy 3rd Party $ podman build $ docker build Developer Workstation/Laptop Container Platform DataCenter OCI Compliant CI/CD LIFECYCLE git The separation of concerns @danieloh30
  • 18. BUILDAH 18 Why use Buildah? ● Now buildah.io ● Builds OCI compliant images ● No daemon - no “docker socket” ● Does not require a running container ● Can use the host’s user’s secrets. ● Single layer, from scratch images are made easy and it ensures limited manifest. ● If needed you can still maintain Dockerfile based workflow Base RHEL OS Update Layer Java Runtime Layer Application Layer Java runtime and dependencies, and Application From scratch, single layer From base, multi-layer SECURITY FEATURES Build securely No daemon Shrink the attack surface Fine-grained control of the layers Run builds isolated Better secret management @danieloh30
  • 20. What does Buildah do? BUILDAH 20 buildah from - Build up a container root filesystem from an image or scratch. buildah config - Adjust defaults in the image’s configuration blob. buildah run - Run a command in the container’s filesystem using runc. NOT like docker run. Like Dockerfile RUN. buildah mount - Mount the container’s root filesystem on the host. buildah commit - Commit container’s changes to a new image. @danieloh30
  • 21. What does Buildah do? BUILDAH 21 buildah push - Push images to registries (Quay etc.) or a local dockerd instance buildah build-using-dockerfile (a.k.a. buildah bud) - Build images using a Dockerfile for instructions buildah unmount - Oh, it also unmounts container filesystems Provide a library API that’s used by the CLI Share libraries and on-disk storage with CRI-O @danieloh30
  • 23. CRI-O OCI AND CRI-O ● A Kubernetes thing ● Now part of CNCF! (April 8th) ● OCI daemon ● Implements Kubelet Container Runtime Interface (CRI) CRI-O Container Host Container Container Container Kubernetes READONLY SECURITY FEATURES Run securely in a production cluster No daemon Read-only containers Enable fewer capabilities User namespaces FIPS mode support 23 @danieloh30
  • 24. 24 WHEREDOIGOFROMHERE? Which app will be the best for the Linux Containers?
  • 25. @danieloh30 @QuarkusIO Supersonic Subatomic Java A Kubernetes Native Java stack tailored for GraalVM & OpenJDK HotSpot, crafted from the best of breed Java libraries and standards
  • 27. @danieloh30 @QuarkusIO A stack to write Java apps Cloud Native, Microservices, Serverless
  • 29. @danieloh30 @QuarkusIO A cohesive platform for optimized developer joy: ● Based on standards, but not limited ● Unified configuration ● Zero config, live reload in the blink of an eye ● Streamlined code for the 80% common usages, flexible for the 20% ● No hassle native executable generation Benefit No. 1: Developer Joy
  • 30. @danieloh30 @QuarkusIO Benefit No. 2: Supersonic Subatomic Java Memory (RSS) in Megabytes Quarkus + GraalVM 13 MB Quarkus + OpenJDK 74 MB Traditional Cloud-Native Stack 74 MB REST
  • 31. @danieloh30 @QuarkusIO Benefit No. 2: Supersonic Subatomic Java Memory (RSS) in Megabytes REST + CRUD Quarkus + GraalVM 35 MB Quarkus + OpenJDK 130 MB Traditional Cloud-Native Stack 218 MB
  • 32. @danieloh30 @QuarkusIO Benefit No. 2: Supersonic Subatomic Java Boot + First Response Time (in seconds) Quarkus + GraalVM 0.014 Seconds REST REST + CRUD Quarkus + OpenJDK 0.75 Seconds Quarkus + GraalVM 0.055 Seconds Quarkus + OpenJDK 2.5 Seconds Traditional Cloud-Native Stack 9.5 Seconds Traditional Cloud-Native Stack 4.3 Seconds
  • 33. @danieloh30 @QuarkusIO Benefit No. 3: Unifies Imperative and Reactive ● Combine both Reactive and imperative development in the same application ● Inject the EventBus or the Vertx context ● Use the technology that fits your use-case @Inject SayService say; @GET @Produces(MediaType.TEXT_PLAIN) public String hello() { return say.hello(); } @Inject @Stream(”kafka”) Publisher<String> reactiveSay; @GET @Produces(MediaType.SERVER_SENT_EVENTS) public Publisher<String> stream() { return reactiveSay; }
  • 34. @danieloh30 @QuarkusIO Benefit No. 4: Best of Breed Frameworks & Standards Eclipse Vert.x Hibernate RESTEasy Apache Camel Eclipse MicroProfile Netty Kubernetes OpenShift Jaeger Prometheus Apache Kafka Infinispan
  • 35. 35 WHEREDOIGOFROMHERE? Where do I find these projects in Red Hat products?
  • 36. WHERE CAN I FIND THESE AWESOME PROJECTS IN RED HAT PRODUCTS? WHERE? RED HAT PRODUCTS 36 SECURING THE PLATFORMS Red Hat chose to move away from Docker to Podman, Buildah and CRI-O in order to provide a more secure environment for containers on both OpenShift Container Platform and RHEL SMART LIGHT CONTAINERS TOOL The container-tools package installs Podman, Buildah and Skopeo together. Users can use these in root or user namespace. CONTINUOUS BUILDING, SECURE RUNTIME Red Hat OCP has been using Skopeo for efficiency for a number of years. OCP 4 moves to using Buildah by default for building container images. CRI-O is the default container runtime. Use Podman for helping to debug pods and containers. @danieloh30
  • 38. OPEN SOURCE WINS ● Why do we have to pull down a container just to inspect it? ● Could we decouple kubernetes from the container runtime? ● Is it possible to build containers on a cluster without having to install and run a daemon? ● How will we design, use, debug containers on the cluster if we don’t have client tools because we don’t have Docker? 38 @danieloh30
  • 39. OPEN SOURCE WINS Getting Started ● Download Podman today ○ Package name podman ● It won’t clash with your existing Docker ● If you feel more adventurous download Buildah too ○ Package name buildah ● Or all with : container-tools ● Lots of demos and tutorials are available ● Contribute to the projects! (Next page) 39 @danieloh30
  • 40. CONFIDENTIAL Designator Where can I learn more? Where to find more information 40 Buildah https://github.com/containers/buildah https://buildah.io/ Podman https://github.com/containers/libpod https://podman.io/ Skopeo https://github.com/containers/skopeo Other useful links https://github.com/opencontainers/runc https://developers.redhat.com/blog/2019/02/21/podman-and-buildah-for-docker-users https://www.katacoda.com/courses/containers-without-docker @danieloh30
  • 42. linkedin.com/company/red-hat youtube.com/user/RedHatVideos facebook.com/redhatinc twitter.com/RedHat linkedin.com/in/williamhenry twitter.com/ipbabble 42 Red Hat is the world’s leading provider of enterprise open source software solutions. Award-winning support, training, and consulting services make Red Hat a trusted adviser to the Fortune 500. Thank you THANKYOU