SlideShare a Scribd company logo
Helm vs Operators – Do I Need to Decide?
DevOpsCon Berlin, June 2021
Nico Meisenzahl
• Senior Cloud & DevOps Consultant at white duck
• Microsoft MVP, Docker Community Leader &
GitLab Hero
• Container, Kubernetes, Cloud-Native & DevOps
© white duck GmbH 2021
Phone: +49 8031 230159 0
Email: nico.meisenzahl@whiteduck.de
Twitter: @nmeisenzahl
LinkedIn: https://www.linkedin.com/in/nicomeisenzahl
Blog: https://meisenzahl.org
Agenda
• Do I need to decide?
• How do Helm and Operators differ?
• Real-world examples
• How to build an Operator
© white duck GmbH 2021
Do I need to decide?
© white duck GmbH 2021
Do I need to decide?
No!
We need different tools and methods to tackle different use
cases. They can also complement each other.
These use cases range from installing a small app to
operating a complex stateful application.
© white duck GmbH 2021
What is Helm?
• “The package manager for Kubernetes”
• simplifies our application deployments by focusing on
templatization, reusability
• we can use it for our own apps or benefit from a big
ecosystem
Note: Helm is just one (the most common) example of a
variety of similar tools.
© white duck GmbH 2021
What Helm helps with
• allows us to define, package, customize our applications
• supports us installing, upgrading and deleting stateless
applications
• enables us to start quickly
• provides us with support for Day-1 operations
Helm does not focus on managing/operating an application.
© white duck GmbH 2021
Application lifecycle
© white duck GmbH 2021
https://www.meshcloud.io/2020/06/08/cloud-landing-zone-lifecycle-explained/
What we still need help with
• maintaining our applications
• housekeeping tasks
• optimizing our exiting applications
• upgrading
• stateful applications
• complex applications with dependencies
• implementing backups, failure recovery
Basically, everything that concerns Day-2 operation.
© white duck GmbH 2021
The Operator pattern
… is an application-specific controller that extends the
Kubernetes API to create, configure, and manage instances
of complex stateful applications on behalf of a Kubernetes
user.
The Operator pattern aims to capture the main goal of a
human operator managing a service or set of services.
© white duck GmbH 2021
Where an Operator can help
• package human operational knowledge into code
• DRY (don’t repeat yourself)
• automate maintenance & complex operational tasks
• deployments & scaling
• configuration changes, rollouts, upgrades & testing
• backups & restores
• tasks can be translated into declarative input
• diff, act, observe (declarative / desired state)
Offers Kubernetes-native way to automate Day-2 operations.
© white duck GmbH 2021
What exactly is an Operators?
• Custom Resource
• a Custom Resource (CR) is an extension of the Kubernetes API
defined by a Custom Resource Definition (CRD)
• Controller
• a Controller monitors the CR type and initiates application-
specific actions to adjust the current state of the resource to the
desired state.
• the Controller runs as a containerized workload within the
Kubernetes cluster
© white duck GmbH 2021
Operator lifecycle
© white duck GmbH 2021
https://medium.com/swlh/kubernetes-operator-for-beginners-what-why-how-21b23f0cb9b1
Operator vs. Custom Controller
• identical concepts with different domains
• Custom Controller
• understands only Kubernetes’s native abstractions such as
Pod, Deployment, Service, …
• Operator
• Controllers that are part of an Operator also understand
Custom Resource abstractions that the Operator has
introduced
© white duck GmbH 2021
When to use Operators
• operate stateful third-party applications
• manage your own complex or stateful applications
• introduce abstraction
• “something” as a service as part of a developer platform
• external resources
© white duck GmbH 2021
Some examples (third party)
• Prometheus Operator
• manage Prometheus, Alertmanager, and related components
• Strimzi Kafka Operator
• run and operate Apache Kafka clusters on Kubernetes in various
deployment configurations
• Elastic Cloud on Kubernetes (ECK)
• orchestrate Elastic applications (Elasticsearch, Kibana, APM Server,
…) on Kubernetes
• Crossplane
• provision and manage cloud infrastructure and services
© white duck GmbH 2021
Build your own Operator
• using a Kubernetes Client library
• https://github.com/kubernetes/sample-controller
• choose from a variety of tools and frameworks
• kubebuilder
• Operator Framework
• Shell-operator
• KUDO
© white duck GmbH 2021
https://hazelcast.com/blog/build-your-kubernetes-operator-with-the-right-tool/
kubebuilder
• provides powerful libraries and tools to simplify building
and publishing Kubernetes APIs from scratch
• focuses on Golang
• fully flexible
• is maintained by Kubernetes SIG API Machinery
© white duck GmbH 2021
Operator Framework
• Operator SDK
• software development kit for building Operators
• scaffolding and more higher-level framework with large feature set
• supporting Helm, Ansible and Golang
• Operation Lifecycle Manager (OLM)
• helps install, update, and manage the lifecycle of Operators
• OperatorHub.io
• catalog hosting existing Operators
• by RedHat
© white duck GmbH 2021
Shell-operator
• running event-driven scripts in a Kubernetes cluster
• bash, python, kubectl, …
• easy to start with
• ops-focused
• triggered by Kubernetes events, scheduled, or start up
• webhook machinery for AdmissionReview requests & others
• is based on an “universal” controller
• by Flant
© white duck GmbH 2021
KUDO
• Kubernetes Universal Declarative Operator
• no coding required
• define Operators as templated YAML manifests
• based on kubebuilder and other community projects
• Operator Repository
• https://github.com/kudobuilder/operators
• also based on an “universal” controller
© white duck GmbH 2021
You have to decide
• are you running…
• stateless or stateful/complex applications?
• stateful third-party applications? Do they provide an Operator?
• Operators…
• can help but also introduce complexity
• you need to commit to maintain the Operator code
• have a different focus than Helm; each has strengths and
weaknesses
• Operators & Helm can also complement each other
© white duck GmbH 2021
Questions?
Slides: https://www.slideshare.net/nmeisenzahl
Nico Meisenzahl (Senior Cloud & DevOps Consultant)
Phone: +49 8031 230159 0
Email: nico.meisenzahl@whiteduck.de
Twitter: @nmeisenzahl
LinkedIn: https://www.linkedin.com/in/nicomeisenzahl
Blog: https://meisenzahl.org
© white duck GmbH 2021

