1 February 9, 2022 Free Workshop Intro to Kubernetes + GitOps Kingdon Barrett, OSS Support Engineer, Weaveworks David Stauffer, Sr. Product Manager, Weaveworks Tamao Nakahara, VP of DX, Weaveworks
2 Weaveworks is founded on open source ● Flux & Flagger (CNCF): GitOps and Progressive Delivery for k8s ● Cortex (CNCF): Distributed, Long-term-storage TSDB compatible with Prometheus ● Weave Ignite: VMs with container UX & built-in GitOps management ● EKSctl: Create an Amazon EKS cluster with one command ● (and many many more projects!) And now … Weave GitOps! weave.works
3 Speakers Help/Support Kingdon Barrett OSS Engineer David Stauffer Sr. PM, Weaveworks Tamao Nakahara VP of DX, Weaveworks Duration 90-120 Minutes Browser Safari copy/paste shortcuts may not work Using Zoom Questions? • Use chat (button: top left corner of screen) • Escape to exit full screen • “To Everyone” or “To all panelists and attendees” Support: https://support.zoom.us/hc/ en-us/articles/206175806-T op-Questions Troubleshooting Use chat If the issue is not easily resolved, we ask that you follow along as we demo the sample app. Free GitOps Workshop
4 👋 Welcome! Agenda: Intro to Kubernetes & GitOps Weave GitOps overview Weave GitOps Getting started Follow along at weave.works/product/gitops-core/
5 👋 Get started & Get connected 💬 🤝 1. Weave GitOps: weave.works/product/gitops-core/ 2. Getting Started: Click on “Getting Started” link from the above link 3. Need help? #weave-gitops slack at https://bit.ly/WeaveGitOpsSlack
6 Coming Up Weave Online User Group (https://www.meetup.com/Weave-User-Group/) ● Feb 16: GitOps on Amazon EKS Anywhere + Flux ● Feb 17: Flux for Helm Users ● Mar 2: Managing Thousand of Clusters & Their Workloads with Flux
Intro to Kubernetes and GitOps 7
● Kingdon Barrett ● OSS Engineer @ Weaveworks Flux Maintainer fluxcd.io (AKA @yebyen on the Internet) 8 About me! ��
Outline/Background 9 ● Intro to Kubernetes ○ Container Clusters - The Modern Ops Stack for the Cloud ○ Core API - Namespaces, Pods, Services, Events, Secrets, Config, … ○ apps, storage, coord., discovery, jobs, certificates, networking, RBAC, ... ○ Extending Kubernetes - CRDs, Controllers, Operators ● Intro to GitOps ○ (Need something to wrangle all of that complexity) ○ Cloud-Native Best-Practices for Kubernetes ○ Git: Version-Controlled, Immutable Storage ○ Ops: Continuous Delivery, Declarative Configuration, Automation
Intro to Kubernetes 10
● Open-Source Platform for Operations ● Control Plane, API, Data Plane, Workloads ● Different experiences are possible, depending on: ● Self-hosted vs. Managed Kubernetes ● For Dev/Test users / vs. for Production infrastructure What is Kubernetes? 11
● Common framework w/ Conformance Testing ● Mostly same experience across all cloud providers ● Controllers Reconciling toward a “Desired State” ● Declarative configuration ● Describes eg. Deployments - of containerized apps ● Controllers drive the actual state toward desired state What is Kubernetes? 12
● Pod ○ kubectl run --image ghcr.io/palemtnrider/weave-gitops:v0.3.2 -> pod running 1 container ● Pods have a lifecycle (Pending, Running, Succeeded, Failed, Unknown, Waiting, Terminated, Evicted) ● A “pod” definition like this by itself is not declarative. Calling a single instance (named) – imperative behavior What does that mean? (Example - Bad) 13
● Deployment -> (replicas: [N], template @ specification) ○ Kubectl apply -f dep.yaml -> ReplicaSet … ○ -> Pods[N] ● Declarative primitives rescue you from managing the imperative lifecycle of pods (built-in to Kubernetes) What does that mean? (Example) 14
● Deployment -> (replicas: [N], template @ specification) ○ Kubectl apply -f dep.yaml -> ReplicaSet (replicas: [N], immutable specification) (Deployment desires a matching ReplicaSet) ○ -> Pods[N] (each: [Ready], single @ immutable spec) (ReplicaSet desires [N] pods at ready state) ● Declarative primitives rescue you from managing the imperative lifecycle of pods (built-in to Kubernetes) What does that mean? (Example) 15
● Job -> (...) ● CronJob -> Job (...) (Triggered automatically on a schedule) ● StatefulSet -> Pods[N] (...) (Each replica has identity, bound to a Persistent Volume) ● Control Loops - Kubernetes Controller Manager Drives each resource toward declared state What does that mean? 16
● Declare your desired state ● Apply to your Kubernetes environment ● Control Loops for primitives and custom resources drive toward and maintain declared state What does that mean? 17
Intro to GitOps 18
● What would it look like if the desired state of an entire cluster/system was represented as a single artifact? ● Git Commit - with Kubernetes YAML manifests ● (GitOps is more than that) What is GitOps? 19
20 Source: opengitops.dev
21 ● Greater Visibility ○ Surfaces important metrics ● Improved Security ○ Less permissions ○ Access Log ● Easier Compliance ○ Standardization ○ Auditibility Benefits for Business
● Easier, Streamlined Deploys ○ Same behavior - Locally & Remotely ● Reduced knowledge required to interact with a cluster ● No cluster write credentials needed to interact with a cluster ○ “Kubectl apply, edit, create, wait where was I again” ○ “I ran a command that has left things in an irreversible state” Benefits for Developers 22
● Less code to maintain ○ scripts that go kubectl apply ➡ replaced by trusted OSS ● Less permissions ○ write cluster account ➡ replaced by git ● Easier Rollbacks ○ Previous commit + deploy job ➡ previous commit ● Easier to track changes ● Provides a layer of standardization for delivery Benefits for Platform Teams 23
● Declarative Configuration ● Version Controlled, Immutable artifacts ● Single Source of Truth ● Automated Delivery What is GitOps? 24
Confidential do not distribute At a Glance 25 ��💻 �� This is my system �� 25
● Declarative Configuration ● Version Controlled, Immutable artifacts ● Single Source of Truth ● Automated Delivery of Declarative Resources ● Agents running in the cluster, Reconciling Definitions ● “Closed Loop” What is GitOps? 26
- Git centric way of implementing continuous delivery - Benefits include - Increased Productivity - Enhanced Developer Experience - Improved Stability - Higher Reliability - Consistency and Standardization - Stronger Security Guarantees - 4 Principles - GitOps overcomes the problems of tightly-coupled CI and CD In Summary 27
Q&A ? 28
The “turkey dinner” :) End goal for GitOps Hands-On 29 Tamao Nakahara, VP of Developer Experience, Weaveworks
30 Weaveworks is a software and services company founded in 2014. We are known for world class tools and delivery to a global customer base including the world’s biggest companies. The biggest clouds use our software and partner with us. 1. We provide a modular solution for customers transitioning to a cloud native platform 2. We are a neutral vendor adding value to any flavor of managed Kubernetes 3. We deliver consistent management and operational control to IT We are leaders in “GitOps” – best practices for consistent management of cloud native apps Introduction to Weaveworks
IT delivery velocity leads to competitive business success DORA1 research shows that technical organisations with the best velocity on four key software delivery measures are twice as likely to meet their organisational goals. 31 1. https://services.google.com/fh/files/misc/state-of-devops-2019.pdf
Code Test Commit Build Aims: Maximal time coding Fast cycle times Local environment ● Simple development experience that scales from local kind clusters to full scale deployment ● GitOps improves every stage from development to fleet deployment ● Developer-focused tools and UX enable developers to be more productive across teams and enterprises 32 Weave GitOps Core and Enterprise The Kubernetes Native, Flux Native, GitOps Platform
https://cloud.google.com/blog/products/devops-sre/the-2019-accelerate-state-of-devops-elite-performance-productivity-and-scaling
34
35 Challenge: Developer Velocity ❏ Slow feature delivery cycles ❏ Manual, unreliable deployments ❏ Downtime during deployment Accelerate software lifecycles through automation Solution: GitOps Automation ❏ Resilient and Automated deployment process ❏ Continuous application delivery ❏ Increase MTTD and decrease MTTR
Weave Gitops Core: Flux Native, Open Source Application Delivery ● Represents the repositories that store a collection of a declarative description of runnable units ● Describes for the platform how to deploy, start, operate, and retire the corresponding service artifact. ● Presents which of those repos is being polled by the Weave GitOps controllers ● Presents the services and the workloads running in instances in a specific environment, including status 36
Weave GitOps Enteprise Scaling Gitops 37
https://cloud.google.com/blog/products/devops-sre/the-2019-accelerate-state-of-devops-elite-performance-productivity-and-scaling
Educate Enable Platform Applications Weaveworks Consulting, Training and CRE Service  • Guided technology choices  • Cloud native reference architecture designs • Cloud native technology options and selection Weave GitOps Enterprise • Infrastructure of your choice: public cloud and on premise • Configuration management for the whole platform • Integrated security • 24/7 Support  DevOps • Automation, management  and Continuous Delivery • Prometheus monitoring and alerting • Training for cluster operators, application operators and developers • Delivery of POCs and experimental environments Accelerating the path to Cloud Native 39 GET STARTED FAST DESIGN AND BUILD DELIVER A PRODUCTION READY K8S PLATFORM ENABLE AN AGILE DELIVERY MODEL 1 2 3 4
谢谢 Thank You Danke Obrigado Спасибо! Merci ‫ﺷﻛرا‬

