SlideShare a Scribd company logo
DevEx | GitOps & ArgoCD
Micro FeedBack Loops
DevEx
A Cloud-Native
why?
Shifting Architecture(s)
We tend to take
our work very
seriously
Faster!, Higher!,
Stronger!
- More features
- Time To Market
- When Is it ready ?
PUT IMAGE HERE
AND CROP AS CIRCLE
Operational Overhead
- The TCO & ROI of the entire
SDLC - is defined by its
operational cost
- More CapEx - Capital (Capability)
exp
- Less OpEx - Operational exp
what
Developer to “yak shaver”
Some days … more than others
Developer to “yak shaver”
Many TOIL’s
along the road
…
how
Transform
Frustration to
Motivation ?
2019 - RadarCon
Greg Burrell Senior Reliability Engineer, Netflix
Gitlab, GitOps & ArgoCD
Much more than just Git !
Build your platform - PRODUCT THINKING
What kind of environment would you like want to work in ?
- Interfaces UI / CLI
- Logins
- Context switches …
Gitlab, GitOps & ArgoCD
Build your platform - Remote |
Offline
Shorter ! Feedback Loops
DOD - Definition of Done
- How do I know it’s done ?
- How does the team know it’s done ?
- How does management know it’s done ?
- How does NOC know it’s functional ?
- Revisit -> Re Target your CI / CD processes
- Chosen Frameworks
- Educate your teams / selfs
Solution Suggestion
that works
But …
Reduce Frustration | Micro Feedback loops ++
● Helper-tools / Utilities
● Make (my personal favorite)
● Kubectx / kubens
● Common functions
○ Set cloud provider project / profile
○ Get a secret from credentials store
● IDE -plugins
● IDE - the obvious
○ Auto lint / build / deploy
Developer Self-Service
Cloud Native | like ordering on amazon …
Self-Service Cloud Resources
cpu, ram, [ disk, network ]
Self-Service Kubernetes Resources
cpu, ram, [ disk, network ]
- selfService CI
Demo that (should) works
How will our Dev
Experience look
like with GitOps ?
If you're seeing this
slide the demo
failed miserably ;)
🚀 Boosting the Developer
Experience
Crawl, Walk, Run, Fly !
Shorten them feedbacks !
- Not just standard pipelines
- DAG’s
- Logic which speeds up the feedback loop
- Caches
- …
- Flows based on Git Operations
Talk is cheap | { Show me the code }
https://gitlab.com/fsdi/devops/meetups/obca/nodejs-app
DISTRIBUTION - CD
Gitlab-ci | release-job
release-job:
image: node:latest
tags:
- npm
stage: release
variables:
GL_TOKEN: "$ACCESS_TOKEN_GITLAB_RUNNER"
script:
- npm install @semantic-release/gitlab
- NEXT_VERSION=$(npx semantic-release | grep 'Created tag' | sed -E 's/.* ([[:digit:].]+)$/1/'
| awk '{print $NF}' | sed 's/^v//g')
- echo $NEXT_VERSION
- echo "NEXT_VERSION=$NEXT_VERSION" >> build.env
except:
- merge_requests
artifacts:
reports:
dotenv:
- build.env
only:
- dev
- master
UPDATE
COMPONENT
VERSION
33
Gitlab-ci | deploy
deploy:
stage: deploy
tags:
- ec2
image: maven:3.6.3-jdk-8
services:
- docker:dind
script:
- aws ecr get-login-password --region eu-west-2 | docker login --username AWS
--password-stdin
139114143232.dkr.ecr.eu-west-2.amazonaws.com
- docker build -t $NEXT_VERSION -t $CI_COMMIT_SHORT_SHA -f Dockerfile .
- docker tag $NEXT_VERSION $ecr_url:$NEXT_VERSION
- docker tag $CI_COMMIT_SHORT_SHA $ecr_url:$CI_PROJECT_NAME
- docker push $ecr_url:$CI_PROJECT_NAME
UPLOAD TO
REPO
34
Gitlab-ci | deploy-patch
deploy-patch:
stage: patch
image: alpine/git:latest
variables:
URL_REPO: https://gitlab.seculert.com/cwp/moti-temp/argo-apps.git
tags:
- kubernetes
before_script:
- git config --global user.email "bellam@tikalk.com"
- git config --global user.name "gitlab-runner"
- wget https://github.com/mikefarah/yq/releases/download/v4.2.0/yq_linux_amd64 -O
/usr/bin/yq &&chmod +x /usr/bin/yq
script:
- echo $NEXT_VERSION
- echo $CI_COMMIT_REF_NAME
- echo $CI_PROJECT_PATH
- pwd
- git clone https://gitlab-runner:$ACCESS_TOKEN_GITLAB_RUNNER@gitlab.seculert.com/cwp/moti-temp/argo-apps.git
- git status
- git checkout $CI_COMMIT_REF_NAME
- git branch
- cd argo-apps
- LAST_VERSION=$(yq e ".image.tag" apps/panorama/values/eu-west-1/backend-threat-detection-whitelisting.yaml)
- echo "LAST_VERSION=$LAST_VERSION" >> last_version.env
- yq eval ".image.tag = "$NEXT_VERSION"" -i apps/panorama/values/eu-west-1/backend-threat-detection-whitelisting.yaml
- git commit -am '[skip ci] $CI_COMMIT_BRANCH image update'
- git remote remove origin && git remote add origin https://gitlab-runner:$ACCESS_TOKEN_GITLAB_RUNNER@$CI_SERVER_HOST/cwp/moti-temp/argo-apps.git
- git push origin HEAD:$CI_COMMIT_REF_NAME -o ci.skip
dependencies:
- release-job
artifacts:
reports:
dotenv:
- last_version.env
only:
- master
- dev
PATCH APPS
REPO
35
Gitlab-ci | argoscd
argocd:
stage: patch
tags:
- kubernetes
image: argoproj/argocd:latest
before_script:
- argocd login argocd.eu-west-1.dev-cwp.seculert.com --insecure --username patchuser
--password $ARGOCD_PASSWORD --grpc-web
script:
- argocd app sync backend-threat-detection-whitelisting --grpc-web
- argocd app wait backend-threat-detection-whitelisting --health --timeout uint
5 --grpc-web
- argocd app get backend-threat-detection-whitelisting --grpc-web
only:
- master
- dev
dependencies:
- deploy-patch
ENSURE
SYNC /
ROLLBACK
36
“The best way to
predict the future is to
create it.
Peter Drucker
Are you ready for the cloud natvie dev experience ?

