O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Helm at reddit: from local dev, staging, to production

2.563 visualizações

Publicada em

How Reddit uses Helm in local dev, staging, and production. An overview of the primary pieces (Helm and Docker repos, CI), supporting tooling, and some best practices we've identified.

Recording: https://www.youtube.com/watch?v=7Qxuo9W5SlY

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Helm at reddit: from local dev, staging, to production

  1. 1. Helm at Reddit: From Local Dev, Staging, to Production Greg Taylor /u/gctaylor Reddit Infrastructure
  2. 2. In the beginning January of 2016... 2
  3. 3. Service Service Service Service More recently 3 Monolith
  4. 4. Growing pains 4 ● Transitioning to development in a SOA ● Inter-service testing ● Preparing services for staging/prod ● Enabling service ownership
  5. 5. 5
  6. 6. Today 6 ● Working on a local dev story ● Mature branch-based staging system ● Production has a few early adopters, with more rapid expansion in Q2 ● Helm drives all three of the above
  7. 7. Builds and Artifacts
  8. 8. Builder AWS Account 8
  9. 9. Artifact Distribution to other AWS Accounts 9
  10. 10. Helm in Local Dev
  11. 11. WIP: Local development overview 11 ● Kubernetes + Local Dev = kev ● The kev CLI calls out to Helm for heavy lifting ● Uses our Builder AWS Account’s Helm Chart and Docker Image repositories (like prod and staging) ● Developers should not need to be familiar with Kubernetes to work on their applications
  12. 12. Helm in Staging
  13. 13. 13 Kubernetes + Staging = ?
  14. 14. Kage 14
  15. 15. Kage overview 15 ● CI-Driven (Drone CI + drone-helm) ● git pushes to canonical repo trigger builds+deploys ● Separate stateful services (DBs/caches/etc) per-branch ● Our full tapestry of services can be staged and swapped ● No Kubernetes experience is needed to use Kage
  16. 16. Step 1: Developer git pushes a branch 16
  17. 17. Step 2: Staging deploys the branch’s images 17
  18. 18. Helm in Production
  19. 19. Step 1: Developer git pushes to master branch 19
  20. 20. Step 2: Developer updates cluster repo helmfile 20
  21. 21. What does a helmfile look like? 21
  22. 22. Closing remarks
  23. 23. Greg’s soapbox 23 ● Be boring, especially in the early goings ● Cookiecutter / prompt + generate what you can ● If you have non-Infra-oriented “customers”, don’t force them to learn Kubernetes at any deep level ● Use Helm to declare your cluster’s workload ● Code review for Helm Charts is crucial!
  24. 24. Presenter Info + Relevant Links 24 ● Greg Taylor -- Reddit Infrastructure ● /u/gctaylor ● @gctaylor ● github.com/gtaylor ● Drone CI -- drone.io ● drone-helm -- github.com/ipedrazas/drone-helm ● helmfile -- github.com/roboll/helmfile
  25. 25. reddit.com/jobs

×