Free GitOps Workshop (with Intro to Kubernetes & GitOps)

  • 1.
    1 February 9, 2022 FreeWorkshop Intro to Kubernetes + GitOps Kingdon Barrett, OSS Support Engineer, Weaveworks David Stauffer, Sr. Product Manager, Weaveworks Tamao Nakahara, VP of DX, Weaveworks
  • 2.
    2 Weaveworks is foundedon open source ● Flux & Flagger (CNCF): GitOps and Progressive Delivery for k8s ● Cortex (CNCF): Distributed, Long-term-storage TSDB compatible with Prometheus ● Weave Ignite: VMs with container UX & built-in GitOps management ● EKSctl: Create an Amazon EKS cluster with one command ● (and many many more projects!) And now … Weave GitOps! weave.works
  • 3.
    3 Speakers Help/Support Kingdon Barrett OSSEngineer David Stauffer Sr. PM, Weaveworks Tamao Nakahara VP of DX, Weaveworks Duration 90-120 Minutes Browser Safari copy/paste shortcuts may not work Using Zoom Questions? • Use chat (button: top left corner of screen) • Escape to exit full screen • “To Everyone” or “To all panelists and attendees” Support: https://support.zoom.us/hc/ en-us/articles/206175806-T op-Questions Troubleshooting Use chat If the issue is not easily resolved, we ask that you follow along as we demo the sample app. Free GitOps Workshop
  • 4.
    4 👋 Welcome! Agenda: Intro toKubernetes & GitOps Weave GitOps overview Weave GitOps Getting started Follow along at weave.works/product/gitops-core/
  • 5.
    5 👋 Get started& Get connected 💬 🤝 1. Weave GitOps: weave.works/product/gitops-core/ 2. Getting Started: Click on “Getting Started” link from the above link 3. Need help? #weave-gitops slack at https://bit.ly/WeaveGitOpsSlack
  • 6.
    6 Coming Up Weave OnlineUser Group (https://www.meetup.com/Weave-User-Group/) ● Feb 16: GitOps on Amazon EKS Anywhere + Flux ● Feb 17: Flux for Helm Users ● Mar 2: Managing Thousand of Clusters & Their Workloads with Flux
  • 7.
  • 8.
    ● Kingdon Barrett ●OSS Engineer @ Weaveworks Flux Maintainer fluxcd.io (AKA @yebyen on the Internet) 8 About me! ��
  • 9.
    Outline/Background 9 ● Intro toKubernetes ○ Container Clusters - The Modern Ops Stack for the Cloud ○ Core API - Namespaces, Pods, Services, Events, Secrets, Config, … ○ apps, storage, coord., discovery, jobs, certificates, networking, RBAC, ... ○ Extending Kubernetes - CRDs, Controllers, Operators ● Intro to GitOps ○ (Need something to wrangle all of that complexity) ○ Cloud-Native Best-Practices for Kubernetes ○ Git: Version-Controlled, Immutable Storage ○ Ops: Continuous Delivery, Declarative Configuration, Automation
  • 10.
  • 11.
    ● Open-Source Platformfor Operations ● Control Plane, API, Data Plane, Workloads ● Different experiences are possible, depending on: ● Self-hosted vs. Managed Kubernetes ● For Dev/Test users / vs. for Production infrastructure What is Kubernetes? 11
  • 12.
    ● Common frameworkw/ Conformance Testing ● Mostly same experience across all cloud providers ● Controllers Reconciling toward a “Desired State” ● Declarative configuration ● Describes eg. Deployments - of containerized apps ● Controllers drive the actual state toward desired state What is Kubernetes? 12
  • 13.
    ● Pod ○ kubectlrun --image ghcr.io/palemtnrider/weave-gitops:v0.3.2 -> pod running 1 container ● Pods have a lifecycle (Pending, Running, Succeeded, Failed, Unknown, Waiting, Terminated, Evicted) ● A “pod” definition like this by itself is not declarative. Calling a single instance (named) – imperative behavior What does that mean? (Example - Bad) 13
  • 14.
    ● Deployment ->(replicas: [N], template @ specification) ○ Kubectl apply -f dep.yaml -> ReplicaSet … ○ -> Pods[N] ● Declarative primitives rescue you from managing the imperative lifecycle of pods (built-in to Kubernetes) What does that mean? (Example) 14
  • 15.
    ● Deployment ->(replicas: [N], template @ specification) ○ Kubectl apply -f dep.yaml -> ReplicaSet (replicas: [N], immutable specification) (Deployment desires a matching ReplicaSet) ○ -> Pods[N] (each: [Ready], single @ immutable spec) (ReplicaSet desires [N] pods at ready state) ● Declarative primitives rescue you from managing the imperative lifecycle of pods (built-in to Kubernetes) What does that mean? (Example) 15
  • 16.
    ● Job ->(...) ● CronJob -> Job (...) (Triggered automatically on a schedule) ● StatefulSet -> Pods[N] (...) (Each replica has identity, bound to a Persistent Volume) ● Control Loops - Kubernetes Controller Manager Drives each resource toward declared state What does that mean? 16
  • 17.
    ● Declare yourdesired state ● Apply to your Kubernetes environment ● Control Loops for primitives and custom resources drive toward and maintain declared state What does that mean? 17
  • 18.
  • 19.
    ● What wouldit look like if the desired state of an entire cluster/system was represented as a single artifact? ● Git Commit - with Kubernetes YAML manifests ● (GitOps is more than that) What is GitOps? 19
  • 20.
  • 21.
    21 ● Greater Visibility ○Surfaces important metrics ● Improved Security ○ Less permissions ○ Access Log ● Easier Compliance ○ Standardization ○ Auditibility Benefits for Business
  • 22.
    ● Easier, StreamlinedDeploys ○ Same behavior - Locally & Remotely ● Reduced knowledge required to interact with a cluster ● No cluster write credentials needed to interact with a cluster ○ “Kubectl apply, edit, create, wait where was I again” ○ “I ran a command that has left things in an irreversible state” Benefits for Developers 22
  • 23.
    ● Less codeto maintain ○ scripts that go kubectl apply ➡ replaced by trusted OSS ● Less permissions ○ write cluster account ➡ replaced by git ● Easier Rollbacks ○ Previous commit + deploy job ➡ previous commit ● Easier to track changes ● Provides a layer of standardization for delivery Benefits for Platform Teams 23
  • 24.
    ● Declarative Configuration ●Version Controlled, Immutable artifacts ● Single Source of Truth ● Automated Delivery What is GitOps? 24
  • 25.
    Confidential do notdistribute At a Glance 25 ��💻 �� This is my system �� 25
  • 26.
    ● Declarative Configuration ●Version Controlled, Immutable artifacts ● Single Source of Truth ● Automated Delivery of Declarative Resources ● Agents running in the cluster, Reconciling Definitions ● “Closed Loop” What is GitOps? 26
  • 27.
    - Git centricway of implementing continuous delivery - Benefits include - Increased Productivity - Enhanced Developer Experience - Improved Stability - Higher Reliability - Consistency and Standardization - Stronger Security Guarantees - 4 Principles - GitOps overcomes the problems of tightly-coupled CI and CD In Summary 27
  • 28.
  • 29.
    The “turkey dinner”:) End goal for GitOps Hands-On 29 Tamao Nakahara, VP of Developer Experience, Weaveworks
  • 30.
    30 Weaveworks is asoftware and services company founded in 2014. We are known for world class tools and delivery to a global customer base including the world’s biggest companies. The biggest clouds use our software and partner with us. 1. We provide a modular solution for customers transitioning to a cloud native platform 2. We are a neutral vendor adding value to any flavor of managed Kubernetes 3. We deliver consistent management and operational control to IT We are leaders in “GitOps” – best practices for consistent management of cloud native apps Introduction to Weaveworks
  • 31.
    IT delivery velocityleads to competitive business success DORA1 research shows that technical organisations with the best velocity on four key software delivery measures are twice as likely to meet their organisational goals. 31 1. https://services.google.com/fh/files/misc/state-of-devops-2019.pdf
  • 32.
    Code Test Commit Build Aims: Maximal timecoding Fast cycle times Local environment ● Simple development experience that scales from local kind clusters to full scale deployment ● GitOps improves every stage from development to fleet deployment ● Developer-focused tools and UX enable developers to be more productive across teams and enterprises 32 Weave GitOps Core and Enterprise The Kubernetes Native, Flux Native, GitOps Platform
  • 33.
  • 34.
  • 35.
    35 Challenge: Developer Velocity ❏Slow feature delivery cycles ❏ Manual, unreliable deployments ❏ Downtime during deployment Accelerate software lifecycles through automation Solution: GitOps Automation ❏ Resilient and Automated deployment process ❏ Continuous application delivery ❏ Increase MTTD and decrease MTTR
  • 36.
    Weave Gitops Core:Flux Native, Open Source Application Delivery ● Represents the repositories that store a collection of a declarative description of runnable units ● Describes for the platform how to deploy, start, operate, and retire the corresponding service artifact. ● Presents which of those repos is being polled by the Weave GitOps controllers ● Presents the services and the workloads running in instances in a specific environment, including status 36
  • 37.
  • 38.
  • 39.
    Educate Enable PlatformApplications Weaveworks Consulting, Training and CRE Service  • Guided technology choices  • Cloud native reference architecture designs • Cloud native technology options and selection Weave GitOps Enterprise • Infrastructure of your choice: public cloud and on premise • Configuration management for the whole platform • Integrated security • 24/7 Support  DevOps • Automation, management  and Continuous Delivery • Prometheus monitoring and alerting • Training for cluster operators, application operators and developers • Delivery of POCs and experimental environments Accelerating the path to Cloud Native 39 GET STARTED FAST DESIGN AND BUILD DELIVER A PRODUCTION READY K8S PLATFORM ENABLE AN AGILE DELIVERY MODEL 1 2 3 4
  • 40.