SlideShare a Scribd company logo
1 of 31
Download to read offline
The Three Musketeers
By Frederic Lemay - 17 October 2017
“At least don’t be boring!”
Agenda
• Me

• Amaysim

• CI & Pipelines

• The Three Musketeers

• Demo
Me
• Tech lead at amaysim

• 5 years at ThoughtWorks as a Senior consultant

• First 2.5 years as Developer

• Ruby, Java, NodeJS, …

• Last 2.5 years as DevOps

• Docker ❤, AWS, Serverless, Ansible, Jenkins,
TeamCity …
amaysim
• Growing company

• Monolithic apps,
Microservices, Serverless
apps

• Go, NodeJS, Ruby, React,
ColdFusion

• Docker, Rancher, AWS, GoCD,
TeamCity
CI
Snap-CI
Hosted Solution
Snap-CI
• No need to manage you own CI infrastructure

• Easy to setup a pipeline

• Restrictive

• Specific language versions

• Limited choice of databases

• Not latest version of docker

• No Docker Compose
Hosted Solution
GoCD
Self-Hosted Solution
GoCD
• Freedom!

• But in a traditional setup:

• Agents have different
languages and versions
installed (ruby, nodejs,
golang, java)

• Might use different package/
language managers (yarn,
npm, rbenv, nvm)

• Time consuming to manage
and maintain many agents
Many cats to take care of!
Self-Hosted Solution
Can we do better?
Docker
• Runs on Mac, Windows,
and Linux

• Versatile: test, build,
deploy, run

• Encapsulates
technologies
GoCD with Docker
• Agents have fewer tools
installed (Docker, Docker
Compose, git, etc)

• Freedom to developers to use
their own tools within a
container

• Creating and configuring
agents is more straight
forward
Fewer cats, easier to manage!
Pipeline
BuildTest
Deploy
to Dev
…
Deploy
to Prod
Common pipeline
• Most of the steps are in bash scripts and done directly
through the UI

• Very common across organisations

• How do you test the scripts?

• Some complicated scripts are inside the project repository
Can we do better?
Makefile
• Already pre-installed in
most systems

• Pipeline steps (code) of a
project is captured and
encapsulated in a
Makefile

• Most of the Makefile
targets would run inside a
Docker container
make
build
make
test
make
deploy
…
make
deploy
Common pipeline
• Can be tested locally

• Can be run on my mac, on your linux computer, or your
boss windows machine!
Can we do better?
Docker Compose
• Manages containers in a neat
way

• Helps the Makefile to stay
concise therefore easier to
maintain

• Shines when a task need more
than one container

• ex: testing with a database
I now give you…
The Three Musketeers
Why using them?
• Consistency: 

• Pipelines can be tested and run anywhere!

• Most projects follow the same pattern (test, build, deploy)

• Can move to another CI in less time!

• Control: 

• Exact version and dependencies

• Pipeline code is checked in

• Confidence: 

• Thorough Unit and Integration tests before committing

• Same tests will be run in CI
Some benefits
• Developers: 

• Empower them to manage pipelines

• Get up to speed with different projects

• DevOps: 

• Agents are simpler to set up and maintain

• Easier to migrate to another CI
The Three Musketeers at
amaysim
• Most of the pipelines in GoCD
and projects use them

• GoCD agents only run Docker
Docker Compose, git, etc

• Developers and DevOps
people know about the Three
Musketeers
Demo
• Test, build, and deploy a
serverless function written in
Go to AWS

• github.com/flemay/
3musketeers

• github.com/yunspace/
serverless-golang

• github.com/amaysim-au/
docker-serverless
thank you
Questions?

More Related Content

What's hot

Who needs containers in a serverless world
Who needs containers in a serverless worldWho needs containers in a serverless world
Who needs containers in a serverless world
Matthias Luebken
 

What's hot (20)

Mini-training: Let’s Git It!
Mini-training: Let’s Git It!Mini-training: Let’s Git It!
Mini-training: Let’s Git It!
 
Next generation pipelines
Next generation pipelinesNext generation pipelines
Next generation pipelines
 
Powerful Automation Made Simple
Powerful Automation Made SimplePowerful Automation Made Simple
Powerful Automation Made Simple
 
Your Auto-Scaling Bot - Volkan Tufecki
Your Auto-Scaling Bot - Volkan TufeckiYour Auto-Scaling Bot - Volkan Tufecki
Your Auto-Scaling Bot - Volkan Tufecki
 
