SlideShare a Scribd company logo
Future of Microservices
Jakub Hadvig
OpenShift Engineering
Microservice ?
Microservice
● Software architecture
● Application composed from processes
○ small and independent
○ single purpose
○ replaceable
○ isolated
Microservice
● Software architecture
● Application composed from
processes
○ small independent processes
○ single purpose
○ replaceable
○ isolated
Linux Containers (LXC)
● Virtualization on a operating-system level
● Single Linux host = multiple isolated Linux system
● Containers run with host kernel (fast)
● Microservices = Containers
Microservices redefine the “App”
● Networked components wired together
○ Not just a “web frontend” anymore
○ HTTP frontends are just one type of component
○ Make it easy to build, manage, deploy components (tools)
● Critical: relationships between components
○ If you can’t abstract the connection between components you
can’t evolve them independently
Docker
github.com/docker/docker
Docker
● Containerization engine for building images
● Go
● Core functions
○ docker build = Docker images
○ docker run = Docker containers
● Dockerfile
○ DSL
○ 16 instructions
Dockerfile
!!! Remember “CMD” Instruction !!!
Docker images
● Immutable (read-only)
● Sharable
● 80k public Docker images (DockerHub)
● Building blocks
○ Image based deployment
○ Create once, use everywhere (Dev, QA, Prod)
Docker containers
● State-less
● Transient
● Cattle, no pets
Docker
● What do we want?
○ Full access to the existing Docker ecosystem
○ Be able to consume images from anywhere
○ Work with upstream to improve security and reliability
○ Need tools to manage the build process and security updates
● What do we expect?
○ Manage 1M+ of running containers
○ Manage containers across multiple nodes
Kubernetes
github.com/GoogleCloudPlatform/kubernetes
Kubernetes
● Container cluster manager
● Manage containerized applications across a
cluster of Nodes
○ Running containers at scale
○ Provide runtime and operational tools for containers
○ Provide resource management
● Google, Red Hat, CoreOS and others…
● Go
Kubernetes architecture (basics)
● Master(s)
○ (REST) API server
○ Scheduler for allocation of “containers” onto hosts
○ Manages replications and watches the system for changes
● Node(s)
○ Agent that relays informations between Node and Master
○ Manages containers (using Docker)
○ Proxy for local service routing and load-balancing
Kubernetes architecture
● Etcd
○ Simple config key-value store distributed across hosts
○ Highly reliable
○ Used for service discovery
○ Simple (CURL ball) & Secure (SSL)
○ Provide high-performance operations
Kubernetes work units
● Pod
○ Represents group of containers closely related together
○ 1..N containers
Pods
Kubernetes work units
● Service
○ Abstract set of Pods as a single IP and 1..N ports
○ Provides environment variable in other Pods and simple
TCP/UDP load balancing
Services
Kubernetes work units (cont..)
● Replication Controllers
○ Framework for Pods that are meant to be horizontally scaled
○ Maintain number of replicas for given Pod
○ Replicas are distributed across cluster
● Label(s)
○ Common field in all Kubernetes resources
○ Represents a 'tags' you can use to couple the work units
together
Kubernetes work units (cont..)
● Route
○ Exposed service, reachable from outside
So what is an new "Application"?
Pods linked together by Services:
● Edge router for www.myapp.com -> Rails frontend Pods
● Rails frontend Pods -> "backend" API Service
● "backend" API Service -> Python Pods
● Python Pods -> "postgresql" database Service
● "postgresql" Service -> PostgreSQL Pod with network
attached storage
OpenShift v3
github.com/openshift/origin
OpenShift v3
● Use Docker to containerize applications
● Use Kubernetes to manage them
○ Allow for Service-oriented-Architecture (Mircoservices !!!)
● Go
Composition
● Kubernetes is embeddable
● Kubernetes offers us infrastructure
● OpenShift embeds it and add PaaS pieces:
○ Builds
○ ImageStreams
○ Deployments
○ Templates
○ ... others...
Build
● Allows to build “stuff”
○ S2I, Docker, or Custom build
● Kubernetes schedule and execute the build inside Docker
container
● Triggers
○ webhooks
○ image change
○ config change
● Built image are pushed into a single ImageStream.
ImageStream
● Build upon Docker Registry
● Abstraction for lack of functionality
○ base image
○ notify changes
○ track history
Deployment
● Define the lifecycle for a single image
○ What happen when an update is pushed to Docker image?
○ What happen when application configuration is updated?
○ What happen when updated application configuration fail to
deploy?
Templates
● For consumption by end users of standard
patterns
● Describes the whole application topology
S2I (Source to Image)
● Don’t make developers write Dockerfile
● Providing builder images is operational responsibility
● Developers wants simple flows (From GIT repo to Docker image)
○ Push changes to Git
○ Get all dependencies installed (bundler, npm, pip, maven, etc..)
○ Commit Docker image
○ Deploy
S2I (Source to Image)
● Build process fundamental elements
○ source
○ builder image
○ s2i scripts
■ assamble
■ run
● Current s2i builder images:
○ ruby, php, python, nodejs, perl, jboss
● Incremental builds (kinda)
Source code
● Consuming external source repos (no hosting)
○ github && generic webhooks
● Support different SCM (bzr, mercurial, SVN, CVS, ...)
OpenShift and Images
● Need tools for Docker image management
○ Think about millions of Docker containers
○ Need good quota story - OpenShift v3 Online
○ Pruning - remove old stuff
○ Content tracking and auditing
● Security
Documentation, links, repos
● OpenShift 3 Technical Architecture
○ Much deeper dive into the architecture
● OpenShift 3 System Design (PEP)
● Kubernetes Repo
○ https://github.com/GoogleCloudPlatform/kubernetes
● OpenShift Repo
○ https://github.com/openshift/origin
● Sample App+Guide
○ https://github.com/openshift/origin/tree/master/examples/sample-app
● OpenShift Blog Series
○ https://blog.openshift.com/author/benparees/
● Source-To-Image project
○ https://github.com/openshift/source-to-image
Thanks! Questions?