More Related Content

PDF
GitOps with ArgoCD
PDF
Gitops: the kubernetes way
PDF
GitOps and ArgoCD
PDF
CD using ArgoCD(KnolX).pdf
PDF
ArgoCD Meetup PPT final.pdf
PDF
Designing a complete ci cd pipeline using argo events, workflow and cd products
PPTX
SOC Lessons from DevOps and SRE by Anton Chuvakin
PDF
DevOps with GitHub Actions
GitOps with ArgoCD
Gitops: the kubernetes way
GitOps and ArgoCD
CD using ArgoCD(KnolX).pdf
ArgoCD Meetup PPT final.pdf
Designing a complete ci cd pipeline using argo events, workflow and cd products
SOC Lessons from DevOps and SRE by Anton Chuvakin
DevOps with GitHub Actions

What's hot (20)

PDF
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
PDF
The Power of GitOps with Flux & GitOps Toolkit
PDF
Gitops Hands On
PDF
CI:CD in Lightspeed with kubernetes and argo cd
PDF
Free GitOps Workshop + Intro to Kubernetes & GitOps
PDF
GitOps 101 Presentation.pdf
PDF
Intro to GitOps & Flux.pdf
PDF
Introduction to GitHub Actions
PPTX
Jenkins CI
PDF
Speeding up your team with GitOps
PPTX
GitOps w/argocd
PPTX
Gitlab CI/CD
PDF
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
PDF
Argocd up and running
PDF
Introduction to Kubernetes and Google Container Engine (GKE)
PDF
Introduction to GitHub Actions
PDF
Introducing GitLab (June 2018)
PDF
GitOps with Gitkube
PDF
Get started with gitops and flux
PDF
Introduction to Github Actions
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
The Power of GitOps with Flux & GitOps Toolkit
Gitops Hands On
CI:CD in Lightspeed with kubernetes and argo cd
Free GitOps Workshop + Intro to Kubernetes & GitOps
GitOps 101 Presentation.pdf
Intro to GitOps & Flux.pdf
Introduction to GitHub Actions
Jenkins CI
Speeding up your team with GitOps
GitOps w/argocd
Gitlab CI/CD
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Argocd up and running
Introduction to Kubernetes and Google Container Engine (GKE)
Introduction to GitHub Actions
Introducing GitLab (June 2018)
GitOps with Gitkube
Get started with gitops and flux
Introduction to Github Actions
Ad