More Related Content

PDF
Azure Meetup Hamburg: Production-Ready Terraform Deployments on Azure
PDF
Cloud Native Day: Cloud-native Anwendungsentwicklung im Jahr 2021
PDF
Azure Rosenheim Meetup: Azure Service Operator
PDF
GitHub Actions 101
PPTX
FestiveTechCalendar2021 - Have Yourself An​ Azure Container Registry
PDF
Azure Zürich User Group: Azure Kubernetes Service – more than just a managed ...
PDF
Virtual GitLab Meetup: How Containerized Pipelines and Kubernetes Can Boost Y...
PDF
The Future of Workflow Automation Is Now - Hassle-Free ARM Template Deploymen...
Azure Meetup Hamburg: Production-Ready Terraform Deployments on Azure
Cloud Native Day: Cloud-native Anwendungsentwicklung im Jahr 2021
Azure Rosenheim Meetup: Azure Service Operator
GitHub Actions 101
FestiveTechCalendar2021 - Have Yourself An​ Azure Container Registry
Azure Zürich User Group: Azure Kubernetes Service – more than just a managed ...
Virtual GitLab Meetup: How Containerized Pipelines and Kubernetes Can Boost Y...
The Future of Workflow Automation Is Now - Hassle-Free ARM Template Deploymen...

What's hot (20)

