Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Gitlab, GitOps & ArgoCD

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Hier ansehen

1 von 37 Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Ähnlich wie Gitlab, GitOps & ArgoCD (20)

Anzeige

Weitere von Haggai Philip Zagury (20)

Aktuellste (20)

Anzeige

Gitlab, GitOps & ArgoCD

  1. 1. DevEx | GitOps & ArgoCD Micro FeedBack Loops
  2. 2. DevEx A Cloud-Native
  3. 3. why?
  4. 4. Shifting Architecture(s)
  5. 5. We tend to take our work very seriously
  6. 6. Faster!, Higher!, Stronger! - More features - Time To Market - When Is it ready ?
  7. 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
  8. 8. what
  9. 9. Developer to “yak shaver” Some days … more than others
  10. 10. Developer to “yak shaver” Many TOIL’s along the road …
  11. 11. how
  12. 12. Transform Frustration to Motivation ?
  13. 13. 2019 - RadarCon Greg Burrell Senior Reliability Engineer, Netflix
  14. 14. Much more than just Git !
  15. 15. Build your platform - PRODUCT THINKING What kind of environment would you like want to work in ? - Interfaces UI / CLI - Logins - Context switches …
  16. 16. Build your platform - Remote | Offline
  17. 17. 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 ?
  18. 18. - Revisit -> Re Target your CI / CD processes - Chosen Frameworks - Educate your teams / selfs
  19. 19. Solution Suggestion that works But …
  20. 20. 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
  21. 21. Developer Self-Service Cloud Native | like ordering on amazon …
  22. 22. Self-Service Cloud Resources cpu, ram, [ disk, network ]
  23. 23. Self-Service Kubernetes Resources cpu, ram, [ disk, network ]
  24. 24. - selfService CI
  25. 25. Demo that (should) works How will our Dev Experience look like with GitOps ?
  26. 26. If you're seeing this slide the demo failed miserably ;)
  27. 27. 🚀 Boosting the Developer Experience Crawl, Walk, Run, Fly !
  28. 28. Shorten them feedbacks ! - Not just standard pipelines - DAG’s - Logic which speeds up the feedback loop - Caches - … - Flows based on Git Operations
  29. 29. Talk is cheap | { Show me the code } https://gitlab.com/fsdi/devops/meetups/obca/nodejs-app
  30. 30. DISTRIBUTION - CD
  31. 31. 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
  32. 32. 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
  33. 33. 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
  34. 34. 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
  35. 35. “The best way to predict the future is to create it. Peter Drucker Are you ready for the cloud natvie dev experience ?

×