SlideShare una empresa de Scribd logo
1 de 57
CONTINUOUS DELIVERY.
CONTINUOUS DEVOPS.
Professional conference on DevOps practices
6APRIL 2019
KYIV, UKRAINE
th
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINE
Peter Braun | pbraun@redhat.com | Github: pb82
DevOps in the Cluster: a deep dive into
Kubernetes Operators
th
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Agenda
1. What is this talk about?
2. The Situation today
3. What is an Operator?
4. Kubernetes Controllers
5. Operator Tooling
6. Tips for developing Operators
7. Demo
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
What this talk is about:
Kubernetes Applications and how to manage them.
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
So what is a ‘Kubernetes Application’?
A Kubernetes application is an application that is both
deployed on Kubernetes and managed using the
Kubernetes APIs and kubectl tooling.
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
What’s available today?
● Templates
● Helm
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Existing Tools: Templates
● YAML / JSON files
● Kubernetes Resources are purely declarative
● Parameterization is possible
○ Kustomize
○ Openshift Templates
● No concept of dependencies
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Existing Tools: Helm
● The Package Manager for Kubernetes, it can do:
○ Parameterization,
○ Dependency Resolution
○ and even Version Management
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
So what’s missing?
● Templates and Helm help with installation.
● Neither of them allow you to manage the Application.
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
The Solution? Operators!
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Let’s start from zero: what exactly is an Operator?
An Operator is a method of packaging, deploying and
managing a Kubernetes application.
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Let’s start from zero: what exactly is an Operator?
An Operator is a method of packaging, deploying and
managing a Kubernetes application using custom
resources.
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Why is that distinction important?
Operators are Kubernetes Controllers
for Custom Resources.
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Kubernetes Controllers
● Kubernetes resources are backed by Controllers
● The purpose of a Controller is to synchronize
○ the cluster state...
○ ...with the desired state (resource definition).
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
An Example: Deployment Controller
Desired state
Cluster state
Analyze
Update
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Kubernetes Controllers: Detailed Look
Informer (Cache)
List
Watch
ns/name
Add/Update/Delete
Work QueueAPI Server Reconcile
Analyze
Update
Pop
Push back
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Operators are Kubernetes Controllers
for Custom Resources.
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Custom Resources
● Extension to the Kubernetes API
● Created with a Custom Resource Definition
● Let’s you define your own types
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Custom Resources (Example)
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Custom Resources (Commands)
$ kubectl get crds
$ kubectl get <CRD name>
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Operators are Kubernetes Controllers
for Custom Resources.
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Operator Characteristics
● Typically written in Golang
● Standalone applications
● Deployed to a namespace
● Come bundled with their Custom Resource Definitions
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
So how to start developing Operators?
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Operator Tooling
Operator
Framework
CoreOS Operator Framework: https://coreos.com/operators/
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Operator Framework
Operator
SDK
CoreOS Operator Framework: https://coreos.com/operators/
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Operator SDK
● CLI Tool to bootstrap new operators
● SDK to abstract controller facilities
● Testing and build
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Operator SDK Development Workflow
1. Bootstrap new operator
2. Add API
3. Add Controller
4. Code, run locally, repeat
5. Build & Push image
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Operator SDK Development Workflow
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Operator SDK (project structure)
Structs to represent the custom
resource(s) in Golang
Often one controller per custom
resource
YAML resources (CRD, RBAC)
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Adding an API to the Operator
operator-sdk add api --api-version=app.example.com/v1alpha1 --kind=AppService
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Adding a Controller to the Operator
operator-sdk add controller --api-version=app.example.com/v1alpha1 --kind=AppService
● Creates a new controller
● Sets up the Informer
● Adds a Reconcile function
● Ready to implement your Logic
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Controller Implementation: Reconcile Function
● Called when resources change
● Only gets the resource name
● Must figure out what changes to the cluster are required
● Return value can be used to reschedule the resource
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Controller Implementation: Creating Resources
● Operator-SDK provides an API
● Programmatically or by parsing templates
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Cleanup and Garbage Collection
● Operators should allow clean uninstallation
● Finalizers and Owner References can help
● Use both with care
How to handle deprovision / deletion of the CR?
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Finalizers
Finalizer has been set. Resource
won’t be deleted until removed.
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Finalizers
Resource has
Finalizer(s)?
Delete
Resource
No
Set Delete
Timestamp
Reschedule
Yes
Done
Delete
Request
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Owner References
Resource is owned by another
resource.
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Owner References
Sets resource owner to the custom resource that triggered it’s creation
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Tips for developing Operators
1. Be careful when setting the Owner Reference
2. Be careful with Finalizers
3. Allow for deletion in any Operator state
4. Use the Phase Pattern
5. Don’t (over)use the Kubernetes API
6. Never rely on local testing only
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Be careful when setting the Owner Reference
Why?
● Cascaded Deletion is great
● Best case: no delete logic needed in Operator
● There are cases where it’s problematic
Example:
● Backup/Restore
● References an owner that now has a different UID
or is not yet created.
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Tips for developing Operators
1. Always set the Owner Reference
2. Be careful with Finalizers
3. Allow for deletion in any Operator state
4. Use the Phase Pattern
5. Don’t (over)use the Kubernetes API
6. Never rely on local testing only
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Be careful with finalizers
Why?
● Halts deletion
● Can propagate to parent resources (e.g.
namespaces)
Example:
● Uninstall script that removes all namespaces
● Blocked by finalizer in one resource
● Needs to be manually resolved now
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Tips for developing Operators
1. Always set the Owner Reference
2. Be careful with Finalizers
3. Allow for deletion in any Operator state
4. Use the Phase Pattern
5. Don’t (over)use the Kubernetes API
6. Never rely on local testing only
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Allow for deletion in any Operator state
Why?
● Operators can get stuck
● Give users a chance to make them unstuck
Example:
● Operator fails to create a resource (e.g. permissions)
● User requests deprovision
● Operator still in install phase
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Allow for deletion regardless of the Operator Phase
How to fix this?
● No problem without finalizers
● Check the ‘deletionTimestamp’ in every state
● Always service finalizers
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Tips for developing Operators
1. Always set the Owner Reference
2. Be careful with Finalizers
3. Allow for deletion in any Operator state
4. Use the Phase Pattern
5. Don’t (over)use the Kubernetes API
6. Never rely on local testing only
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Use the Phase Pattern
What is it? ● Operators are state machines
● Every task can be seen as a state
● Clear control flow
Install Reconcile
Uninstall
(service finalizers)
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Use the Phase Pattern
Check Phase
Take Action
Update Phase
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Tips for developing Operators
1. Always set the Owner Reference
2. Be careful with Finalizers
3. Allow for deletion in any Operator state
4. Use the Phase Pattern
5. Don’t (over)use the Kubernetes API
6. Never rely on local testing only
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Don’t (over) use the Kubernetes API
Why?
● Bypasses the Cache
● Causes performance issues
Example:
● Operator that use get/list excessively
● Should rely on the Informer instead
● Sometimes inevitable, e.g. resource creation
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Tips for developing Operators
1. Always set the Owner Reference
2. Be careful with Finalizers
3. Allow for deletion in any Operator state
4. Use the Phase Pattern
5. Don’t (over)use the Kubernetes API
6. Never rely on local testing only
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Never rely on local testing only
Why?
● You can test your Operator without deploying it
● Permissions will be different though
Example:
● Operator-sdk’s up local
● Starts the Operator locally without deploying it
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
What else is there?
● Dependency resolution
○ Operators can (and are expected to) deploy other operators
○ An example will be in the Demo
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
What else is there?
A better way to do dependency resolution?
Operator
Lifecycle Manager
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
What else is there?
OperatorHub: https://operatorhub.io/
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth
Demo
(from zero to a monitoring stack)
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINE
Thank you!
th

