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

Why use Docker and Compose in your CI?

Charly
August 02, 2021

Why use Docker and Compose in your CI?

This is a talk I gave in Ruby Conf BR 2016. This presentation shows the importance of use practices like CD and CI in your projects, the main concepts and benefits and an example deploying a small app with Ruby.

Charly

August 02, 2021
Tweet

More Decks by Charly

Other Decks in Programming

Transcript

  1. Here is where CI go into scene Planning Meeting Build

    Unit Test Integration, Acceptance.. Test Manual Approval Code change ready to go live
  2. • Maintain a single source repository • Automate the build

    • Make your build self-testing • Every commit should build on an integration machine • Keep the build fast • Test in a clone of the production environment • Everyone can see what is happening • Make it easy for anyone to get the latest executable • Automate deployment
  3. • Maintain a single source repository • Automate the build

    • Make your build self-testing • Every commit should build on an integration machine • Keep the build fast • Test in a clone of the production environment • Everyone can see what is happening • Make it easy for anyone to get the latest executable • Automate deployment
  4. • Maintain a single source repository • Automate the build

    • Make your build self-testing • Every commit should build on an integration machine • Keep the build fast • Test in a clone of the production environment • Everyone can see what is happening • Make it easy for anyone to get the latest executable • Automate deployment
  5. • Maintain a single source repository • Automate the build

    • Make your build self-testing • Every commit should build on an integration machine • Keep the build fast • Test in a clone of the production environment • Everyone can see what is happening • Make it easy for anyone to get the latest executable • Automate deployment
  6. • Maintain a single source repository • Automate the build

    • Make your build self-testing • Every commit should build on an integration machine • Keep the build fast • Test in a clone of the production environment • Everyone can see what is happening • Make it easy for anyone to get the latest executable • Automate deployment
  7. • Maintain a single source repository • Automate the build

    • Make your build self-testing • Every commit should build on an integration machine • Keep the build fast • Test in a clone of the production environment • Everyone can see what is happening • Make it easy for anyone to get the latest executable • Automate deployment
  8. • Maintain a single source repository • Automate the build

    • Make your build self-testing • Every commit should build on an integration machine • Keep the build fast • Test in a clone of the production environment • Everyone can see what is happening • Make it easy for anyone to get the latest executable • Automate deployment
  9. • Maintain a single source repository • Automate the build

    • Make your build self-testing • Every commit should build on an integration machine • Keep the build fast • Test in a clone of the production environment • Everyone can see what is happening • Make it easy for anyone to get the latest executable • Automate deployment
  10. • Maintain a single source repository • Automate the build

    • Make your build self-testing • Every commit should build on an integration machine • Keep the build fast • Test in a clone of the production environment • Everyone can see what is happening • Make it easy for anyone to get the latest executable • Automate deployment
  11. Continuous Deployment is closely related to Continuous Integration and refers

    to the release into production of software that passes the automated tests.
  12. “Continuous Delivery is a software development discipline where you build

    software in such a way that the software can be released to production at any time” Martin Fowler
  13. Main principles and practices • Create a repeatable, reliable way

    to release software • Everybody is responsible for the delivery process • Automate almost everything
  14. • VM is a completely virtualized environment that only abstracts

    the physical hardware. • VM comes with its own BIOS, virtualized network adapters, disk storage, CPU and a complete operating system.
  15. • Container abstraction happens at the operating system level. •

    Each container user shares the same operating system, kernel instance, network connection and base file system, each instance of the application will run within a separate user space.
  16. Let’s use Docker! Is it the best for your project

    requirements? Spike before choosing Do CD, if you are not doing it yet
  17. Let’s use Docker! Is it the best for your project

    requirements? Spike before choosing Do CD, if you are not doing it yet
  18. Let’s use Docker! Is it the best for your project

    requirements? Spike before choosing Do CD, if you are not doing it yet