PDF
DevOps Gathering - How Containerized Pipelines Can Boost Your CI/CD
PDF
Docker Rosenheim Meetup: Policy & Governance for Kubernetes
PDF
Virtual Azure Community Day: Azure Kubernetes Service Basics
PDF
GitLab Commit DevOps: How GitLab Can Save your Kubernetes environment from Be...
PDF
Continuous Lifecycle: Hijack Kubernetes
PDF
DevOpsCon London: How containerized Pipelines can boost your CI/CD
PDF
azdevcom - Hijack a Kubernetes Cluster
PDF
Die Evolution von Container Image Builds
PDF
GitLab Commit: Enhance your Compliance with Policy-Based CI/CD
PDF
Azure Saturday Hamburg: Containerize Your .NET Microservice - the Right Way!
PDF
Hijack a Kubernetes Cluster - a Walkthrough
PDF
Global Azure Virtual: Container & Kubernetes on Azure
PDF
Was ist ein Service Mesh und wie funktioniert es?
PPTX
AzDevCom2021 - Bicep vs Terraform
PDF
Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open Source
PDF
GitLab Remote Meetup: Enhance Your Kubernetes CI/CD Pipelines with GitLab & ...
PDF
Global Azure Bootcamp: Container, Docker & Kubernetes Basics
PDF
Monitor Traefik with Prometheus
PPTX
Distributed Storage in the Cloud
PDF
LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...
DevOps Gathering - How Containerized Pipelines Can Boost Your CI/CD
Docker Rosenheim Meetup: Policy & Governance for Kubernetes
Virtual Azure Community Day: Azure Kubernetes Service Basics
GitLab Commit DevOps: How GitLab Can Save your Kubernetes environment from Be...
Continuous Lifecycle: Hijack Kubernetes
DevOpsCon London: How containerized Pipelines can boost your CI/CD
azdevcom - Hijack a Kubernetes Cluster
Die Evolution von Container Image Builds
GitLab Commit: Enhance your Compliance with Policy-Based CI/CD
Azure Saturday Hamburg: Containerize Your .NET Microservice - the Right Way!
Hijack a Kubernetes Cluster - a Walkthrough
Global Azure Virtual: Container & Kubernetes on Azure
Was ist ein Service Mesh und wie funktioniert es?
AzDevCom2021 - Bicep vs Terraform
Enhance Your Kubernetes CI/CD Pipelines With GitLab & Open Source
GitLab Remote Meetup: Enhance Your Kubernetes CI/CD Pipelines with GitLab & ...
Global Azure Bootcamp: Container, Docker & Kubernetes Basics
Monitor Traefik with Prometheus
Distributed Storage in the Cloud
LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...
Ad

Similar to DevOpsCon Berlin: Helm vs Operators – Do I Need to Decide? (20)

PDF
ContainerConf 2022: Kubernetes is awesome - but...
PDF
Cloud Love Conference: Kubernetes is awesome, but...
PDF
KCD Munich 2022: How to Prevent Your Kubernetes Cluster From Being Hacked
PDF
How to Prevent Your Kubernetes Cluster From Being Hacked
PDF
GitLab London Meetup: How Containerized Pipelines and Kubernetes Can Boost Yo...
PDF
Effiziente CI/CD-Pipelines – mit den richtigen Tools klappt das
PDF
Continuous Delivery with CloudBees Core
PDF
GitLab Remote Meetup: Enhance Your Kubernetes CI/CD Pipelines with GitLab & O...
PPTX
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
PPTX
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
PDF
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
PPTX
Kubernetes solutions
PDF
All Things Cloud Native Meetup: Azure Kubernetes Service Basics
PDF
Containerized Build & Deployment Pipelines
PDF
A Guide to Adopting Kubernetes
PPTX
Edge 2016 Session 1886 Building your own docker container cloud on ibm power...
PDF
Continuous Delivery to Kubernetes with Jenkins and Helm
PPTX
Stop Caring About Kubernetes
PPTX
Docker12 factor
PDF
VMworld Europe 2014: What’s New in End User Computing: Full Desktop Automatio...
ContainerConf 2022: Kubernetes is awesome - but...
Cloud Love Conference: Kubernetes is awesome, but...
KCD Munich 2022: How to Prevent Your Kubernetes Cluster From Being Hacked
How to Prevent Your Kubernetes Cluster From Being Hacked
GitLab London Meetup: How Containerized Pipelines and Kubernetes Can Boost Yo...
Effiziente CI/CD-Pipelines – mit den richtigen Tools klappt das
Continuous Delivery with CloudBees Core
GitLab Remote Meetup: Enhance Your Kubernetes CI/CD Pipelines with GitLab & O...
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
Kubernetes solutions
All Things Cloud Native Meetup: Azure Kubernetes Service Basics
Containerized Build & Deployment Pipelines
A Guide to Adopting Kubernetes
Edge 2016 Session 1886 Building your own docker container cloud on ibm power...
Continuous Delivery to Kubernetes with Jenkins and Helm
Stop Caring About Kubernetes
Docker12 factor
VMworld Europe 2014: What’s New in End User Computing: Full Desktop Automatio...
Ad

More from Nico Meisenzahl (12)