Más contenido relacionado

La actualidad más candente

Working effectively with OpenShift
Working effectively with OpenShiftWorking effectively with OpenShift
Working effectively with OpenShiftShekhar Gulati
 
Developing Great Apps with Apache Cordova
Developing Great Apps with Apache CordovaDeveloping Great Apps with Apache Cordova
Developing Great Apps with Apache CordovaShekhar Gulati
 
DSAG Jahreskongress 2018 - DevOps and Deployment Pipelines in SAP ABAP Landsc...
DSAG Jahreskongress 2018 - DevOps and Deployment Pipelines in SAP ABAP Landsc...DSAG Jahreskongress 2018 - DevOps and Deployment Pipelines in SAP ABAP Landsc...
DSAG Jahreskongress 2018 - DevOps and Deployment Pipelines in SAP ABAP Landsc...Sascha Junkert
 
SAP Inside Track Berlin 2018 - DevOps in ABAP Landscapes
SAP Inside Track Berlin 2018 - DevOps in ABAP LandscapesSAP Inside Track Berlin 2018 - DevOps in ABAP Landscapes
SAP Inside Track Berlin 2018 - DevOps in ABAP LandscapesSascha Junkert
 
Manageable Data Pipelines With Airflow (and kubernetes) - GDG DevFest
Manageable Data Pipelines With Airflow (and kubernetes) - GDG DevFestManageable Data Pipelines With Airflow (and kubernetes) - GDG DevFest
Manageable Data Pipelines With Airflow (and kubernetes) - GDG DevFestJarek Potiuk
 
DevOps: Continous Delivery - Como os feedbacks são importantes
DevOps: Continous Delivery - Como os feedbacks são importantesDevOps: Continous Delivery - Como os feedbacks são importantes
DevOps: Continous Delivery - Como os feedbacks são importantesErik Etsushi Miyashita
 
Cloud Native Testing, 2020 Edition: A Modern Blueprint for Pre-production Tes...
Cloud Native Testing, 2020 Edition: A Modern Blueprint for Pre-production Tes...Cloud Native Testing, 2020 Edition: A Modern Blueprint for Pre-production Tes...
Cloud Native Testing, 2020 Edition: A Modern Blueprint for Pre-production Tes...OlyaSurits
 
Our Journey to 100% Agile and a BizDevOps Product Portfolio - Dr. Frank Ramsa...
Our Journey to 100% Agile and a BizDevOps Product Portfolio - Dr. Frank Ramsa...Our Journey to 100% Agile and a BizDevOps Product Portfolio - Dr. Frank Ramsa...
Our Journey to 100% Agile and a BizDevOps Product Portfolio - Dr. Frank Ramsa...Marilyne Huret
 
Avoiding the DevOps Tax
Avoiding the DevOps Tax Avoiding the DevOps Tax
Avoiding the DevOps Tax GitLab, Inc
 
DevOps Fest 2019. Олег Белецкий. Using Chef to manage hardware-based infrastr...
DevOps Fest 2019. Олег Белецкий. Using Chef to manage hardware-based infrastr...DevOps Fest 2019. Олег Белецкий. Using Chef to manage hardware-based infrastr...
DevOps Fest 2019. Олег Белецкий. Using Chef to manage hardware-based infrastr...DevOps_Fest
 
賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)
賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)
賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)William Yeh
 
TechTalk: Reduce Risk with Canary Deployments
TechTalk: Reduce Risk with Canary DeploymentsTechTalk: Reduce Risk with Canary Deployments
TechTalk: Reduce Risk with Canary DeploymentsCA Technologies
 
Rehosting apps between k8s clusters and automating deployment using crane c...
Rehosting apps between k8s clusters and automating deployment using crane   c...Rehosting apps between k8s clusters and automating deployment using crane   c...
Rehosting apps between k8s clusters and automating deployment using crane c...LibbySchulze
 
SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8Rajwinder Singh
 
Rancher and Kubernetes - Vishal Biyani - Infracloud - Bangalore Container Con...
Rancher and Kubernetes - Vishal Biyani - Infracloud - Bangalore Container Con...Rancher and Kubernetes - Vishal Biyani - Infracloud - Bangalore Container Con...
Rancher and Kubernetes - Vishal Biyani - Infracloud - Bangalore Container Con...CodeOps Technologies LLP
 
APIOps: Automated Processes for Even Better APIs
APIOps: Automated Processes for Even Better APIsAPIOps: Automated Processes for Even Better APIs
APIOps: Automated Processes for Even Better APIsOlyaSurits
 
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) PipelineAnatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) PipelineRobert McDermott
 