Similar to Gitlab, GitOps & ArgoCD (20)

PDF
DevEx | there’s no place like k3s
PDF
MongoDB.local Austin 2018: MongoDB Ops Manager + Kubernetes
PDF
AWS Community Day 2022 David Kirk_Hybrid Local Development Environments with...
PDF
MongoDB.local DC 2018: MongoDB Ops Manager + Kubernetes
PDF
DevFest 2022 - Cloud Workstation Introduction TaiChung
PDF
Tech Talk: DevOps at LeanIX @ Startup Camp Berlin
PPTX
drupal ci cd concept cornel univercity.pptx
PDF
Improving Apache Spark Downscaling
PDF
The 2nd half. Scaling to the next^2
ODP
An OpenShift Primer for Developers to get your Code into the Cloud (PTJUG)
PPTX
Zero to Continuous Delivery on Google Cloud
PDF
Gitlab ci, cncf.sk
PDF
Continuous Integration with Scratchbox And CruiseControl
PPTX
Jenkins Job DSL plugin
PDF
Debugging Effectively in the Cloud - Felipe Fidelix - Presentation at eZ Con...
PDF
Speeding up Programs with OpenACC in GCC
PDF
Developing Microservices Directly in AKS/Kubernetes
PDF
HOW TO DRONE.IO IN CI/CD WORLD
PPTX
CI/CD and TDD in deploying kamailio
PPTX
Scaling Docker Containers using Kubernetes and Azure Container Service
DevEx | there’s no place like k3s
MongoDB.local Austin 2018: MongoDB Ops Manager + Kubernetes
AWS Community Day 2022 David Kirk_Hybrid Local Development Environments with...
MongoDB.local DC 2018: MongoDB Ops Manager + Kubernetes
DevFest 2022 - Cloud Workstation Introduction TaiChung
Tech Talk: DevOps at LeanIX @ Startup Camp Berlin
drupal ci cd concept cornel univercity.pptx
Improving Apache Spark Downscaling
The 2nd half. Scaling to the next^2
An OpenShift Primer for Developers to get your Code into the Cloud (PTJUG)
Zero to Continuous Delivery on Google Cloud
Gitlab ci, cncf.sk
Continuous Integration with Scratchbox And CruiseControl
Jenkins Job DSL plugin
Debugging Effectively in the Cloud - Felipe Fidelix - Presentation at eZ Con...
Speeding up Programs with OpenACC in GCC
Developing Microservices Directly in AKS/Kubernetes
HOW TO DRONE.IO IN CI/CD WORLD
CI/CD and TDD in deploying kamailio
Scaling Docker Containers using Kubernetes and Azure Container Service
Ad

More from Haggai Philip Zagury (20)

