SlideShare a Scribd company logo
1 of 40
Download to read offline
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

How to Modernize Virtualized Workloads
How to Modernize Virtualized Workloads  How to Modernize Virtualized Workloads
How to Modernize Virtualized Workloads
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

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

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
 
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.
 
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 | 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
 
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
 
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

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

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
UXDXConf
 

Recently uploaded (20)

Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & Ireland
 

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