Devops Enterprise Summit: My Great Awakening: 
Top “Ah-ha” Moments As Former ...
Devops Enterprise Summit: My Great Awakening: 
Top “Ah-ha” Moments As Former ...Devops Enterprise Summit: My Great Awakening: 
Top “Ah-ha” Moments As Former ...
Devops Enterprise Summit: My Great Awakening: 
Top “Ah-ha” Moments As Former ...cornelia davis
 
#SitBERN modern abap development with abapgit
#SitBERN modern abap development with abapgit#SitBERN modern abap development with abapgit
#SitBERN modern abap development with abapgitChristian Günter
 
What's Coming in Apache Airflow 2.0 - PyDataWarsaw 2019
What's Coming in Apache Airflow 2.0 - PyDataWarsaw 2019What's Coming in Apache Airflow 2.0 - PyDataWarsaw 2019
What's Coming in Apache Airflow 2.0 - PyDataWarsaw 2019Jarek Potiuk
 

La actualidad más candente (20)

Working effectively with OpenShift
Working effectively with OpenShiftWorking effectively with OpenShift
Working effectively with OpenShift
 
Developing Great Apps with Apache Cordova
Developing Great Apps with Apache CordovaDeveloping Great Apps with Apache Cordova
Developing Great Apps with Apache Cordova
 
DSAG Jahreskongress 2018 - DevOps and Deployment Pipelines in SAP ABAP Landsc...
DSAG Jahreskongress 2018 - DevOps and Deployment Pipelines in SAP ABAP Landsc...DSAG Jahreskongress 2018 - DevOps and Deployment Pipelines in SAP ABAP Landsc...
DSAG Jahreskongress 2018 - DevOps and Deployment Pipelines in SAP ABAP Landsc...
 
SAP Inside Track Berlin 2018 - DevOps in ABAP Landscapes
SAP Inside Track Berlin 2018 - DevOps in ABAP LandscapesSAP Inside Track Berlin 2018 - DevOps in ABAP Landscapes
SAP Inside Track Berlin 2018 - DevOps in ABAP Landscapes
 
Manageable Data Pipelines With Airflow (and kubernetes) - GDG DevFest
Manageable Data Pipelines With Airflow (and kubernetes) - GDG DevFestManageable Data Pipelines With Airflow (and kubernetes) - GDG DevFest
Manageable Data Pipelines With Airflow (and kubernetes) - GDG DevFest
 
DevOps: Continous Delivery - Como os feedbacks são importantes
DevOps: Continous Delivery - Como os feedbacks são importantesDevOps: Continous Delivery - Como os feedbacks são importantes
DevOps: Continous Delivery - Como os feedbacks são importantes
 
Cloud Native Testing, 2020 Edition: A Modern Blueprint for Pre-production Tes...
Cloud Native Testing, 2020 Edition: A Modern Blueprint for Pre-production Tes...Cloud Native Testing, 2020 Edition: A Modern Blueprint for Pre-production Tes...
Cloud Native Testing, 2020 Edition: A Modern Blueprint for Pre-production Tes...
 
Our Journey to 100% Agile and a BizDevOps Product Portfolio - Dr. Frank Ramsa...
Our Journey to 100% Agile and a BizDevOps Product Portfolio - Dr. Frank Ramsa...Our Journey to 100% Agile and a BizDevOps Product Portfolio - Dr. Frank Ramsa...
Our Journey to 100% Agile and a BizDevOps Product Portfolio - Dr. Frank Ramsa...
 
Avoiding the DevOps Tax
Avoiding the DevOps Tax Avoiding the DevOps Tax
Avoiding the DevOps Tax
 
DevOps Fest 2019. Олег Белецкий. Using Chef to manage hardware-based infrastr...
DevOps Fest 2019. Олег Белецкий. Using Chef to manage hardware-based infrastr...DevOps Fest 2019. Олег Белецкий. Using Chef to manage hardware-based infrastr...
DevOps Fest 2019. Олег Белецкий. Using Chef to manage hardware-based infrastr...
 
賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)
賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)
賣 K8s 的人不敢告訴你的事 (Secrets that K8s vendors won't tell you)
 
TechTalk: Reduce Risk with Canary Deployments
TechTalk: Reduce Risk with Canary DeploymentsTechTalk: Reduce Risk with Canary Deployments
TechTalk: Reduce Risk with Canary Deployments
 
Rehosting apps between k8s clusters and automating deployment using crane c...
Rehosting apps between k8s clusters and automating deployment using crane   c...Rehosting apps between k8s clusters and automating deployment using crane   c...
Rehosting apps between k8s clusters and automating deployment using crane c...
 
SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8
 
Rancher and Kubernetes - Vishal Biyani - Infracloud - Bangalore Container Con...
Rancher and Kubernetes - Vishal Biyani - Infracloud - Bangalore Container Con...Rancher and Kubernetes - Vishal Biyani - Infracloud - Bangalore Container Con...
Rancher and Kubernetes - Vishal Biyani - Infracloud - Bangalore Container Con...
 
APIOps: Automated Processes for Even Better APIs
APIOps: Automated Processes for Even Better APIsAPIOps: Automated Processes for Even Better APIs
APIOps: Automated Processes for Even Better APIs
 
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) PipelineAnatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
 
Devops Enterprise Summit: My Great Awakening: 
Top “Ah-ha” Moments As Former ...
Devops Enterprise Summit: My Great Awakening: 
Top “Ah-ha” Moments As Former ...Devops Enterprise Summit: My Great Awakening: 
Top “Ah-ha” Moments As Former ...
Devops Enterprise Summit: My Great Awakening: 
Top “Ah-ha” Moments As Former ...
 
#SitBERN modern abap development with abapgit
#SitBERN modern abap development with abapgit#SitBERN modern abap development with abapgit
#SitBERN modern abap development with abapgit
 
What's Coming in Apache Airflow 2.0 - PyDataWarsaw 2019
What's Coming in Apache Airflow 2.0 - PyDataWarsaw 2019What's Coming in Apache Airflow 2.0 - PyDataWarsaw 2019
What's Coming in Apache Airflow 2.0 - PyDataWarsaw 2019
 