More Related Content

What's hot

PaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer Demand
PaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer DemandPaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer Demand
PaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer Demand
Cisco IT
 
Migrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 months
Migrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 monthsMigrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 months
Migrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 months
Konveyor Community
 
Openshift/Kubernetes integration with Apache YARN
Openshift/Kubernetes integration with Apache YARNOpenshift/Kubernetes integration with Apache YARN
Openshift/Kubernetes integration with Apache YARN
verbal1714
 
Migrating from oracle soa suite to microservices on kubernetes
Migrating from oracle soa suite to microservices on kubernetesMigrating from oracle soa suite to microservices on kubernetes
Migrating from oracle soa suite to microservices on kubernetes
Konveyor Community
 
Automate The Creation/Transformation of Infrastructure as Code Artifacts with...
Automate The Creation/Transformation of Infrastructure as Code Artifacts with...Automate The Creation/Transformation of Infrastructure as Code Artifacts with...
Automate The Creation/Transformation of Infrastructure as Code Artifacts with...
Konveyor Community
 
OpenShift In a Nutshell - Episode 02 - Architecture
OpenShift In a Nutshell - Episode 02 - ArchitectureOpenShift In a Nutshell - Episode 02 - Architecture
OpenShift In a Nutshell - Episode 02 - Architecture
Behnam Loghmani
 
Multi-container Applications on OpenShift with the Ansible Service Broker Mul...
Multi-container Applications on OpenShift with the Ansible Service Broker Mul...Multi-container Applications on OpenShift with the Ansible Service Broker Mul...
Multi-container Applications on OpenShift with the Ansible Service Broker Mul...
Amazon Web Services
 
OpenShift Application Development | DO288 | Red Hat OpenShift
OpenShift Application Development | DO288 | Red Hat OpenShiftOpenShift Application Development | DO288 | Red Hat OpenShift
OpenShift Application Development | DO288 | Red Hat OpenShift
Global Knowledge Technologies
 
Introduction to OpenShift Origin- Private, Public and Community
Introduction to OpenShift Origin- Private, Public and CommunityIntroduction to OpenShift Origin- Private, Public and Community
Introduction to OpenShift Origin- Private, Public and Community
OpenShift Origin
 
How to Modernize Virtualized Workloads
How to Modernize Virtualized Workloads  How to Modernize Virtualized Workloads
How to Modernize Virtualized Workloads
Konveyor Community
 
Open shift 4 infra deep dive
Open shift 4    infra deep diveOpen shift 4    infra deep dive
Open shift 4 infra deep dive
Winton Winton
 
12 FACTOR APP WITH DOCKER
12 FACTOR APP WITH DOCKER12 FACTOR APP WITH DOCKER
12 FACTOR APP WITH DOCKER
TREEPTIK
 
Automate Workflows With The Open-source Cloud-native Tool Boomerang Flow
Automate Workflows With The Open-source Cloud-native Tool Boomerang FlowAutomate Workflows With The Open-source Cloud-native Tool Boomerang Flow
Automate Workflows With The Open-source Cloud-native Tool Boomerang Flow
Konveyor Community
 
Maintaining an up to date application stack (in a containerized world)
Maintaining an up to date application stack (in a containerized world)Maintaining an up to date application stack (in a containerized world)
Maintaining an up to date application stack (in a containerized world)
Christoph Görn
 
App Mod 02: A developer intro to open shift
App Mod 02: A developer intro to open shiftApp Mod 02: A developer intro to open shift
App Mod 02: A developer intro to open shift
Judy Breedlove
 
Docker in Production, die Mobiliar
Docker in Production, die MobiliarDocker in Production, die Mobiliar
Docker in Production, die Mobiliar
Philipp Grossenbacher
 
Mass Migrate Virtual Machines to Kubevirt with Tool Forklift 2.0
Mass Migrate Virtual Machines to Kubevirt with Tool Forklift 2.0Mass Migrate Virtual Machines to Kubevirt with Tool Forklift 2.0
Mass Migrate Virtual Machines to Kubevirt with Tool Forklift 2.0
Konveyor Community
 
Spring Boot on Kubernetes/OpenShift
Spring Boot on Kubernetes/OpenShiftSpring Boot on Kubernetes/OpenShift
Spring Boot on Kubernetes/OpenShift
Kamesh Sampath
 