PDF
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
PDF
Kube Security Shifting left | Scanners & OPA
PDF
TechRadarCon 2022 | Have you built your platform yet ?
PDF
Git ops & Continuous Infrastructure with terra*
PDF
Auth experience - vol 1.0
PDF
PDF
Auth experience
PDF
Kubexperience intro session
PDF
Scaling i/o bound Microservices
PDF
Terraform 101
PDF
Chaos is a ladder !
PDF
Natively clouded Journey
PDF
Deep Learning - Continuous Operations
PDF
Terraform 101
PDF
PDF
Machine Learning - Continuous operations
PDF
Whats all the FaaS About
PDF
Modern Monitoring [ with Prometheus ]
PDF
Git internals
PPTX
Tce automation-d4-110102123012-phpapp01
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
Kube Security Shifting left | Scanners & OPA
TechRadarCon 2022 | Have you built your platform yet ?
Git ops & Continuous Infrastructure with terra*
Auth experience - vol 1.0
Auth experience
Kubexperience intro session
Scaling i/o bound Microservices
Terraform 101
Chaos is a ladder !
Natively clouded Journey
Deep Learning - Continuous Operations
Terraform 101
Machine Learning - Continuous operations
Whats all the FaaS About
Modern Monitoring [ with Prometheus ]
Git internals
Tce automation-d4-110102123012-phpapp01

Recently uploaded (20)

PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
cuic standard and advanced reporting.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
A Presentation on Artificial Intelligence
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Network Security Unit 5.pdf for BCA BBA.
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Approach and Philosophy of On baking technology
PDF
Empathic Computing: Creating Shared Understanding
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
KodekX | Application Modernization Development
PPTX
Big Data Technologies - Introduction.pptx
Chapter 3 Spatial Domain Image Processing.pdf
cuic standard and advanced reporting.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Review of recent advances in non-invasive hemoglobin estimation
Mobile App Security Testing_ A Comprehensive Guide.pdf
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
MYSQL Presentation for SQL database connectivity
A Presentation on Artificial Intelligence
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Network Security Unit 5.pdf for BCA BBA.
The AUB Centre for AI in Media Proposal.docx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Approach and Philosophy of On baking technology
Empathic Computing: Creating Shared Understanding
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
KodekX | Application Modernization Development
Big Data Technologies - Introduction.pptx