Similar a JS Fest 2019. Peter Braun. DevOps in the Cluster: A deep dive into operators

DevOps Fest 2019. Володимир Кімак. Mobile CI/CD. Cross-platform app approach
DevOps Fest 2019. Володимир Кімак. Mobile CI/CD. Cross-platform app approachDevOps Fest 2019. Володимир Кімак. Mobile CI/CD. Cross-platform app approach
DevOps Fest 2019. Володимир Кімак. Mobile CI/CD. Cross-platform app approachDevOps_Fest
 
Openshift serverless Solution
Openshift serverless SolutionOpenshift serverless Solution
Openshift serverless SolutionRyan ZhangCheng
 
Building and Deploying Cloud Native Applications
Building and Deploying Cloud Native ApplicationsBuilding and Deploying Cloud Native Applications
Building and Deploying Cloud Native ApplicationsManish Kapur
 
Cloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Cloud Native Meetup Santa Clara 07-11-2019 by Manish KapurCloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Cloud Native Meetup Santa Clara 07-11-2019 by Manish KapurOracle Developers
 
#APIOps- Agile API Development powered by API Connect
#APIOps- Agile API Development powered by API Connect#APIOps- Agile API Development powered by API Connect
#APIOps- Agile API Development powered by API Connectpramodvallanur
 
[Lakmal] Automate Microservice to API
[Lakmal] Automate Microservice to API[Lakmal] Automate Microservice to API
[Lakmal] Automate Microservice to APILakmal Warusawithana
 
Modern DevOps with Spinnaker - Olga Kundzich
Modern DevOps with Spinnaker - Olga KundzichModern DevOps with Spinnaker - Olga Kundzich
Modern DevOps with Spinnaker - Olga KundzichVMware Tanzu
 
.NET Fest 2019. Андрей Винда. Создание REST API с поддержкой высокой нагрузки
.NET Fest 2019. Андрей Винда. Создание REST API с поддержкой высокой нагрузки.NET Fest 2019. Андрей Винда. Создание REST API с поддержкой высокой нагрузки
.NET Fest 2019. Андрей Винда. Создание REST API с поддержкой высокой нагрузкиNETFest
 
Journey Through Four Stages of Kubernetes Deployment Maturity
Journey Through Four Stages of Kubernetes Deployment MaturityJourney Through Four Stages of Kubernetes Deployment Maturity
Journey Through Four Stages of Kubernetes Deployment MaturityAltoros
 
OpenShift 4, the smarter Kubernetes platform
OpenShift 4, the smarter Kubernetes platformOpenShift 4, the smarter Kubernetes platform
OpenShift 4, the smarter Kubernetes platformKangaroot
 
GitOps Testing in Kubernetes with Flux and Testkube.pdf
GitOps Testing in Kubernetes with Flux and Testkube.pdfGitOps Testing in Kubernetes with Flux and Testkube.pdf
GitOps Testing in Kubernetes with Flux and Testkube.pdfWeaveworks
 
When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?Niklas Heidloff
 
[Srijan Wednesday Webinar] How to Run Stateless and Stateful Services on K8S ...
[Srijan Wednesday Webinar] How to Run Stateless and Stateful Services on K8S ...[Srijan Wednesday Webinar] How to Run Stateless and Stateful Services on K8S ...
[Srijan Wednesday Webinar] How to Run Stateless and Stateful Services on K8S ...Srijan Technologies
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetessparkfabrik
 
RedisConf18 - Redis in Dev, Test, and Prod with the OpenShift Service Catalog
RedisConf18 - Redis in Dev, Test, and Prod with the OpenShift Service CatalogRedisConf18 - Redis in Dev, Test, and Prod with the OpenShift Service Catalog
RedisConf18 - Redis in Dev, Test, and Prod with the OpenShift Service CatalogRedis Labs
 
Creating a Scalable and Decentralized API Management Architecture with WSO2 A...
Creating a Scalable and Decentralized API Management Architecture with WSO2 A...Creating a Scalable and Decentralized API Management Architecture with WSO2 A...
Creating a Scalable and Decentralized API Management Architecture with WSO2 A...WSO2
 
The Path to a Programmable Network
The Path to a Programmable NetworkThe Path to a Programmable Network
The Path to a Programmable NetworkMyNOG
 

Similar a JS Fest 2019. Peter Braun. DevOps in the Cluster: A deep dive into operators (20)

DevOps Fest 2019. Володимир Кімак. Mobile CI/CD. Cross-platform app approach
DevOps Fest 2019. Володимир Кімак. Mobile CI/CD. Cross-platform app approachDevOps Fest 2019. Володимир Кімак. Mobile CI/CD. Cross-platform app approach
DevOps Fest 2019. Володимир Кімак. Mobile CI/CD. Cross-platform app approach
 
Openshift serverless Solution
Openshift serverless SolutionOpenshift serverless Solution
Openshift serverless Solution
 
Building and Deploying Cloud Native Applications
Building and Deploying Cloud Native ApplicationsBuilding and Deploying Cloud Native Applications
Building and Deploying Cloud Native Applications
 
Cloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Cloud Native Meetup Santa Clara 07-11-2019 by Manish KapurCloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
Cloud Native Meetup Santa Clara 07-11-2019 by Manish Kapur
 
#APIOps- Agile API Development powered by API Connect
#APIOps- Agile API Development powered by API Connect#APIOps- Agile API Development powered by API Connect
#APIOps- Agile API Development powered by API Connect
 
[Lakmal] Automate Microservice to API
[Lakmal] Automate Microservice to API[Lakmal] Automate Microservice to API
[Lakmal] Automate Microservice to API
 
Modern DevOps with Spinnaker - Olga Kundzich
Modern DevOps with Spinnaker - Olga KundzichModern DevOps with Spinnaker - Olga Kundzich
Modern DevOps with Spinnaker - Olga Kundzich
 
Devops course content
Devops course contentDevops course content
Devops course content
 
.NET Fest 2019. Андрей Винда. Создание REST API с поддержкой высокой нагрузки
.NET Fest 2019. Андрей Винда. Создание REST API с поддержкой высокой нагрузки.NET Fest 2019. Андрей Винда. Создание REST API с поддержкой высокой нагрузки
.NET Fest 2019. Андрей Винда. Создание REST API с поддержкой высокой нагрузки
 