PDF
Cloud-Native & Sustainability: How and Why to Build Sustainable Workloads
PDF
Container Day Security: How to Prevent Your Kubernetes Cluster From Being Hacked
PDF
Festive Tech Calendar: Festive time with AKS networking
PDF
ContainerConf 2022: Hijack Kubernetes
PDF
KCD Munich 2022: Hijack a Kubernetes Cluster - a Walkthrough
PDF
Container Days: Hijack a Kubernetes Cluster - a Walkthrough
PPTX
Hijack a Kubernetes Cluster - a Walkthrough
PDF
Hijack a Kubernetes Cluster - a Walkthrough
PDF
Continuous Lifecycle: Enhance Your Compliance and Governance With Policy-Base...
PDF
Microsoft DevOps Forum 2021 – DevOps & Security
PDF
Azure Service Operator - Provision Your Resources in a Cloud-Native Way
PDF
GitLab Commit: Your Attackers Won't Be Happy! How GitLab Can Help You Secure ...
Cloud-Native & Sustainability: How and Why to Build Sustainable Workloads
Container Day Security: How to Prevent Your Kubernetes Cluster From Being Hacked
Festive Tech Calendar: Festive time with AKS networking
ContainerConf 2022: Hijack Kubernetes
KCD Munich 2022: Hijack a Kubernetes Cluster - a Walkthrough
Container Days: Hijack a Kubernetes Cluster - a Walkthrough
Hijack a Kubernetes Cluster - a Walkthrough
Hijack a Kubernetes Cluster - a Walkthrough
Continuous Lifecycle: Enhance Your Compliance and Governance With Policy-Base...
Microsoft DevOps Forum 2021 – DevOps & Security
Azure Service Operator - Provision Your Resources in a Cloud-Native Way
GitLab Commit: Your Attackers Won't Be Happy! How GitLab Can Help You Secure ...

Recently uploaded (20)

PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Encapsulation theory and applications.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Electronic commerce courselecture one. Pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
Understanding_Digital_Forensics_Presentation.pptx
MYSQL Presentation for SQL database connectivity
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Unlocking AI with Model Context Protocol (MCP)
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Mobile App Security Testing_ A Comprehensive Guide.pdf
Network Security Unit 5.pdf for BCA BBA.
Encapsulation theory and applications.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Spectral efficient network and resource selection model in 5G networks
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
Digital-Transformation-Roadmap-for-Companies.pptx
Electronic commerce courselecture one. Pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
MIND Revenue Release Quarter 2 2025 Press Release
Per capita expenditure prediction using model stacking based on satellite ima...
The AUB Centre for AI in Media Proposal.docx
The Rise and Fall of 3GPP – Time for a Sabbatical?

