GNOME ASIA SUMMIT 2021 Next Level DevOps Implementation with GitOps Ramadoni Ashudi ramadoni.ashudi@gmail.com 20-21 November 2021
Hello! I’m Ramadoni ➔ IT Infra & Cloud Automation at Commonwealth Bank Indonesia ➔ Student of Magister Informatics Engineering at Universitas AMIKOM Yogyakarta https://github.com/invaleed
1 Agenda ➔ What is DevOps? ➔ What is GitOps? ➔ GitOps Principals ➔ How GitOps Works? ➔ Advantage of GitOps ➔ Best Practices of GitOps ➔ GitOps Tools ➔ Demo
What is DevOps? DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity https://aws.amazon.com/devops/what-is-devops/
Process Culture & MIndset Productivity Efficiency Continuous Integration Continuous Delivery Microservices Monitoring & Logging Etc… Bitbucket Jenkins Docker Kubernetes ELK Jira & Confluence Etc… People Tools
Basic Concepts of DevOps Practices Manual Automatic 1 2 3 Result Result
What is GitOps? GitOps is a way of implementing Continuous Deployment for cloud native applications. https://www.gitops.tech/#what-is-gitops
What is GitOps? GitOps: versioned CI/CD on top of declarative infrastructure. - Kelsey Hightower -
What is GitOps? Set of practices to manage infrastructure and application deployment using Git as a single source of truth with declarative model
1 GitOps Principles ➔ Describe the entire system declaratively ➔ The desired system state is versioned in Git ➔ Automatically apply approved changes to the system ➔ Ensure correctness and alert on divergence with software agents Source: https://www.weave.works
Declarative 1 Imperative
Set “annotation” Set “replicas” Set “image” nginx-deployment.yml
How GitOps Works? ➔ GitOps architecture enables developers to manage infrastructure operations using Git as the only source of truth. ➔ Gitops uses the operator as a deployment synchronizer that will always compare the desired state and the actual state.
DevOps CI/CD Pipeline
GitOps Workflow Actual State Desired State Operator Ensure Actual State == Desired state
Advantages of GitOps ➔ Faster Time to Market ➔ Improve Security ➔ More Reliable ➔ Improved Developer Experience ➔ Auditable ➔ Standardized Operations across the Infrastructure
GitOps Best Practices ➔ Split Repo: One For App Repository, Another For Environment/Config Repository ➔ Test the Manifests Before Commit ➔ Git Manifests Should Not Change Due To External Changes ➔ Plan How to Manage Secrets
GitOps Tools ➔ Flux CD - https://fluxcd.io ➔ Argo CD - https://argoproj.github.io/cd ➔ Jenkins X - https://jenkins-x.io
Demo ➔ Code Repository: Github ➔ CI Server: Jenkins ➔ Container Repository: Docker Hub ➔ GitOps Operator: Argo CD ➔ Configuration Manager for K8s: Kustomize ➔ Platfrorm Deployment: Kubernetes Vanilla
Thank you!

Next Level DevOps Implementation with GitOps

  • 1.
    GNOME ASIA SUMMIT2021 Next Level DevOps Implementation with GitOps Ramadoni Ashudi ramadoni.ashudi@gmail.com 20-21 November 2021
  • 2.
    Hello! I’m Ramadoni ➔IT Infra & Cloud Automation at Commonwealth Bank Indonesia ➔ Student of Magister Informatics Engineering at Universitas AMIKOM Yogyakarta https://github.com/invaleed
  • 3.
    1 Agenda ➔ What isDevOps? ➔ What is GitOps? ➔ GitOps Principals ➔ How GitOps Works? ➔ Advantage of GitOps ➔ Best Practices of GitOps ➔ GitOps Tools ➔ Demo
  • 4.
    What is DevOps? DevOpsis the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity https://aws.amazon.com/devops/what-is-devops/
  • 5.
    Process Culture & MIndset Productivity Efficiency ContinuousIntegration Continuous Delivery Microservices Monitoring & Logging Etc… Bitbucket Jenkins Docker Kubernetes ELK Jira & Confluence Etc… People Tools
  • 6.
    Basic Concepts ofDevOps Practices Manual Automatic 1 2 3 Result Result
  • 7.
    What is GitOps? GitOpsis a way of implementing Continuous Deployment for cloud native applications. https://www.gitops.tech/#what-is-gitops
  • 8.
    What is GitOps? GitOps:versioned CI/CD on top of declarative infrastructure. - Kelsey Hightower -
  • 9.
    What is GitOps? Setof practices to manage infrastructure and application deployment using Git as a single source of truth with declarative model
  • 10.
    1 GitOps Principles ➔ Describe theentire system declaratively ➔ The desired system state is versioned in Git ➔ Automatically apply approved changes to the system ➔ Ensure correctness and alert on divergence with software agents Source: https://www.weave.works
  • 11.
  • 12.
    Set “annotation” Set “replicas” Set“image” nginx-deployment.yml
  • 13.
    How GitOps Works? ➔ GitOpsarchitecture enables developers to manage infrastructure operations using Git as the only source of truth. ➔ Gitops uses the operator as a deployment synchronizer that will always compare the desired state and the actual state.
  • 14.
  • 15.
    GitOps Workflow Actual State DesiredState Operator Ensure Actual State == Desired state
  • 16.
    Advantages of GitOps ➔ FasterTime to Market ➔ Improve Security ➔ More Reliable ➔ Improved Developer Experience ➔ Auditable ➔ Standardized Operations across the Infrastructure
  • 17.
    GitOps Best Practices ➔ SplitRepo: One For App Repository, Another For Environment/Config Repository ➔ Test the Manifests Before Commit ➔ Git Manifests Should Not Change Due To External Changes ➔ Plan How to Manage Secrets
  • 18.
    GitOps Tools ➔Flux CD - https://fluxcd.io ➔ Argo CD - https://argoproj.github.io/cd ➔ Jenkins X - https://jenkins-x.io
  • 19.
    Demo ➔ CodeRepository: Github ➔ CI Server: Jenkins ➔ Container Repository: Docker Hub ➔ GitOps Operator: Argo CD ➔ Configuration Manager for K8s: Kustomize ➔ Platfrorm Deployment: Kubernetes Vanilla
  • 21.