Journey Through Four Stages of Kubernetes Deployment Maturity
Journey Through Four Stages of Kubernetes Deployment MaturityJourney Through Four Stages of Kubernetes Deployment Maturity
Journey Through Four Stages of Kubernetes Deployment Maturity
 
API Management and Kubernetes
API Management and KubernetesAPI Management and Kubernetes
API Management and Kubernetes
 
OpenShift 4, the smarter Kubernetes platform
OpenShift 4, the smarter Kubernetes platformOpenShift 4, the smarter Kubernetes platform
OpenShift 4, the smarter Kubernetes platform
 
GitOps Testing in Kubernetes with Flux and Testkube.pdf
GitOps Testing in Kubernetes with Flux and Testkube.pdfGitOps Testing in Kubernetes with Flux and Testkube.pdf
GitOps Testing in Kubernetes with Flux and Testkube.pdf
 
When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?
 
[Srijan Wednesday Webinar] How to Run Stateless and Stateful Services on K8S ...
[Srijan Wednesday Webinar] How to Run Stateless and Stateful Services on K8S ...[Srijan Wednesday Webinar] How to Run Stateless and Stateful Services on K8S ...
[Srijan Wednesday Webinar] How to Run Stateless and Stateful Services on K8S ...
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetes
 
RedisConf18 - Redis in Dev, Test, and Prod with the OpenShift Service Catalog
RedisConf18 - Redis in Dev, Test, and Prod with the OpenShift Service CatalogRedisConf18 - Redis in Dev, Test, and Prod with the OpenShift Service Catalog
RedisConf18 - Redis in Dev, Test, and Prod with the OpenShift Service Catalog
 
Creating a Scalable and Decentralized API Management Architecture with WSO2 A...
Creating a Scalable and Decentralized API Management Architecture with WSO2 A...Creating a Scalable and Decentralized API Management Architecture with WSO2 A...
Creating a Scalable and Decentralized API Management Architecture with WSO2 A...
 
Journey toward3rdplatform
Journey toward3rdplatformJourney toward3rdplatform
Journey toward3rdplatform
 
The Path to a Programmable Network
The Path to a Programmable NetworkThe Path to a Programmable Network
The Path to a Programmable Network
 

Más de DevOps_Fest

DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...
DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...
DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...DevOps_Fest
 
DevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CD
DevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CDDevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CD
DevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CDDevOps_Fest
 
DevOps Fest 2020. Барух Садогурский и Леонид Игольник. Устраиваем DevOps без ...
DevOps Fest 2020. Барух Садогурский и Леонид Игольник. Устраиваем DevOps без ...DevOps Fest 2020. Барух Садогурский и Леонид Игольник. Устраиваем DevOps без ...
DevOps Fest 2020. Барух Садогурский и Леонид Игольник. Устраиваем DevOps без ...DevOps_Fest
 
DevOps Fest 2020. James Spiteri. Advanced Security Operations with Elastic Se...
DevOps Fest 2020. James Spiteri. Advanced Security Operations with Elastic Se...DevOps Fest 2020. James Spiteri. Advanced Security Operations with Elastic Se...
DevOps Fest 2020. James Spiteri. Advanced Security Operations with Elastic Se...DevOps_Fest
 
DevOps Fest 2020. Pavlo Repalo. Edge Computing: Appliance and Challanges
DevOps Fest 2020. Pavlo Repalo. Edge Computing: Appliance and ChallangesDevOps Fest 2020. Pavlo Repalo. Edge Computing: Appliance and Challanges
DevOps Fest 2020. Pavlo Repalo. Edge Computing: Appliance and ChallangesDevOps_Fest
 
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...DevOps_Fest
 
DevOps Fest 2020. Павел Жданов та Никора Никита. Построение процесса CI\CD дл...
DevOps Fest 2020. Павел Жданов та Никора Никита. Построение процесса CI\CD дл...DevOps Fest 2020. Павел Жданов та Никора Никита. Построение процесса CI\CD дл...
DevOps Fest 2020. Павел Жданов та Никора Никита. Построение процесса CI\CD дл...DevOps_Fest
 
DevOps Fest 2020. Станислав Коленкин. How to connect non-connectible: tips, t...
DevOps Fest 2020. Станислав Коленкин. How to connect non-connectible: tips, t...DevOps Fest 2020. Станислав Коленкин. How to connect non-connectible: tips, t...
DevOps Fest 2020. Станислав Коленкин. How to connect non-connectible: tips, t...DevOps_Fest
 
DevOps Fest 2020. Андрій Шабалін. Distributed Tracing for microservices with ...
DevOps Fest 2020. Андрій Шабалін. Distributed Tracing for microservices with ...DevOps Fest 2020. Андрій Шабалін. Distributed Tracing for microservices with ...
DevOps Fest 2020. Андрій Шабалін. Distributed Tracing for microservices with ...DevOps_Fest
 
DevOps Fest 2020. Дмитрий Кудрявцев. Реализация GitOps на Kubernetes. ArgoCD
DevOps Fest 2020. Дмитрий Кудрявцев. Реализация GitOps на Kubernetes. ArgoCDDevOps Fest 2020. Дмитрий Кудрявцев. Реализация GitOps на Kubernetes. ArgoCD
DevOps Fest 2020. Дмитрий Кудрявцев. Реализация GitOps на Kubernetes. ArgoCDDevOps_Fest
 
DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в Kubernetes
DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в KubernetesDevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в Kubernetes
DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в KubernetesDevOps_Fest
 
DevOps Fest 2020. Андрей Шишенко. CI/CD for AWS Lambdas with Serverless frame...
DevOps Fest 2020. Андрей Шишенко. CI/CD for AWS Lambdas with Serverless frame...DevOps Fest 2020. Андрей Шишенко. CI/CD for AWS Lambdas with Serverless frame...
DevOps Fest 2020. Андрей Шишенко. CI/CD for AWS Lambdas with Serverless frame...DevOps_Fest
 
