Slide 1

Slide 1 text

Why use Docker and Compose in your CI? Carla Suárez | @carlast22

Slide 2

Slide 2 text

Why use Docker and Compose in your CI? Carla Suárez | @carlast22

Slide 3

Slide 3 text

Hi! / Oi! Ecuatoriana Journalist | Developer Python, Ruby, HTML, CSS Learning about Devops

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

CI and CD? What is this? Concepts and importance in deployment

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Trunk based development

Slide 8

Slide 8 text

Here is where CI go into scene Planning Meeting Build Unit Test Integration, Acceptance.. Test Manual Approval Code change ready to go live

Slide 9

Slide 9 text

The practices for CI

Slide 10

Slide 10 text

● 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

Slide 11

Slide 11 text

● 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

Slide 12

Slide 12 text

● 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

Slide 13

Slide 13 text

● 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

Slide 14

Slide 14 text

● 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

Slide 15

Slide 15 text

● 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

Slide 16

Slide 16 text

● 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

Slide 17

Slide 17 text

● 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

Slide 18

Slide 18 text

● 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

Slide 19

Slide 19 text

Continuous Deployment is closely related to Continuous Integration and refers to the release into production of software that passes the automated tests.

Slide 20

Slide 20 text

“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

Slide 21

Slide 21 text

Main principles and practices ● Create a repeatable, reliable way to release software ● Everybody is responsible for the delivery process ● Automate almost everything

Slide 22

Slide 22 text

Docker and Compose What are and how can it help you in CD?

Slide 23

Slide 23 text

Have you met Docker yet?

Slide 24

Slide 24 text

Dockerfile Gemfile

Slide 25

Slide 25 text

And Docker Compose? Docker’s friend

Slide 26

Slide 26 text

docker-compose.yml

Slide 27

Slide 27 text

CI Workflow

Slide 28

Slide 28 text

What is Registry?

Slide 29

Slide 29 text

How about Docker Compose?

Slide 30

Slide 30 text

Using Docker and Compose

Slide 31

Slide 31 text

The same in different environments Docker image deploys in every environment

Slide 32

Slide 32 text

Deploy all your application needs

Slide 33

Slide 33 text

Automated testing

Slide 34

Slide 34 text

Dedicated container for each application

Slide 35

Slide 35 text

Reduce time and cost

Slide 36

Slide 36 text

Stability and resilience

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

VM’s vs. Containers

Slide 39

Slide 39 text

● 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.

Slide 40

Slide 40 text

● 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.

Slide 41

Slide 41 text

Let’s use Docker!

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

Obrigada! [email protected] @carlast22