Cloud Economics - Crayon Optimization Services
Cloud Economics - Crayon Optimization ServicesCloud Economics - Crayon Optimization Services
Cloud Economics - Crayon Optimization Services
Anfernee Bonds
 
Rehosting apps between k8s clusters and automating deployment using crane
Rehosting apps between k8s clusters and automating deployment using craneRehosting apps between k8s clusters and automating deployment using crane
Rehosting apps between k8s clusters and automating deployment using crane
Konveyor Community
 

What's hot (20)

PaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer Demand
PaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer DemandPaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer Demand
PaaS Lessons: Cisco IT Deploys OpenShift to Meet Developer Demand
 
Migrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 months
Migrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 monthsMigrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 months
Migrating a Large Fortune 100 Healthcare Company to Kubernetes in 7 months
 
Openshift/Kubernetes integration with Apache YARN
Openshift/Kubernetes integration with Apache YARNOpenshift/Kubernetes integration with Apache YARN
Openshift/Kubernetes integration with Apache YARN
 
Migrating from oracle soa suite to microservices on kubernetes
Migrating from oracle soa suite to microservices on kubernetesMigrating from oracle soa suite to microservices on kubernetes
Migrating from oracle soa suite to microservices on kubernetes
 
Automate The Creation/Transformation of Infrastructure as Code Artifacts with...
Automate The Creation/Transformation of Infrastructure as Code Artifacts with...Automate The Creation/Transformation of Infrastructure as Code Artifacts with...
Automate The Creation/Transformation of Infrastructure as Code Artifacts with...
 
OpenShift In a Nutshell - Episode 02 - Architecture
OpenShift In a Nutshell - Episode 02 - ArchitectureOpenShift In a Nutshell - Episode 02 - Architecture
OpenShift In a Nutshell - Episode 02 - Architecture
 
Multi-container Applications on OpenShift with the Ansible Service Broker Mul...
Multi-container Applications on OpenShift with the Ansible Service Broker Mul...Multi-container Applications on OpenShift with the Ansible Service Broker Mul...
Multi-container Applications on OpenShift with the Ansible Service Broker Mul...
 
OpenShift Application Development | DO288 | Red Hat OpenShift
OpenShift Application Development | DO288 | Red Hat OpenShiftOpenShift Application Development | DO288 | Red Hat OpenShift
OpenShift Application Development | DO288 | Red Hat OpenShift
 
Introduction to OpenShift Origin- Private, Public and Community
Introduction to OpenShift Origin- Private, Public and CommunityIntroduction to OpenShift Origin- Private, Public and Community
Introduction to OpenShift Origin- Private, Public and Community
 
How to Modernize Virtualized Workloads
How to Modernize Virtualized Workloads  How to Modernize Virtualized Workloads
How to Modernize Virtualized Workloads
 
Open shift 4 infra deep dive
Open shift 4    infra deep diveOpen shift 4    infra deep dive
Open shift 4 infra deep dive
 
12 FACTOR APP WITH DOCKER
12 FACTOR APP WITH DOCKER12 FACTOR APP WITH DOCKER
12 FACTOR APP WITH DOCKER
 
Automate Workflows With The Open-source Cloud-native Tool Boomerang Flow
Automate Workflows With The Open-source Cloud-native Tool Boomerang FlowAutomate Workflows With The Open-source Cloud-native Tool Boomerang Flow
Automate Workflows With The Open-source Cloud-native Tool Boomerang Flow
 
Maintaining an up to date application stack (in a containerized world)
Maintaining an up to date application stack (in a containerized world)Maintaining an up to date application stack (in a containerized world)
Maintaining an up to date application stack (in a containerized world)
 
App Mod 02: A developer intro to open shift
App Mod 02: A developer intro to open shiftApp Mod 02: A developer intro to open shift
App Mod 02: A developer intro to open shift
 
Docker in Production, die Mobiliar
Docker in Production, die MobiliarDocker in Production, die Mobiliar
Docker in Production, die Mobiliar
 
Mass Migrate Virtual Machines to Kubevirt with Tool Forklift 2.0
Mass Migrate Virtual Machines to Kubevirt with Tool Forklift 2.0Mass Migrate Virtual Machines to Kubevirt with Tool Forklift 2.0
Mass Migrate Virtual Machines to Kubevirt with Tool Forklift 2.0
 
Spring Boot on Kubernetes/OpenShift
Spring Boot on Kubernetes/OpenShiftSpring Boot on Kubernetes/OpenShift
Spring Boot on Kubernetes/OpenShift
 
Cloud Economics - Crayon Optimization Services
Cloud Economics - Crayon Optimization ServicesCloud Economics - Crayon Optimization Services
Cloud Economics - Crayon Optimization Services
 
Rehosting apps between k8s clusters and automating deployment using crane
Rehosting apps between k8s clusters and automating deployment using craneRehosting apps between k8s clusters and automating deployment using crane
Rehosting apps between k8s clusters and automating deployment using crane
 

Viewers also liked

Introduction to WildFly Swarm #jjug
Introduction to WildFly Swarm #jjugIntroduction to WildFly Swarm #jjug
Introduction to WildFly Swarm #jjug
Yoshimasa Tanabe
 