DevOps Fest 2020. Александр Глущенко. Modern Enterprise Network Architecture ...
DevOps Fest 2020. Александр Глущенко. Modern Enterprise Network Architecture ...DevOps Fest 2020. Александр Глущенко. Modern Enterprise Network Architecture ...
DevOps Fest 2020. Александр Глущенко. Modern Enterprise Network Architecture ...DevOps_Fest
 
DevOps Fest 2020. Виталий Складчиков. Сквозь монолитный enterprise к микросер...
DevOps Fest 2020. Виталий Складчиков. Сквозь монолитный enterprise к микросер...DevOps Fest 2020. Виталий Складчиков. Сквозь монолитный enterprise к микросер...
DevOps Fest 2020. Виталий Складчиков. Сквозь монолитный enterprise к микросер...DevOps_Fest
 
DevOps Fest 2020. Денис Медведенко. Управление сложными многокомпонентными ин...
DevOps Fest 2020. Денис Медведенко. Управление сложными многокомпонентными ин...DevOps Fest 2020. Денис Медведенко. Управление сложными многокомпонентными ин...
DevOps Fest 2020. Денис Медведенко. Управление сложными многокомпонентными ин...DevOps_Fest
 
DevOps Fest 2020. Павел Галушко. Что делать devops'у если у вас захотели mach...
DevOps Fest 2020. Павел Галушко. Что делать devops'у если у вас захотели mach...DevOps Fest 2020. Павел Галушко. Что делать devops'у если у вас захотели mach...
DevOps Fest 2020. Павел Галушко. Что делать devops'у если у вас захотели mach...DevOps_Fest
 
DevOps Fest 2020. Сергей Абаничев. Modern CI\CD pipeline with Azure DevOps
DevOps Fest 2020. Сергей Абаничев. Modern CI\CD pipeline with Azure DevOpsDevOps Fest 2020. Сергей Абаничев. Modern CI\CD pipeline with Azure DevOps
DevOps Fest 2020. Сергей Абаничев. Modern CI\CD pipeline with Azure DevOpsDevOps_Fest
 
DevOps Fest 2020. Philipp Krenn. Scale Your Auditing Events
DevOps Fest 2020. Philipp Krenn. Scale Your Auditing EventsDevOps Fest 2020. Philipp Krenn. Scale Your Auditing Events
DevOps Fest 2020. Philipp Krenn. Scale Your Auditing EventsDevOps_Fest
 
DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...
DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...
DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...DevOps_Fest
 
DevOps Fest 2020. Денис Васильев. Let's make it KUL! Kubernetes Ultra Light
DevOps Fest 2020. Денис Васильев. Let's make it KUL! Kubernetes Ultra LightDevOps Fest 2020. Денис Васильев. Let's make it KUL! Kubernetes Ultra Light
DevOps Fest 2020. Денис Васильев. Let's make it KUL! Kubernetes Ultra LightDevOps_Fest
 

Más de DevOps_Fest (20)

DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...
DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...
DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...
 
DevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CD
DevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CDDevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CD
DevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CD
 
DevOps Fest 2020. Барух Садогурский и Леонид Игольник. Устраиваем DevOps без ...
DevOps Fest 2020. Барух Садогурский и Леонид Игольник. Устраиваем DevOps без ...DevOps Fest 2020. Барух Садогурский и Леонид Игольник. Устраиваем DevOps без ...
DevOps Fest 2020. Барух Садогурский и Леонид Игольник. Устраиваем DevOps без ...
 
DevOps Fest 2020. James Spiteri. Advanced Security Operations with Elastic Se...
DevOps Fest 2020. James Spiteri. Advanced Security Operations with Elastic Se...DevOps Fest 2020. James Spiteri. Advanced Security Operations with Elastic Se...
DevOps Fest 2020. James Spiteri. Advanced Security Operations with Elastic Se...
 
DevOps Fest 2020. Pavlo Repalo. Edge Computing: Appliance and Challanges
DevOps Fest 2020. Pavlo Repalo. Edge Computing: Appliance and ChallangesDevOps Fest 2020. Pavlo Repalo. Edge Computing: Appliance and Challanges
DevOps Fest 2020. Pavlo Repalo. Edge Computing: Appliance and Challanges
 
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
 
DevOps Fest 2020. Павел Жданов та Никора Никита. Построение процесса CI\CD дл...
DevOps Fest 2020. Павел Жданов та Никора Никита. Построение процесса CI\CD дл...DevOps Fest 2020. Павел Жданов та Никора Никита. Построение процесса CI\CD дл...
DevOps Fest 2020. Павел Жданов та Никора Никита. Построение процесса CI\CD дл...
 
DevOps Fest 2020. Станислав Коленкин. How to connect non-connectible: tips, t...
DevOps Fest 2020. Станислав Коленкин. How to connect non-connectible: tips, t...DevOps Fest 2020. Станислав Коленкин. How to connect non-connectible: tips, t...
DevOps Fest 2020. Станислав Коленкин. How to connect non-connectible: tips, t...
 
DevOps Fest 2020. Андрій Шабалін. Distributed Tracing for microservices with ...
DevOps Fest 2020. Андрій Шабалін. Distributed Tracing for microservices with ...DevOps Fest 2020. Андрій Шабалін. Distributed Tracing for microservices with ...
DevOps Fest 2020. Андрій Шабалін. Distributed Tracing for microservices with ...
 
DevOps Fest 2020. Дмитрий Кудрявцев. Реализация GitOps на Kubernetes. ArgoCD
DevOps Fest 2020. Дмитрий Кудрявцев. Реализация GitOps на Kubernetes. ArgoCDDevOps Fest 2020. Дмитрий Кудрявцев. Реализация GitOps на Kubernetes. ArgoCD
DevOps Fest 2020. Дмитрий Кудрявцев. Реализация GitOps на Kubernetes. ArgoCD
 
DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в Kubernetes
DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в KubernetesDevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в Kubernetes
DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в Kubernetes
 
DevOps Fest 2020. Андрей Шишенко. CI/CD for AWS Lambdas with Serverless frame...
DevOps Fest 2020. Андрей Шишенко. CI/CD for AWS Lambdas with Serverless frame...DevOps Fest 2020. Андрей Шишенко. CI/CD for AWS Lambdas with Serverless frame...
DevOps Fest 2020. Андрей Шишенко. CI/CD for AWS Lambdas with Serverless frame...
 
