Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Dynamic Environments Using Helm and Kubernetes

Dynamic Environments Using Helm and Kubernetes

Lucas Santos

May 19, 2020
Tweet

More Decks by Lucas Santos

Other Decks in Technology

Transcript

  1. Dynamic Environments
    Using #Helm and #Kubernetes

    View full-size slide

  2. cloud advocate_
    quem sou eu_
    /khaosdoctor @_staticvoid
    lsantos.dev
    /khaosdoctor
    [email protected]

    View full-size slide

  3. obarra.co
    trainingcenter.io

    View full-size slide

  4. Development teams_

    View full-size slide

  5. Team
    Code Tests Staging
    QA

    View full-size slide

  6. The problem_

    View full-size slide

  7. Dev
    Code Tests
    Dev
    Testing...
    Staging

    View full-size slide

  8. The perfect world_

    View full-size slide

  9. Dev 2
    Code Tests
    Staging 2
    Dev 1
    Dev 3
    Staging 1
    Staging 3

    View full-size slide

  10. How to achieve this?

    View full-size slide

  11. - Container Orchestrator
    - Developed by Google in 2000
    - Scaling, state and version
    management
    - Cluster based
    - Declarative

    View full-size slide

  12. - Kubernetes package manager
    - Allows for manifest files to be
    grouped into Charts
    - Templating
    - Easier way to create and tear
    down environments

    View full-size slide

  13. How do we start_?

    View full-size slide

  14. We create a Helm chart for our
    application

    View full-size slide

  15. helm install

    View full-size slide

  16. Design patterns_

    View full-size slide

  17. Design Patterns
    - Manual testing environments by branch
    - Automatic testing environment by PR on release branch
    - Automatic testing environment by a "RC" tag
    - Automatic testing environment at each new version
    - Hybrid using manual branching with PRs on release

    View full-size slide

  18. tips_
    - Tearing down an environment is equally important as creating one
    - Do NOT use the production database (yeah… It happened)
    - Not all features need a testing environment
    - Make the environment creation and destruction as a manual approach
    - Do NOT use production passwords anywhere else (yeah… It also happened)
    - Keep it simple
    - Don't early-optimise

    View full-size slide

  19. referências_
    - helm.sh
    - kubernetes.io
    - dev.azure.com/lsantos-projects/helm-dynamic-envs
    - github.com/khaosdoctor/helm-dynamic-envs
    - helm.sh/docs/developing_charts/
    - helm.sh/docs/chart_template_guide/

    View full-size slide

  20. referências_
    - https://aka.ms/aks-workshop-intro
    - https://aka.ms/helm-intro
    - https://aka.ms/helm-charts-intro
    - https://aka.ms/helm-az-cr
    - https://aka.ms/az-devops-docs
    - https://aka.ms/az-kubernetes
    - https://aka.ms/az-aks-tutorial

    View full-size slide

  21. /khaosdoctor @_staticvoid
    lsantos.dev
    /khaosdoctor
    obrigado_

    View full-size slide