Gitlab, GitOps & ArgoCD

  • 1. DevEx | GitOps & ArgoCD Micro FeedBack Loops
  • 5. We tend to take our work very seriously
  • 6. Faster!, Higher!, Stronger! - More features - Time To Market - When Is it ready ?
  • 7. PUT IMAGE HERE AND CROP AS CIRCLE Operational Overhead - The TCO & ROI of the entire SDLC - is defined by its operational cost - More CapEx - Capital (Capability) exp - Less OpEx - Operational exp
  • 9. Developer to “yak shaver” Some days … more than others
  • 10. Developer to “yak shaver” Many TOIL’s along the road …
  • 11. how
  • 13. 2019 - RadarCon Greg Burrell Senior Reliability Engineer, Netflix
  • 15. Much more than just Git !
  • 16. Build your platform - PRODUCT THINKING What kind of environment would you like want to work in ? - Interfaces UI / CLI - Logins - Context switches …
  • 18. Build your platform - Remote | Offline
  • 19. Shorter ! Feedback Loops DOD - Definition of Done - How do I know it’s done ? - How does the team know it’s done ? - How does management know it’s done ? - How does NOC know it’s functional ?
  • 20. - Revisit -> Re Target your CI / CD processes - Chosen Frameworks - Educate your teams / selfs
  • 22. Reduce Frustration | Micro Feedback loops ++ ● Helper-tools / Utilities ● Make (my personal favorite) ● Kubectx / kubens ● Common functions ○ Set cloud provider project / profile ○ Get a secret from credentials store ● IDE -plugins ● IDE - the obvious ○ Auto lint / build / deploy
  • 23. Developer Self-Service Cloud Native | like ordering on amazon …
  • 24. Self-Service Cloud Resources cpu, ram, [ disk, network ]
  • 25. Self-Service Kubernetes Resources cpu, ram, [ disk, network ]
  • 27. Demo that (should) works How will our Dev Experience look like with GitOps ?
  • 28. If you're seeing this slide the demo failed miserably ;)
  • 29. 🚀 Boosting the Developer Experience Crawl, Walk, Run, Fly !
  • 30. Shorten them feedbacks ! - Not just standard pipelines - DAG’s - Logic which speeds up the feedback loop - Caches - … - Flows based on Git Operations
  • 31. Talk is cheap | { Show me the code } https://gitlab.com/fsdi/devops/meetups/obca/nodejs-app
  • 33. Gitlab-ci | release-job release-job: image: node:latest tags: - npm stage: release variables: GL_TOKEN: "$ACCESS_TOKEN_GITLAB_RUNNER" script: - npm install @semantic-release/gitlab - NEXT_VERSION=$(npx semantic-release | grep 'Created tag' | sed -E 's/.* ([[:digit:].]+)$/1/' | awk '{print $NF}' | sed 's/^v//g') - echo $NEXT_VERSION - echo "NEXT_VERSION=$NEXT_VERSION" >> build.env except: - merge_requests artifacts: reports: dotenv: - build.env only: - dev - master UPDATE COMPONENT VERSION 33
  • 34. Gitlab-ci | deploy deploy: stage: deploy tags: - ec2 image: maven:3.6.3-jdk-8 services: - docker:dind script: - aws ecr get-login-password --region eu-west-2 | docker login --username AWS --password-stdin 139114143232.dkr.ecr.eu-west-2.amazonaws.com - docker build -t $NEXT_VERSION -t $CI_COMMIT_SHORT_SHA -f Dockerfile . - docker tag $NEXT_VERSION $ecr_url:$NEXT_VERSION - docker tag $CI_COMMIT_SHORT_SHA $ecr_url:$CI_PROJECT_NAME - docker push $ecr_url:$CI_PROJECT_NAME UPLOAD TO REPO 34
  • 35. Gitlab-ci | deploy-patch deploy-patch: stage: patch image: alpine/git:latest variables: URL_REPO: https://gitlab.seculert.com/cwp/moti-temp/argo-apps.git tags: - kubernetes before_script: - git config --global user.email "bellam@tikalk.com" - git config --global user.name "gitlab-runner" - wget https://github.com/mikefarah/yq/releases/download/v4.2.0/yq_linux_amd64 -O /usr/bin/yq &&chmod +x /usr/bin/yq script: - echo $NEXT_VERSION - echo $CI_COMMIT_REF_NAME - echo $CI_PROJECT_PATH - pwd - git clone https://gitlab-runner:$ACCESS_TOKEN_GITLAB_RUNNER@gitlab.seculert.com/cwp/moti-temp/argo-apps.git - git status - git checkout $CI_COMMIT_REF_NAME - git branch - cd argo-apps - LAST_VERSION=$(yq e ".image.tag" apps/panorama/values/eu-west-1/backend-threat-detection-whitelisting.yaml) - echo "LAST_VERSION=$LAST_VERSION" >> last_version.env - yq eval ".image.tag = "$NEXT_VERSION"" -i apps/panorama/values/eu-west-1/backend-threat-detection-whitelisting.yaml - git commit -am '[skip ci] $CI_COMMIT_BRANCH image update' - git remote remove origin && git remote add origin https://gitlab-runner:$ACCESS_TOKEN_GITLAB_RUNNER@$CI_SERVER_HOST/cwp/moti-temp/argo-apps.git - git push origin HEAD:$CI_COMMIT_REF_NAME -o ci.skip dependencies: - release-job artifacts: reports: dotenv: - last_version.env only: - master - dev PATCH APPS REPO 35
  • 36. Gitlab-ci | argoscd argocd: stage: patch tags: - kubernetes image: argoproj/argocd:latest before_script: - argocd login argocd.eu-west-1.dev-cwp.seculert.com --insecure --username patchuser --password $ARGOCD_PASSWORD --grpc-web script: - argocd app sync backend-threat-detection-whitelisting --grpc-web - argocd app wait backend-threat-detection-whitelisting --health --timeout uint 5 --grpc-web - argocd app get backend-threat-detection-whitelisting --grpc-web only: - master - dev dependencies: - deploy-patch ENSURE SYNC / ROLLBACK 36
  • 37. “The best way to predict the future is to create it. Peter Drucker Are you ready for the cloud natvie dev experience ?