DevOps Fest 2020. Александр Глущенко. Modern Enterprise Network Architecture ...
DevOps Fest 2020. Александр Глущенко. Modern Enterprise Network Architecture ...DevOps Fest 2020. Александр Глущенко. Modern Enterprise Network Architecture ...
DevOps Fest 2020. Александр Глущенко. Modern Enterprise Network Architecture ...
 
DevOps Fest 2020. Виталий Складчиков. Сквозь монолитный enterprise к микросер...
DevOps Fest 2020. Виталий Складчиков. Сквозь монолитный enterprise к микросер...DevOps Fest 2020. Виталий Складчиков. Сквозь монолитный enterprise к микросер...
DevOps Fest 2020. Виталий Складчиков. Сквозь монолитный enterprise к микросер...
 
DevOps Fest 2020. Денис Медведенко. Управление сложными многокомпонентными ин...
DevOps Fest 2020. Денис Медведенко. Управление сложными многокомпонентными ин...DevOps Fest 2020. Денис Медведенко. Управление сложными многокомпонентными ин...
DevOps Fest 2020. Денис Медведенко. Управление сложными многокомпонентными ин...
 
DevOps Fest 2020. Павел Галушко. Что делать devops'у если у вас захотели mach...
DevOps Fest 2020. Павел Галушко. Что делать devops'у если у вас захотели mach...DevOps Fest 2020. Павел Галушко. Что делать devops'у если у вас захотели mach...
DevOps Fest 2020. Павел Галушко. Что делать devops'у если у вас захотели mach...
 
DevOps Fest 2020. Сергей Абаничев. Modern CI\CD pipeline with Azure DevOps
DevOps Fest 2020. Сергей Абаничев. Modern CI\CD pipeline with Azure DevOpsDevOps Fest 2020. Сергей Абаничев. Modern CI\CD pipeline with Azure DevOps
DevOps Fest 2020. Сергей Абаничев. Modern CI\CD pipeline with Azure DevOps
 
DevOps Fest 2020. Philipp Krenn. Scale Your Auditing Events
DevOps Fest 2020. Philipp Krenn. Scale Your Auditing EventsDevOps Fest 2020. Philipp Krenn. Scale Your Auditing Events
DevOps Fest 2020. Philipp Krenn. Scale Your Auditing Events
 
DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...
DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...
DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...
 
DevOps Fest 2020. Денис Васильев. Let's make it KUL! Kubernetes Ultra Light
DevOps Fest 2020. Денис Васильев. Let's make it KUL! Kubernetes Ultra LightDevOps Fest 2020. Денис Васильев. Let's make it KUL! Kubernetes Ultra Light
DevOps Fest 2020. Денис Васильев. Let's make it KUL! Kubernetes Ultra Light
 

Último

Energy Resources. ( B. Pharmacy, 1st Year, Sem-II) Natural Resources
Energy Resources. ( B. Pharmacy, 1st Year, Sem-II) Natural ResourcesEnergy Resources. ( B. Pharmacy, 1st Year, Sem-II) Natural Resources
Energy Resources. ( B. Pharmacy, 1st Year, Sem-II) Natural ResourcesShubhangi Sonawane
 
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-II
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-IIFood Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-II
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-IIShubhangi Sonawane
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Celine George
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfPoh-Sun Goh
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docxPoojaSen20
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptxMaritesTamaniVerdade
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17Celine George
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.christianmathematics
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibitjbellavia9
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfAyushMahapatra5
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 

Último (20)

Energy Resources. ( B. Pharmacy, 1st Year, Sem-II) Natural Resources
Energy Resources. ( B. Pharmacy, 1st Year, Sem-II) Natural ResourcesEnergy Resources. ( B. Pharmacy, 1st Year, Sem-II) Natural Resources
Energy Resources. ( B. Pharmacy, 1st Year, Sem-II) Natural Resources
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-II
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-IIFood Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-II
Food Chain and Food Web (Ecosystem) EVS, B. Pharmacy 1st Year, Sem-II
 
Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17Advanced Views - Calendar View in Odoo 17
Advanced Views - Calendar View in Odoo 17
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docx
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 