From Docker To Kubernetes: A Developer's Guide To Containers - Mandy White - ...
From Docker To Kubernetes: A Developer's Guide To Containers - Mandy White - ...From Docker To Kubernetes: A Developer's Guide To Containers - Mandy White - ...
From Docker To Kubernetes: A Developer's Guide To Containers - Mandy White - ...
Codemotion
 
Why we need container in Software
Why we need container in SoftwareWhy we need container in Software
Why we need container in Software
Thach Nguyen
 
How to Adopt Docker Within Your Enterprise Using IBM UrbanCode Deploy (Interc...
How to Adopt Docker Within Your Enterprise Using IBM UrbanCode Deploy (Interc...How to Adopt Docker Within Your Enterprise Using IBM UrbanCode Deploy (Interc...
How to Adopt Docker Within Your Enterprise Using IBM UrbanCode Deploy (Interc...
Michael Elder
 
Google IO 2008 - Opensocial: Meet The Containers
Google IO 2008 - Opensocial: Meet The ContainersGoogle IO 2008 - Opensocial: Meet The Containers
Google IO 2008 - Opensocial: Meet The Containers
Patrick Chanezon
 
Galera on kubernetes_no_video
Galera on kubernetes_no_videoGalera on kubernetes_no_video
Galera on kubernetes_no_video
Patrick Galbraith
 
Microservices with WildFly Swarm - JavaSI 2016
Microservices with WildFly Swarm - JavaSI 2016Microservices with WildFly Swarm - JavaSI 2016
Microservices with WildFly Swarm - JavaSI 2016
Charles Moulliard
 
Java EE Microservices
Java EE MicroservicesJava EE Microservices
Java EE Microservices
jclingan
 
Writing Java EE microservices using WildFly Swarm
Writing Java EE microservices using WildFly SwarmWriting Java EE microservices using WildFly Swarm
Writing Java EE microservices using WildFly Swarm
Comsysto Reply GmbH
 
Java Is Not Dead - Bob McWhirter
Java Is Not Dead - Bob McWhirterJava Is Not Dead - Bob McWhirter
Java Is Not Dead - Bob McWhirter
Red Hat Developers
 
Docker on AWS OpsWorks
Docker on AWS OpsWorksDocker on AWS OpsWorks
Docker on AWS OpsWorks
Jonathan Weiss
 
Developing microservices with wildfly swarm and deploying on openshift
Developing microservices with wildfly swarm and deploying on openshiftDeveloping microservices with wildfly swarm and deploying on openshift
Developing microservices with wildfly swarm and deploying on openshift
andreas kuncoro
 
Monoliths and Microservices
Monoliths and Microservices Monoliths and Microservices
Monoliths and Microservices
Bozhidar Bozhanov
 
OpenShift As A DevOps Platform
OpenShift As A DevOps PlatformOpenShift As A DevOps Platform
OpenShift As A DevOps Platform
Lalatendu Mohanty
 
What's New in Java 8
What's New in Java 8What's New in Java 8
What's New in Java 8
javafxpert
 
Developing Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containersDeveloping Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containers
Claus Ibsen
 
Lessons Learned from Migrating Legacy Enterprise Applications to Microservices
Lessons Learned from Migrating Legacy Enterprise Applications to MicroservicesLessons Learned from Migrating Legacy Enterprise Applications to Microservices
Lessons Learned from Migrating Legacy Enterprise Applications to Microservices
VMware Tanzu
 
Kubernetes Architecture v1.x
Kubernetes Architecture v1.xKubernetes Architecture v1.x
Kubernetes Architecture v1.x
Yongbok Kim
 
The Journey from Monolith to Microservices: a Guided Adventure
The Journey from Monolith to Microservices: a Guided AdventureThe Journey from Monolith to Microservices: a Guided Adventure
The Journey from Monolith to Microservices: a Guided Adventure
VMware Tanzu
 
Orchestrating Docker Containers with Google Kubernetes on OpenStack
Orchestrating Docker Containers with Google Kubernetes on OpenStackOrchestrating Docker Containers with Google Kubernetes on OpenStack
Orchestrating Docker Containers with Google Kubernetes on OpenStack
Trevor Roberts Jr.
 

Viewers also liked (20)

Introduction to WildFly Swarm #jjug
Introduction to WildFly Swarm #jjugIntroduction to WildFly Swarm #jjug
Introduction to WildFly Swarm #jjug
 
From Docker To Kubernetes: A Developer's Guide To Containers - Mandy White - ...
From Docker To Kubernetes: A Developer's Guide To Containers - Mandy White - ...From Docker To Kubernetes: A Developer's Guide To Containers - Mandy White - ...
From Docker To Kubernetes: A Developer's Guide To Containers - Mandy White - ...
 
Why we need container in Software
Why we need container in SoftwareWhy we need container in Software
Why we need container in Software
 
How to Adopt Docker Within Your Enterprise Using IBM UrbanCode Deploy (Interc...
How to Adopt Docker Within Your Enterprise Using IBM UrbanCode Deploy (Interc...How to Adopt Docker Within Your Enterprise Using IBM UrbanCode Deploy (Interc...
How to Adopt Docker Within Your Enterprise Using IBM UrbanCode Deploy (Interc...
 
Google IO 2008 - Opensocial: Meet The Containers
Google IO 2008 - Opensocial: Meet The ContainersGoogle IO 2008 - Opensocial: Meet The Containers
Google IO 2008 - Opensocial: Meet The Containers
 
Galera on kubernetes_no_video
Galera on kubernetes_no_videoGalera on kubernetes_no_video
Galera on kubernetes_no_video
 
Microservices with WildFly Swarm - JavaSI 2016
Microservices with WildFly Swarm - JavaSI 2016Microservices with WildFly Swarm - JavaSI 2016
Microservices with WildFly Swarm - JavaSI 2016
 
Java EE Microservices
Java EE MicroservicesJava EE Microservices
Java EE Microservices
 
Writing Java EE microservices using WildFly Swarm
Writing Java EE microservices using WildFly SwarmWriting Java EE microservices using WildFly Swarm
Writing Java EE microservices using WildFly Swarm
 
Java Is Not Dead - Bob McWhirter
Java Is Not Dead - Bob McWhirterJava Is Not Dead - Bob McWhirter
Java Is Not Dead - Bob McWhirter
 
Docker on AWS OpsWorks
Docker on AWS OpsWorksDocker on AWS OpsWorks
Docker on AWS OpsWorks
 
Developing microservices with wildfly swarm and deploying on openshift
Developing microservices with wildfly swarm and deploying on openshiftDeveloping microservices with wildfly swarm and deploying on openshift
Developing microservices with wildfly swarm and deploying on openshift
 
Monoliths and Microservices
Monoliths and Microservices Monoliths and Microservices
Monoliths and Microservices
 
OpenShift As A DevOps Platform
OpenShift As A DevOps PlatformOpenShift As A DevOps Platform
OpenShift As A DevOps Platform
 
What's New in Java 8
What's New in Java 8What's New in Java 8
What's New in Java 8
 
Developing Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containersDeveloping Java based microservices ready for the world of containers
Developing Java based microservices ready for the world of containers
 
Lessons Learned from Migrating Legacy Enterprise Applications to Microservices
Lessons Learned from Migrating Legacy Enterprise Applications to MicroservicesLessons Learned from Migrating Legacy Enterprise Applications to Microservices
Lessons Learned from Migrating Legacy Enterprise Applications to Microservices
 
Kubernetes Architecture v1.x
Kubernetes Architecture v1.xKubernetes Architecture v1.x
Kubernetes Architecture v1.x
 
The Journey from Monolith to Microservices: a Guided Adventure
The Journey from Monolith to Microservices: a Guided AdventureThe Journey from Monolith to Microservices: a Guided Adventure
The Journey from Monolith to Microservices: a Guided Adventure
 
Orchestrating Docker Containers with Google Kubernetes on OpenStack
Orchestrating Docker Containers with Google Kubernetes on OpenStackOrchestrating Docker Containers with Google Kubernetes on OpenStack
Orchestrating Docker Containers with Google Kubernetes on OpenStack
 

Similar to Future of Microservices - Jakub Hadvig

OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
NETWAYS
 
OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...
OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...
OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...
NETWAYS
 
WSO2 Kubernetes Reference Architecture - Nov 2017
WSO2 Kubernetes Reference Architecture - Nov 2017WSO2 Kubernetes Reference Architecture - Nov 2017
WSO2 Kubernetes Reference Architecture - Nov 2017
Imesh Gunaratne
 
Docker in production service discovery with consul - road to opscon 2015
Docker in production  service discovery with consul - road to opscon 2015Docker in production  service discovery with consul - road to opscon 2015
Docker in production service discovery with consul - road to opscon 2015
Giovanni Toraldo
 
JOSA TechTalks - Docker in Production
JOSA TechTalks - Docker in ProductionJOSA TechTalks - Docker in Production
JOSA TechTalks - Docker in Production
Jordan Open Source Association
 
Docker Introduction - DevOps Montreal Meetup
Docker Introduction - DevOps Montreal MeetupDocker Introduction - DevOps Montreal Meetup
Docker Introduction - DevOps Montreal Meetup
Colin Surprenant
 
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
 
Netflix Container Scheduling and Execution - QCon New York 2016
Netflix Container Scheduling and Execution - QCon New York 2016Netflix Container Scheduling and Execution - QCon New York 2016
Netflix Container Scheduling and Execution - QCon New York 2016
aspyker
 
Scheduling a fuller house - Talk at QCon NY 2016
Scheduling a fuller house - Talk at QCon NY 2016Scheduling a fuller house - Talk at QCon NY 2016
Scheduling a fuller house - Talk at QCon NY 2016
Sharma Podila
 
containerd and CRI
containerd and CRIcontainerd and CRI
containerd and CRI
Docker, Inc.
 
Quarkus: From developer joy to Kubernetes nirvana! | DevNation Tech Talk
Quarkus: From developer joy to Kubernetes nirvana! | DevNation Tech TalkQuarkus: From developer joy to Kubernetes nirvana! | DevNation Tech Talk
Quarkus: From developer joy to Kubernetes nirvana! | DevNation Tech Talk
Red Hat Developers
 
Docker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and ContainersDocker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and Containers
Yajushi Srivastava
 
Docker up and Running For Web Developers
Docker up and Running For Web DevelopersDocker up and Running For Web Developers
Docker up and Running For Web Developers
BADR
 
Docker Up and Running for Web Developers
Docker Up and Running for Web DevelopersDocker Up and Running for Web Developers
Docker Up and Running for Web Developers
Amr Fawzy
 
Containerization using docker
Containerization using dockerContainerization using docker
Containerization using docker
Vinod Doshi
 
LXC Docker and the Future of Software Delivery
LXC Docker and the Future of Software DeliveryLXC Docker and the Future of Software Delivery
LXC Docker and the Future of Software Delivery
Docker, Inc.
 
LXC, Docker, and the future of software delivery | LinuxCon 2013
LXC, Docker, and the future of software delivery | LinuxCon 2013LXC, Docker, and the future of software delivery | LinuxCon 2013
LXC, Docker, and the future of software delivery | LinuxCon 2013
dotCloud
 
Hello, Docker!
Hello, Docker!Hello, Docker!
Hello, Docker!
Michael Kwesi Essandoh
 
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOpsDevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
Ambassador Labs
 
Who needs containers in a serverless world
Who needs containers in a serverless worldWho needs containers in a serverless world
Who needs containers in a serverless world
Matthias Luebken
 

Similar to Future of Microservices - Jakub Hadvig (20)

OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
 
OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...
OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...
OSDC 2016 | rkt and Kubernetes: What’s new with Container Runtimes and Orches...
 
WSO2 Kubernetes Reference Architecture - Nov 2017
WSO2 Kubernetes Reference Architecture - Nov 2017WSO2 Kubernetes Reference Architecture - Nov 2017
WSO2 Kubernetes Reference Architecture - Nov 2017
 
Docker in production service discovery with consul - road to opscon 2015
Docker in production  service discovery with consul - road to opscon 2015Docker in production  service discovery with consul - road to opscon 2015
Docker in production service discovery with consul - road to opscon 2015
 
JOSA TechTalks - Docker in Production
JOSA TechTalks - Docker in ProductionJOSA TechTalks - Docker in Production
JOSA TechTalks - Docker in Production
 
Docker Introduction - DevOps Montreal Meetup
Docker Introduction - DevOps Montreal MeetupDocker Introduction - DevOps Montreal Meetup
Docker Introduction - DevOps Montreal Meetup
 
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, ...
 
Netflix Container Scheduling and Execution - QCon New York 2016
Netflix Container Scheduling and Execution - QCon New York 2016Netflix Container Scheduling and Execution - QCon New York 2016
Netflix Container Scheduling and Execution - QCon New York 2016
 
Scheduling a fuller house - Talk at QCon NY 2016
Scheduling a fuller house - Talk at QCon NY 2016Scheduling a fuller house - Talk at QCon NY 2016
Scheduling a fuller house - Talk at QCon NY 2016
 
containerd and CRI
containerd and CRIcontainerd and CRI
containerd and CRI
 
Quarkus: From developer joy to Kubernetes nirvana! | DevNation Tech Talk
Quarkus: From developer joy to Kubernetes nirvana! | DevNation Tech TalkQuarkus: From developer joy to Kubernetes nirvana! | DevNation Tech Talk
Quarkus: From developer joy to Kubernetes nirvana! | DevNation Tech Talk
 
Docker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and ContainersDocker 101 : Introduction to Docker and Containers
Docker 101 : Introduction to Docker and Containers
 
Docker up and Running For Web Developers
Docker up and Running For Web DevelopersDocker up and Running For Web Developers
Docker up and Running For Web Developers
 
Docker Up and Running for Web Developers
Docker Up and Running for Web DevelopersDocker Up and Running for Web Developers
Docker Up and Running for Web Developers
 
Containerization using docker
Containerization using dockerContainerization using docker
Containerization using docker
 
LXC Docker and the Future of Software Delivery
LXC Docker and the Future of Software DeliveryLXC Docker and the Future of Software Delivery
LXC Docker and the Future of Software Delivery
 
LXC, Docker, and the future of software delivery | LinuxCon 2013
LXC, Docker, and the future of software delivery | LinuxCon 2013LXC, Docker, and the future of software delivery | LinuxCon 2013
LXC, Docker, and the future of software delivery | LinuxCon 2013
 
Hello, Docker!
Hello, Docker!Hello, Docker!
Hello, Docker!
 
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOpsDevOps Days Boston 2017: Real-world Kubernetes for DevOps
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
 
Who needs containers in a serverless world
Who needs containers in a serverless worldWho needs containers in a serverless world
Who needs containers in a serverless world
 

More from WEBtlak

Jeden prototyp za 1000 meetingov - Andrej Minárik | WEBtlak #8
Jeden prototyp za 1000 meetingov - Andrej Minárik | WEBtlak #8Jeden prototyp za 1000 meetingov - Andrej Minárik | WEBtlak #8
Jeden prototyp za 1000 meetingov - Andrej Minárik | WEBtlak #8
WEBtlak
 
Introduction to DDD - Adam Štipák
Introduction to DDD - Adam ŠtipákIntroduction to DDD - Adam Štipák
Introduction to DDD - Adam Štipák
WEBtlak
 
Hello, Laravel - Tomáš Gustiňák
Hello, Laravel - Tomáš GustiňákHello, Laravel - Tomáš Gustiňák
Hello, Laravel - Tomáš Gustiňák
WEBtlak
 
Clean Code / ako nevariť objektové špagety - Martin Razus
Clean Code / ako nevariť objektové špagety - Martin Razus Clean Code / ako nevariť objektové špagety - Martin Razus
Clean Code / ako nevariť objektové špagety - Martin Razus
WEBtlak
 
HTTP hlavičky - Tomas Adamjak
HTTP hlavičky - Tomas AdamjakHTTP hlavičky - Tomas Adamjak
HTTP hlavičky - Tomas Adamjak
WEBtlak
 
Ako na užívateľské testovanie - Katarína Zalánová | WEBtlak #4
Ako na užívateľské testovanie - Katarína Zalánová | WEBtlak #4Ako na užívateľské testovanie - Katarína Zalánová | WEBtlak #4
Ako na užívateľské testovanie - Katarína Zalánová | WEBtlak #4
WEBtlak
 
Dizajn orientovaný na človeka - Jozef Benko | WEBtlak #4
Dizajn orientovaný na človeka - Jozef Benko | WEBtlak #4Dizajn orientovaný na človeka - Jozef Benko | WEBtlak #4
Dizajn orientovaný na človeka - Jozef Benko | WEBtlak #4
WEBtlak
 
Výtlak 10 ročnej praxe
Výtlak 10 ročnej praxeVýtlak 10 ročnej praxe
Výtlak 10 ročnej praxe
WEBtlak
 
Single Sign On - Michal Vagač
Single Sign On - Michal VagačSingle Sign On - Michal Vagač
Single Sign On - Michal Vagač
WEBtlak
 

More from WEBtlak (9)

Jeden prototyp za 1000 meetingov - Andrej Minárik | WEBtlak #8
Jeden prototyp za 1000 meetingov - Andrej Minárik | WEBtlak #8Jeden prototyp za 1000 meetingov - Andrej Minárik | WEBtlak #8
Jeden prototyp za 1000 meetingov - Andrej Minárik | WEBtlak #8
 
Introduction to DDD - Adam Štipák
Introduction to DDD - Adam ŠtipákIntroduction to DDD - Adam Štipák
Introduction to DDD - Adam Štipák
 
Hello, Laravel - Tomáš Gustiňák
Hello, Laravel - Tomáš GustiňákHello, Laravel - Tomáš Gustiňák
Hello, Laravel - Tomáš Gustiňák
 
Clean Code / ako nevariť objektové špagety - Martin Razus
Clean Code / ako nevariť objektové špagety - Martin Razus Clean Code / ako nevariť objektové špagety - Martin Razus
Clean Code / ako nevariť objektové špagety - Martin Razus
 
HTTP hlavičky - Tomas Adamjak
HTTP hlavičky - Tomas AdamjakHTTP hlavičky - Tomas Adamjak
HTTP hlavičky - Tomas Adamjak
 
Ako na užívateľské testovanie - Katarína Zalánová | WEBtlak #4
Ako na užívateľské testovanie - Katarína Zalánová | WEBtlak #4Ako na užívateľské testovanie - Katarína Zalánová | WEBtlak #4
Ako na užívateľské testovanie - Katarína Zalánová | WEBtlak #4
 
Dizajn orientovaný na človeka - Jozef Benko | WEBtlak #4
Dizajn orientovaný na človeka - Jozef Benko | WEBtlak #4Dizajn orientovaný na človeka - Jozef Benko | WEBtlak #4
Dizajn orientovaný na človeka - Jozef Benko | WEBtlak #4
 
Výtlak 10 ročnej praxe
Výtlak 10 ročnej praxeVýtlak 10 ročnej praxe
Výtlak 10 ročnej praxe
 
Single Sign On - Michal Vagač
Single Sign On - Michal VagačSingle Sign On - Michal Vagač
Single Sign On - Michal Vagač
 

Recently uploaded

Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Zilliz
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 

Recently uploaded (20)

Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 

Future of Microservices - Jakub Hadvig

  • 1. Future of Microservices Jakub Hadvig OpenShift Engineering
  • 3.
  • 4. Microservice ● Software architecture ● Application composed from processes ○ small and independent ○ single purpose ○ replaceable ○ isolated
  • 5. Microservice ● Software architecture ● Application composed from processes ○ small independent processes ○ single purpose ○ replaceable ○ isolated
  • 6. Linux Containers (LXC) ● Virtualization on a operating-system level ● Single Linux host = multiple isolated Linux system ● Containers run with host kernel (fast) ● Microservices = Containers
  • 7. Microservices redefine the “App” ● Networked components wired together ○ Not just a “web frontend” anymore ○ HTTP frontends are just one type of component ○ Make it easy to build, manage, deploy components (tools) ● Critical: relationships between components ○ If you can’t abstract the connection between components you can’t evolve them independently
  • 9. Docker ● Containerization engine for building images ● Go ● Core functions ○ docker build = Docker images ○ docker run = Docker containers ● Dockerfile ○ DSL ○ 16 instructions
  • 11. !!! Remember “CMD” Instruction !!!
  • 12. Docker images ● Immutable (read-only) ● Sharable ● 80k public Docker images (DockerHub) ● Building blocks ○ Image based deployment ○ Create once, use everywhere (Dev, QA, Prod)
  • 13. Docker containers ● State-less ● Transient ● Cattle, no pets
  • 14. Docker ● What do we want? ○ Full access to the existing Docker ecosystem ○ Be able to consume images from anywhere ○ Work with upstream to improve security and reliability ○ Need tools to manage the build process and security updates ● What do we expect? ○ Manage 1M+ of running containers ○ Manage containers across multiple nodes
  • 16. Kubernetes ● Container cluster manager ● Manage containerized applications across a cluster of Nodes ○ Running containers at scale ○ Provide runtime and operational tools for containers ○ Provide resource management ● Google, Red Hat, CoreOS and others… ● Go
  • 17. Kubernetes architecture (basics) ● Master(s) ○ (REST) API server ○ Scheduler for allocation of “containers” onto hosts ○ Manages replications and watches the system for changes ● Node(s) ○ Agent that relays informations between Node and Master ○ Manages containers (using Docker) ○ Proxy for local service routing and load-balancing
  • 18. Kubernetes architecture ● Etcd ○ Simple config key-value store distributed across hosts ○ Highly reliable ○ Used for service discovery ○ Simple (CURL ball) & Secure (SSL) ○ Provide high-performance operations
  • 19. Kubernetes work units ● Pod ○ Represents group of containers closely related together ○ 1..N containers
  • 20. Pods
  • 21. Kubernetes work units ● Service ○ Abstract set of Pods as a single IP and 1..N ports ○ Provides environment variable in other Pods and simple TCP/UDP load balancing
  • 23. Kubernetes work units (cont..) ● Replication Controllers ○ Framework for Pods that are meant to be horizontally scaled ○ Maintain number of replicas for given Pod ○ Replicas are distributed across cluster ● Label(s) ○ Common field in all Kubernetes resources ○ Represents a 'tags' you can use to couple the work units together
  • 24. Kubernetes work units (cont..) ● Route ○ Exposed service, reachable from outside
  • 25. So what is an new "Application"? Pods linked together by Services: ● Edge router for www.myapp.com -> Rails frontend Pods ● Rails frontend Pods -> "backend" API Service ● "backend" API Service -> Python Pods ● Python Pods -> "postgresql" database Service ● "postgresql" Service -> PostgreSQL Pod with network attached storage
  • 27. OpenShift v3 ● Use Docker to containerize applications ● Use Kubernetes to manage them ○ Allow for Service-oriented-Architecture (Mircoservices !!!) ● Go
  • 28. Composition ● Kubernetes is embeddable ● Kubernetes offers us infrastructure ● OpenShift embeds it and add PaaS pieces: ○ Builds ○ ImageStreams ○ Deployments ○ Templates ○ ... others...
  • 29. Build ● Allows to build “stuff” ○ S2I, Docker, or Custom build ● Kubernetes schedule and execute the build inside Docker container ● Triggers ○ webhooks ○ image change ○ config change ● Built image are pushed into a single ImageStream.
  • 30. ImageStream ● Build upon Docker Registry ● Abstraction for lack of functionality ○ base image ○ notify changes ○ track history
  • 31. Deployment ● Define the lifecycle for a single image ○ What happen when an update is pushed to Docker image? ○ What happen when application configuration is updated? ○ What happen when updated application configuration fail to deploy?
  • 32. Templates ● For consumption by end users of standard patterns ● Describes the whole application topology
  • 33. S2I (Source to Image) ● Don’t make developers write Dockerfile ● Providing builder images is operational responsibility ● Developers wants simple flows (From GIT repo to Docker image) ○ Push changes to Git ○ Get all dependencies installed (bundler, npm, pip, maven, etc..) ○ Commit Docker image ○ Deploy
  • 34. S2I (Source to Image) ● Build process fundamental elements ○ source ○ builder image ○ s2i scripts ■ assamble ■ run ● Current s2i builder images: ○ ruby, php, python, nodejs, perl, jboss ● Incremental builds (kinda)
  • 35. Source code ● Consuming external source repos (no hosting) ○ github && generic webhooks ● Support different SCM (bzr, mercurial, SVN, CVS, ...)
  • 36. OpenShift and Images ● Need tools for Docker image management ○ Think about millions of Docker containers ○ Need good quota story - OpenShift v3 Online ○ Pruning - remove old stuff ○ Content tracking and auditing ● Security
  • 37.
  • 38.
  • 39. Documentation, links, repos ● OpenShift 3 Technical Architecture ○ Much deeper dive into the architecture ● OpenShift 3 System Design (PEP) ● Kubernetes Repo ○ https://github.com/GoogleCloudPlatform/kubernetes ● OpenShift Repo ○ https://github.com/openshift/origin ● Sample App+Guide ○ https://github.com/openshift/origin/tree/master/examples/sample-app ● OpenShift Blog Series ○ https://blog.openshift.com/author/benparees/ ● Source-To-Image project ○ https://github.com/openshift/source-to-image