Stabilizing SE Build - Selenium conf 2013
Stabilizing SE Build - Selenium conf 2013 Stabilizing SE Build - Selenium conf 2013
Stabilizing SE Build - Selenium conf 2013
 
ASP.NET 5 - Microsoft's Web development platform reimagined
ASP.NET 5 - Microsoft's Web development platform reimaginedASP.NET 5 - Microsoft's Web development platform reimagined
ASP.NET 5 - Microsoft's Web development platform reimagined
 
Going serverless with aws
Going serverless with awsGoing serverless with aws
Going serverless with aws
 
Command box, Package Manager, Automation, REPL
Command box, Package Manager, Automation, REPLCommand box, Package Manager, Automation, REPL
Command box, Package Manager, Automation, REPL
 
Symfony vs. Message Brokers
Symfony  vs.  Message BrokersSymfony  vs.  Message Brokers
Symfony vs. Message Brokers
 
OpenWhisk Go Runtime
OpenWhisk Go RuntimeOpenWhisk Go Runtime
OpenWhisk Go Runtime
 
Who needs containers in a serverless world
Who needs containers in a serverless worldWho needs containers in a serverless world
Who needs containers in a serverless world
 
OpenWhisk Go/Swift/Binaries Runtime
OpenWhisk Go/Swift/Binaries RuntimeOpenWhisk Go/Swift/Binaries Runtime
OpenWhisk Go/Swift/Binaries Runtime
 
Nodejs OC Docker and Node
Nodejs OC Docker and NodeNodejs OC Docker and Node
Nodejs OC Docker and Node
 
calmio-cicd-containers
calmio-cicd-containerscalmio-cicd-containers
calmio-cicd-containers
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Travis CI
Travis CITravis CI
Travis CI
 
Vincit Teatime 2015.2 - Niko Kurtti: SaaSiin pa(i)nostusta
Vincit Teatime 2015.2 - Niko Kurtti: SaaSiin pa(i)nostustaVincit Teatime 2015.2 - Niko Kurtti: SaaSiin pa(i)nostusta
Vincit Teatime 2015.2 - Niko Kurtti: SaaSiin pa(i)nostusta
 
Mobycraft - Docker in 8-bit by Aditya Gupta
Mobycraft - Docker in 8-bit by Aditya Gupta Mobycraft - Docker in 8-bit by Aditya Gupta
Mobycraft - Docker in 8-bit by Aditya Gupta
 
Ansible E2E Testing
Ansible E2E TestingAnsible E2E Testing
Ansible E2E Testing
 
Immutable infrastructure with Boxfuse
Immutable infrastructure with BoxfuseImmutable infrastructure with Boxfuse
Immutable infrastructure with Boxfuse
 

Similar to The Three Musketeers

Fits docker into devops
Fits docker into devopsFits docker into devops
Fits docker into devops
Evans Ye
 
Lightweight Virtualization Docker in Practice
Lightweight Virtualization Docker in PracticeLightweight Virtualization Docker in Practice
Lightweight Virtualization Docker in Practice
Docker, Inc.
 

Similar to The Three Musketeers (20)

Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
An introduction to configuring Domino for Docker
An introduction to configuring Domino for DockerAn introduction to configuring Domino for Docker
An introduction to configuring Domino for Docker
 
Fits docker into devops
Fits docker into devopsFits docker into devops
Fits docker into devops
 
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
 
Django and Docker
Django and DockerDjango and Docker
Django and Docker
 
Docker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochraneDocker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken Cochrane
 
Efficient Parallel Testing with Docker by Laura Frank
Efficient Parallel Testing with Docker by Laura FrankEfficient Parallel Testing with Docker by Laura Frank
Efficient Parallel Testing with Docker by Laura Frank
 
Why to docker
Why to dockerWhy to docker
Why to docker
 
Shipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSShipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOS
 
ExpoQA 2017 Docker and CI
ExpoQA 2017 Docker and CIExpoQA 2017 Docker and CI
ExpoQA 2017 Docker and CI
 
Docker & ci
Docker & ciDocker & ci
Docker & ci
 
Building Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with DockerBuilding Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with Docker
 
Containers, microservices and serverless for realists
Containers, microservices and serverless for realistsContainers, microservices and serverless for realists
Containers, microservices and serverless for realists
 
SQL Server in DevOps Town Hall Webinar
SQL Server in DevOps Town Hall WebinarSQL Server in DevOps Town Hall Webinar
SQL Server in DevOps Town Hall Webinar
 
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
CT Software Developers Meetup: Using Docker and Vagrant Within A GitHub Pull ...
 