JS Fest 2019. Peter Braun. DevOps in the Cluster: A deep dive into operators

  • 1. CONTINUOUS DELIVERY. CONTINUOUS DEVOPS. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINE th
  • 2. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINE Peter Braun | pbraun@redhat.com | Github: pb82 DevOps in the Cluster: a deep dive into Kubernetes Operators th
  • 3. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Agenda 1. What is this talk about? 2. The Situation today 3. What is an Operator? 4. Kubernetes Controllers 5. Operator Tooling 6. Tips for developing Operators 7. Demo
  • 4. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth What this talk is about: Kubernetes Applications and how to manage them.
  • 5. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth So what is a ‘Kubernetes Application’? A Kubernetes application is an application that is both deployed on Kubernetes and managed using the Kubernetes APIs and kubectl tooling.
  • 6. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth What’s available today? ● Templates ● Helm
  • 7. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Existing Tools: Templates ● YAML / JSON files ● Kubernetes Resources are purely declarative ● Parameterization is possible ○ Kustomize ○ Openshift Templates ● No concept of dependencies
  • 8. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Existing Tools: Helm ● The Package Manager for Kubernetes, it can do: ○ Parameterization, ○ Dependency Resolution ○ and even Version Management
  • 9. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth So what’s missing? ● Templates and Helm help with installation. ● Neither of them allow you to manage the Application.
  • 10. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth The Solution? Operators!
  • 11. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Let’s start from zero: what exactly is an Operator? An Operator is a method of packaging, deploying and managing a Kubernetes application.
  • 12. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Let’s start from zero: what exactly is an Operator? An Operator is a method of packaging, deploying and managing a Kubernetes application using custom resources.
  • 13. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Why is that distinction important? Operators are Kubernetes Controllers for Custom Resources.
  • 14. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Kubernetes Controllers ● Kubernetes resources are backed by Controllers ● The purpose of a Controller is to synchronize ○ the cluster state... ○ ...with the desired state (resource definition).
  • 15. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth An Example: Deployment Controller Desired state Cluster state Analyze Update
  • 16. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Kubernetes Controllers: Detailed Look Informer (Cache) List Watch ns/name Add/Update/Delete Work QueueAPI Server Reconcile Analyze Update Pop Push back
  • 17. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Operators are Kubernetes Controllers for Custom Resources.
  • 18. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Custom Resources ● Extension to the Kubernetes API ● Created with a Custom Resource Definition ● Let’s you define your own types
  • 19. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Custom Resources (Example)
  • 20. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Custom Resources (Commands) $ kubectl get crds $ kubectl get <CRD name>
  • 21. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Operators are Kubernetes Controllers for Custom Resources.
  • 22. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Operator Characteristics ● Typically written in Golang ● Standalone applications ● Deployed to a namespace ● Come bundled with their Custom Resource Definitions
  • 23. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth So how to start developing Operators?
  • 24. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Operator Tooling Operator Framework CoreOS Operator Framework: https://coreos.com/operators/
  • 25. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Operator Framework Operator SDK CoreOS Operator Framework: https://coreos.com/operators/
  • 26. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Operator SDK ● CLI Tool to bootstrap new operators ● SDK to abstract controller facilities ● Testing and build
  • 27. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Operator SDK Development Workflow 1. Bootstrap new operator 2. Add API 3. Add Controller 4. Code, run locally, repeat 5. Build & Push image
  • 28. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Operator SDK Development Workflow
  • 29. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Operator SDK (project structure) Structs to represent the custom resource(s) in Golang Often one controller per custom resource YAML resources (CRD, RBAC)
  • 30. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Adding an API to the Operator operator-sdk add api --api-version=app.example.com/v1alpha1 --kind=AppService
  • 31. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Adding a Controller to the Operator operator-sdk add controller --api-version=app.example.com/v1alpha1 --kind=AppService ● Creates a new controller ● Sets up the Informer ● Adds a Reconcile function ● Ready to implement your Logic
  • 32. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Controller Implementation: Reconcile Function ● Called when resources change ● Only gets the resource name ● Must figure out what changes to the cluster are required ● Return value can be used to reschedule the resource
  • 33. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Controller Implementation: Creating Resources ● Operator-SDK provides an API ● Programmatically or by parsing templates
  • 34. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Cleanup and Garbage Collection ● Operators should allow clean uninstallation ● Finalizers and Owner References can help ● Use both with care How to handle deprovision / deletion of the CR?
  • 35. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Finalizers Finalizer has been set. Resource won’t be deleted until removed.
  • 36. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Finalizers Resource has Finalizer(s)? Delete Resource No Set Delete Timestamp Reschedule Yes Done Delete Request
  • 37. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Owner References Resource is owned by another resource.
  • 38. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Owner References Sets resource owner to the custom resource that triggered it’s creation
  • 39. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Tips for developing Operators 1. Be careful when setting the Owner Reference 2. Be careful with Finalizers 3. Allow for deletion in any Operator state 4. Use the Phase Pattern 5. Don’t (over)use the Kubernetes API 6. Never rely on local testing only
  • 40. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Be careful when setting the Owner Reference Why? ● Cascaded Deletion is great ● Best case: no delete logic needed in Operator ● There are cases where it’s problematic Example: ● Backup/Restore ● References an owner that now has a different UID or is not yet created.
  • 41. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Tips for developing Operators 1. Always set the Owner Reference 2. Be careful with Finalizers 3. Allow for deletion in any Operator state 4. Use the Phase Pattern 5. Don’t (over)use the Kubernetes API 6. Never rely on local testing only
  • 42. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Be careful with finalizers Why? ● Halts deletion ● Can propagate to parent resources (e.g. namespaces) Example: ● Uninstall script that removes all namespaces ● Blocked by finalizer in one resource ● Needs to be manually resolved now
  • 43. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Tips for developing Operators 1. Always set the Owner Reference 2. Be careful with Finalizers 3. Allow for deletion in any Operator state 4. Use the Phase Pattern 5. Don’t (over)use the Kubernetes API 6. Never rely on local testing only
  • 44. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Allow for deletion in any Operator state Why? ● Operators can get stuck ● Give users a chance to make them unstuck Example: ● Operator fails to create a resource (e.g. permissions) ● User requests deprovision ● Operator still in install phase
  • 45. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Allow for deletion regardless of the Operator Phase How to fix this? ● No problem without finalizers ● Check the ‘deletionTimestamp’ in every state ● Always service finalizers
  • 46. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Tips for developing Operators 1. Always set the Owner Reference 2. Be careful with Finalizers 3. Allow for deletion in any Operator state 4. Use the Phase Pattern 5. Don’t (over)use the Kubernetes API 6. Never rely on local testing only
  • 47. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Use the Phase Pattern What is it? ● Operators are state machines ● Every task can be seen as a state ● Clear control flow Install Reconcile Uninstall (service finalizers)
  • 48. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Use the Phase Pattern Check Phase Take Action Update Phase
  • 49. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Tips for developing Operators 1. Always set the Owner Reference 2. Be careful with Finalizers 3. Allow for deletion in any Operator state 4. Use the Phase Pattern 5. Don’t (over)use the Kubernetes API 6. Never rely on local testing only
  • 50. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Don’t (over) use the Kubernetes API Why? ● Bypasses the Cache ● Causes performance issues Example: ● Operator that use get/list excessively ● Should rely on the Informer instead ● Sometimes inevitable, e.g. resource creation
  • 51. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Tips for developing Operators 1. Always set the Owner Reference 2. Be careful with Finalizers 3. Allow for deletion in any Operator state 4. Use the Phase Pattern 5. Don’t (over)use the Kubernetes API 6. Never rely on local testing only
  • 52. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Never rely on local testing only Why? ● You can test your Operator without deploying it ● Permissions will be different though Example: ● Operator-sdk’s up local ● Starts the Operator locally without deploying it
  • 53. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth What else is there? ● Dependency resolution ○ Operators can (and are expected to) deploy other operators ○ An example will be in the Demo
  • 54. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth What else is there? A better way to do dependency resolution? Operator Lifecycle Manager
  • 55. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth What else is there? OperatorHub: https://operatorhub.io/
  • 56. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINEth Demo (from zero to a monitoring stack)
  • 57. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINE Thank you! th