DevOpsCon Berlin: Helm vs Operators – Do I Need to Decide?

  • 1. Helm vs Operators – Do I Need to Decide? DevOpsCon Berlin, June 2021
  • 2. Nico Meisenzahl • Senior Cloud & DevOps Consultant at white duck • Microsoft MVP, Docker Community Leader & GitLab Hero • Container, Kubernetes, Cloud-Native & DevOps © white duck GmbH 2021 Phone: +49 8031 230159 0 Email: nico.meisenzahl@whiteduck.de Twitter: @nmeisenzahl LinkedIn: https://www.linkedin.com/in/nicomeisenzahl Blog: https://meisenzahl.org
  • 3. Agenda • Do I need to decide? • How do Helm and Operators differ? • Real-world examples • How to build an Operator © white duck GmbH 2021
  • 4. Do I need to decide? © white duck GmbH 2021
  • 5. Do I need to decide? No! We need different tools and methods to tackle different use cases. They can also complement each other. These use cases range from installing a small app to operating a complex stateful application. © white duck GmbH 2021
  • 6. What is Helm? • “The package manager for Kubernetes” • simplifies our application deployments by focusing on templatization, reusability • we can use it for our own apps or benefit from a big ecosystem Note: Helm is just one (the most common) example of a variety of similar tools. © white duck GmbH 2021
  • 7. What Helm helps with • allows us to define, package, customize our applications • supports us installing, upgrading and deleting stateless applications • enables us to start quickly • provides us with support for Day-1 operations Helm does not focus on managing/operating an application. © white duck GmbH 2021
  • 8. Application lifecycle © white duck GmbH 2021 https://www.meshcloud.io/2020/06/08/cloud-landing-zone-lifecycle-explained/
  • 9. What we still need help with • maintaining our applications • housekeeping tasks • optimizing our exiting applications • upgrading • stateful applications • complex applications with dependencies • implementing backups, failure recovery Basically, everything that concerns Day-2 operation. © white duck GmbH 2021
  • 10. The Operator pattern … is an application-specific controller that extends the Kubernetes API to create, configure, and manage instances of complex stateful applications on behalf of a Kubernetes user. The Operator pattern aims to capture the main goal of a human operator managing a service or set of services. © white duck GmbH 2021
  • 11. Where an Operator can help • package human operational knowledge into code • DRY (don’t repeat yourself) • automate maintenance & complex operational tasks • deployments & scaling • configuration changes, rollouts, upgrades & testing • backups & restores • tasks can be translated into declarative input • diff, act, observe (declarative / desired state) Offers Kubernetes-native way to automate Day-2 operations. © white duck GmbH 2021
  • 12. What exactly is an Operators? • Custom Resource • a Custom Resource (CR) is an extension of the Kubernetes API defined by a Custom Resource Definition (CRD) • Controller • a Controller monitors the CR type and initiates application- specific actions to adjust the current state of the resource to the desired state. • the Controller runs as a containerized workload within the Kubernetes cluster © white duck GmbH 2021
  • 13. Operator lifecycle © white duck GmbH 2021 https://medium.com/swlh/kubernetes-operator-for-beginners-what-why-how-21b23f0cb9b1
  • 14. Operator vs. Custom Controller • identical concepts with different domains • Custom Controller • understands only Kubernetes’s native abstractions such as Pod, Deployment, Service, … • Operator • Controllers that are part of an Operator also understand Custom Resource abstractions that the Operator has introduced © white duck GmbH 2021
  • 15. When to use Operators • operate stateful third-party applications • manage your own complex or stateful applications • introduce abstraction • “something” as a service as part of a developer platform • external resources © white duck GmbH 2021
  • 16. Some examples (third party) • Prometheus Operator • manage Prometheus, Alertmanager, and related components • Strimzi Kafka Operator • run and operate Apache Kafka clusters on Kubernetes in various deployment configurations • Elastic Cloud on Kubernetes (ECK) • orchestrate Elastic applications (Elasticsearch, Kibana, APM Server, …) on Kubernetes • Crossplane • provision and manage cloud infrastructure and services © white duck GmbH 2021
  • 17. Build your own Operator • using a Kubernetes Client library • https://github.com/kubernetes/sample-controller • choose from a variety of tools and frameworks • kubebuilder • Operator Framework • Shell-operator • KUDO © white duck GmbH 2021 https://hazelcast.com/blog/build-your-kubernetes-operator-with-the-right-tool/
  • 18. kubebuilder • provides powerful libraries and tools to simplify building and publishing Kubernetes APIs from scratch • focuses on Golang • fully flexible • is maintained by Kubernetes SIG API Machinery © white duck GmbH 2021
  • 19. Operator Framework • Operator SDK • software development kit for building Operators • scaffolding and more higher-level framework with large feature set • supporting Helm, Ansible and Golang • Operation Lifecycle Manager (OLM) • helps install, update, and manage the lifecycle of Operators • OperatorHub.io • catalog hosting existing Operators • by RedHat © white duck GmbH 2021
  • 20. Shell-operator • running event-driven scripts in a Kubernetes cluster • bash, python, kubectl, … • easy to start with • ops-focused • triggered by Kubernetes events, scheduled, or start up • webhook machinery for AdmissionReview requests & others • is based on an “universal” controller • by Flant © white duck GmbH 2021
  • 21. KUDO • Kubernetes Universal Declarative Operator • no coding required • define Operators as templated YAML manifests • based on kubebuilder and other community projects • Operator Repository • https://github.com/kudobuilder/operators • also based on an “universal” controller © white duck GmbH 2021
  • 22. You have to decide • are you running… • stateless or stateful/complex applications? • stateful third-party applications? Do they provide an Operator? • Operators… • can help but also introduce complexity • you need to commit to maintain the Operator code • have a different focus than Helm; each has strengths and weaknesses • Operators & Helm can also complement each other © white duck GmbH 2021
  • 23. Questions? Slides: https://www.slideshare.net/nmeisenzahl Nico Meisenzahl (Senior Cloud & DevOps Consultant) Phone: +49 8031 230159 0 Email: nico.meisenzahl@whiteduck.de Twitter: @nmeisenzahl LinkedIn: https://www.linkedin.com/in/nicomeisenzahl Blog: https://meisenzahl.org © white duck GmbH 2021