Play Framework + Docker + CircleCI + AWS + EC2 Container Service
Play Framework + Docker + CircleCI + AWS + EC2 Container ServicePlay Framework + Docker + CircleCI + AWS + EC2 Container Service
Play Framework + Docker + CircleCI + AWS + EC2 Container Service
 
Handling 1 Billion Requests/hr with Minimal Latency Using Docker
Handling 1 Billion Requests/hr with Minimal Latency Using DockerHandling 1 Billion Requests/hr with Minimal Latency Using Docker
Handling 1 Billion Requests/hr with Minimal Latency Using Docker
 
Lightweight Virtualization Docker in Practice
Lightweight Virtualization Docker in PracticeLightweight Virtualization Docker in Practice
Lightweight Virtualization Docker in Practice
 

Recently uploaded

%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Recently uploaded (20)

WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
WSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in UgandaWSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in Uganda
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
 
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public AdministrationWSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
WSO2CON 2024 - How CSI Piemonte Is Apifying the Public Administration
 
WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...
WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...
WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 

The Three Musketeers

  • 1. The Three Musketeers By Frederic Lemay - 17 October 2017
  • 2. “At least don’t be boring!”
  • 3. Agenda • Me • Amaysim • CI & Pipelines • The Three Musketeers • Demo
  • 4. Me • Tech lead at amaysim • 5 years at ThoughtWorks as a Senior consultant • First 2.5 years as Developer • Ruby, Java, NodeJS, … • Last 2.5 years as DevOps • Docker ❤, AWS, Serverless, Ansible, Jenkins, TeamCity …
  • 5. amaysim • Growing company • Monolithic apps, Microservices, Serverless apps • Go, NodeJS, Ruby, React, ColdFusion • Docker, Rancher, AWS, GoCD, TeamCity
  • 6. CI
  • 8. Snap-CI • No need to manage you own CI infrastructure • Easy to setup a pipeline • Restrictive • Specific language versions • Limited choice of databases • Not latest version of docker • No Docker Compose Hosted Solution
  • 9.
  • 11. GoCD • Freedom! • But in a traditional setup: • Agents have different languages and versions installed (ruby, nodejs, golang, java) • Might use different package/ language managers (yarn, npm, rbenv, nvm) • Time consuming to manage and maintain many agents Many cats to take care of! Self-Hosted Solution
  • 12. Can we do better?
  • 13. Docker • Runs on Mac, Windows, and Linux • Versatile: test, build, deploy, run • Encapsulates technologies
  • 14. GoCD with Docker • Agents have fewer tools installed (Docker, Docker Compose, git, etc) • Freedom to developers to use their own tools within a container • Creating and configuring agents is more straight forward Fewer cats, easier to manage!
  • 16. BuildTest Deploy to Dev … Deploy to Prod Common pipeline • Most of the steps are in bash scripts and done directly through the UI • Very common across organisations • How do you test the scripts? • Some complicated scripts are inside the project repository
  • 17. Can we do better?
  • 18. Makefile • Already pre-installed in most systems • Pipeline steps (code) of a project is captured and encapsulated in a Makefile • Most of the Makefile targets would run inside a Docker container
  • 19. make build make test make deploy … make deploy Common pipeline • Can be tested locally • Can be run on my mac, on your linux computer, or your boss windows machine!
  • 20.
  • 21. Can we do better?
  • 22. Docker Compose • Manages containers in a neat way • Helps the Makefile to stay concise therefore easier to maintain • Shines when a task need more than one container • ex: testing with a database
  • 23.
  • 24. I now give you…
  • 26. Why using them? • Consistency: • Pipelines can be tested and run anywhere! • Most projects follow the same pattern (test, build, deploy) • Can move to another CI in less time! • Control: • Exact version and dependencies • Pipeline code is checked in • Confidence: • Thorough Unit and Integration tests before committing • Same tests will be run in CI
  • 27. Some benefits • Developers: • Empower them to manage pipelines • Get up to speed with different projects • DevOps: • Agents are simpler to set up and maintain • Easier to migrate to another CI
  • 28. The Three Musketeers at amaysim • Most of the pipelines in GoCD and projects use them • GoCD agents only run Docker Docker Compose, git, etc • Developers and DevOps people know about the Three Musketeers
  • 29. Demo • Test, build, and deploy a serverless function written in Go to AWS • github.com/flemay/ 3musketeers • github.com/yunspace/ serverless-golang • github.com/amaysim-au/ docker-serverless