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

Building a Continuous Delivery Pipeline in 5 minutes

Building a Continuous Delivery Pipeline in 5 minutes

David Winter from Made Tech will be talking about using Terraform to build a Continuous Delivery pipeline. David will show us how Made are using Terraform, Ansible and Jenkins to deploy their client's applications to AWS with Continuous Delivery. This setup is allowing Made to get new applications up and running in production with just a few commands.

David Winter

March 16, 2016
Tweet

Other Decks in Technology

Transcript

  1. Building a
    Continuous Delivery
    Pipeline
    in 5 minutes

    View Slide

  2. @davidwinter
    • Work at Made Tech
    • Have a passion for
    automating
    infrastructure and
    tooling
    • Co-author of our new
    book ‘A Field Guide to
    Continuous Delivery’
    WE’RE HIRING!

    View Slide

  3. Before we start…

    View Slide

  4. What is
    Continuous Delivery
    to us?

    View Slide

  5. Continuous Delivery =
    Continuous Integration +
    Automated Deploys

    View Slide

  6. Continuous Integration

    View Slide

  7. Commit early and often

    View Slide

  8. Push to master hourly

    View Slide

  9. Faster feedback loop

    View Slide

  10. Focus on delivering
    smaller releasable features

    View Slide

  11. Boring Deploys
    Automated Deploys

    View Slide

  12. More frequent deploys

    View Slide

  13. Smaller deploys

    View Slide

  14. Deployments are easier…

    View Slide

  15. …and less scary

    View Slide

  16. Build Continuous Staging Production
    Continuous Pipeline

    View Slide

  17. Build Continuous Staging Production
    Continuous Pipeline

    View Slide

  18. Build Continuous Staging Production
    Continuous Pipeline

    View Slide

  19. Build Continuous Staging Production
    Continuous Pipeline

    View Slide

  20. Build Continuous Staging Production
    Continuous Pipeline

    View Slide

  21. We are
    Continuous Delivery
    evangelists

    View Slide

  22. Every client project
    has a pipeline

    View Slide

  23. Deploy to production*
    from Day One
    *or production-like environment

    View Slide

  24. Historically setup has
    been quite manual…

    View Slide

  25. Automate all the things

    View Slide

  26. Create a pipeline with
    one command
    make jenkins

    View Slide

  27. Our
    Continuous Delivery
    stack
    Terraform Ansible Jenkins Makefile
    Orchestration Provisioning Pipeline Glue

    View Slide

  28. Terraform Ansible Jenkins Makefile
    Orchestration Provisioning Pipeline Glue

    View Slide

  29. Terraform Ansible Jenkins Makefile
    Orchestration Provisioning Pipeline Glue
    Where to install to?

    View Slide

  30. Terraform Ansible Jenkins Makefile
    Orchestration Provisioning Pipeline Glue
    What to install?

    View Slide

  31. Terraform Ansible Jenkins Makefile
    Orchestration Provisioning Pipeline Glue

    View Slide

  32. Terraform Ansible Jenkins Makefile
    Orchestration Provisioning Pipeline Glue

    View Slide

  33. Terraform Ansible Jenkins Makefile
    Orchestration Provisioning Pipeline Glue

    View Slide

  34. An example app

    View Slide

  35. Hosted on a PaaS:
    Pivotal

    View Slide

  36. Ruby on Rails

    View Slide

  37. Demo time

    View Slide

  38. Taking it further

    View Slide

  39. Inject project as
    argument to Makefile

    View Slide

  40. Optional support for
    blue/green
    deployments

    View Slide

  41. Canary deploys

    View Slide

  42. Support for Capistrano
    and more

    View Slide

  43. Build and deploy steps
    with docker

    View Slide

  44. Support multiple
    projects/pipelines

    View Slide

  45. Our book
    madetech.com/book

    View Slide

  46. Any questions?

    View Slide