SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
Puppet and AWS is easy …… ?
Cara Crawford and Scott Coulton
Who are we?
DevOps/Infrastructure Manager
2	
  
Cara Crawford
•  8 + years development experience
•  6 + years operational sysadmin experience
•  Extensive experience across website solutions in both datacentre
and cloud solutions across Linux and Windows environments
	
  	
  
@cara_p
Who are we?
DevOps Solution Architect
3	
  
Scott Coulton
•  10 + years hosting solutions experience
•  Extensive experience in architecture across AWS, Puppet, Linux,
Docker and all things open source
Sc
	
  	
  
	
  	
  
h#ps://github.com/sco#y-­‐c	
  
h#ps://
registry.hub.docker.com
/repos/sco#yc/	
  
h#ps://forge.puppetlabs.com/
sco#yc	
  
@sco#coulton	
  
Who are we?
4	
  
Healthdirect Australia manages the following healthcare
service:
•  Healthdirect nurse helpline and health information
•  After hours GP helpline
•  Pregnancy, Birth and Baby
•  Mindhealthconnect
•  National Health Service Directory
•  My Aged Care
•  Video Call Consulting
	
  	
  
What we were trying to solve
August 2013
5	
  
•  Majority of servers located in AWS
•  Manual deployments
•  Cloning for provisioning
•  Inconsistent environments
•  No CD
•  No CI
•  No Infrastructure as code
•  No Automated testing
•  Very limited automation
	
  	
  
Deployments would take weeks or months with a high level of
developer input onto cloned servers
How did we solve it
6	
  
First Iteration – Nov 2013
•  Basic Combination approach of Boto and Python for AWS scripting
•  Basic Opensource Puppet for configuration, server management
Third Iteration – Jan 2015
•  AWS Puppet module with cloud formation
•  Advanced puppet coding standards with testing
•  Container services and schedulers

Second Iteration – Feb 2014
•  Improvements to scripts
•  Additional Puppet coding standards including upgrading to Enterprise
•  Heading towards 100% Puppet coverage
Our Environment
7	
  
5 development environments

3 Puppet masters
Dynamically controlling the 
VPC environments they are 
responsible for

Each environment the access
level reducing towards Stage
and Prod being automated
environments
So it all looks easy, Right !!!!!
8	
  
What have we learnt ?
9	
  
A solid foundation
-  Development … Where to start ???
-  Unit and acceptance testing frameworks
-  CD with Puppet
Deploying to AWS with Puppet
-  Tips and tricks
What we are working on now to take Puppet to the next level
Development, Where to start ?
10	
  
If you have never written a module start here !!!
11	
  
h#ps://forge.puppetlabs.com/	
  
Start with a solid development foundation !!!
12	
  
h#ps://github.com/mitchellh/vagrant	
  
A	
  must	
  have	
  for	
  any	
  Puppet	
  development	
  	
  
•  Quick	
  deployments	
  
•  A	
  massive	
  community	
  	
  
•  Supports	
  any	
  OS	
  you	
  do	
  	
  
•  You	
  can	
  deploy	
  a	
  single	
  machine	
  or	
  100	
  	
  
•  It	
  is	
  as	
  complex	
  or	
  simple	
  as	
  you	
  need	
  it	
  to	
  be	
  	
  
•  Its	
  all	
  Ruby	
  	
  	
  
If you have not developed Vagrant framework , Here are is a good one
13	
  
h#ps://github.com/adrienthebo/oscar	
  
What we have done with Vagrant
14	
  
•  Re	
  useable	
  VagrantFile	
  with	
  variables	
  
•  Yaml	
  box	
  configuraMon	
  	
  
•  MulM-­‐node	
  test	
  environments	
  with	
  both	
  open	
  source	
  and	
  Puppet	
  Enterprise	
  	
  
•  Full	
  Hiera	
  integraMon	
  	
  	
  
•  We	
  have	
  a	
  full	
  replicaMon	
  of	
  producMon	
  on	
  our	
  laptops	
  	
  	
  
VagrantFile
15	
  
Yaml backend
16	
  
Unit testing is a must !!!
17	
  
•  Picks	
  up	
  human	
  error	
  
•  Tests	
  module	
  dependancies	
  
•  EssenMal	
  for	
  the	
  CD/CI	
  process	
  	
  	
  
Tools for the job
h#p://rspec-­‐puppet.com/	
  
h#ps://github.com/rodjek/rspec-­‐puppet	
  
What do tests look like ?
18	
  
A	
  simple	
  example	
  
A	
  complex	
  example	
  
execute	
  the	
  test	
  
•  rake	
  spec_prep	
  &&	
  rspec	
  
But wait what don't test cover ?
19	
  
•  Package	
  versions,	
  If	
  a	
  file	
  exists	
  etc	
  
So we need acceptance testing
•  This	
  where	
  Vagrant	
  comes	
  back	
  in	
  	
  
Run the module !!!!
Puppetlabs	
  have	
  a	
  very	
  good	
  framework	
  for	
  this	
  h#ps://github.com/puppetlabs/beaker	
  
So now we have our working modules …
How do we integrate them with CD ?
20	
  
•  r10k	
  h#ps://github.com/puppetlabs/r10k	
  is	
  a	
  good	
  
place	
  to	
  start.	
  
This	
  will	
  give	
  you	
  a	
  great	
  transport	
  mechanism	
  from	
  source	
  
control	
  to	
  the	
  Puppet	
  master.	
  
But what if we are using a CD tool (ie Jenkins etc) ?
Puppet code deployment flow
21	
  
So some CD tricks and tips we use
22	
  
Every	
  module	
  has	
  its	
  own	
  repo	
  
So some CD tricks and tips we use
23	
  
Each	
  pipeline	
  runs	
  different	
  test	
  before	
  it	
  can	
  move	
  to	
  the	
  next	
  
AWS Deployment Tools
24	
  
…	
  And	
  because	
  we	
  are	
  not	
  big	
  fans	
  of	
  JSON	
  
h#ps://github.com/bazaarvoice/cloudformaMon-­‐ruby-­‐dsl	
  
Example of the AWS Puppet module
25	
  
Benefits of the AWS Puppet module
26	
  
•  Anyone	
  on	
  the	
  team	
  can	
  develop	
  a	
  new	
  AWS	
  instance,	
  elb	
  etc	
  
•  Out	
  of	
  the	
  box	
  we	
  have	
  great	
  unit	
  tesMng	
  coverage	
  
•  On	
  every	
  Puppet	
  run	
  reverts	
  the	
  environment	
  to	
  the	
  desired	
  state	
  
Number	
  1	
  2p	
  for	
  AWS	
  
h#ps://docs.puppetlabs.com/guides/rest_api.html	
  
The	
  HTTP	
  API	
  
AWS	
  SQS	
  +	
  Puppetlabs	
  HTTP	
  API	
  =	
  Happy	
  engineers	
  	
  	
  
27	
  
What we are working on to take Puppet and
AWS to the next level
28	
  
29	
  
require => Class['docker']
docker-compose.yml.erb
What we are working on now to take Puppet to the next level
30	
  
Docker	
  scheduling	
  with	
  Puppet	
  
Dynamic	
  Hiera	
  backend	
  and	
  service	
  discovery	
  
So that was easy right ????
31	
  
Questions
http://www.healthdirect.gov.au

Weitere ähnliche Inhalte

Was ist angesagt?

Deployment taken seriously with Octopus Deploy and TeamCity
Deployment taken seriously with Octopus Deploy and TeamCityDeployment taken seriously with Octopus Deploy and TeamCity
Deployment taken seriously with Octopus Deploy and TeamCity
Tomas Jansson
 
Vagrant: The ability to create production environments from day 1 of development
Vagrant: The ability to create production environments from day 1 of developmentVagrant: The ability to create production environments from day 1 of development
Vagrant: The ability to create production environments from day 1 of development
Paul Stack
 

Was ist angesagt? (20)

Octopus Deploy Tech Fest 2014
Octopus Deploy Tech Fest 2014Octopus Deploy Tech Fest 2014
Octopus Deploy Tech Fest 2014
 
Deployment taken seriously with Octopus Deploy and TeamCity
Deployment taken seriously with Octopus Deploy and TeamCityDeployment taken seriously with Octopus Deploy and TeamCity
Deployment taken seriously with Octopus Deploy and TeamCity
 
Vagrant: The ability to create production environments from day 1 of development
Vagrant: The ability to create production environments from day 1 of developmentVagrant: The ability to create production environments from day 1 of development
Vagrant: The ability to create production environments from day 1 of development
 
Latinoware 2016 - Continuous Delivery com ferramentas open source
Latinoware 2016 - Continuous Delivery com ferramentas open sourceLatinoware 2016 - Continuous Delivery com ferramentas open source
Latinoware 2016 - Continuous Delivery com ferramentas open source
 
6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...
6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...
6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...
 
Webinar - Matteo Manchi: Dal web al nativo: Introduzione a React Native
Webinar - Matteo Manchi: Dal web al nativo: Introduzione a React Native Webinar - Matteo Manchi: Dal web al nativo: Introduzione a React Native
Webinar - Matteo Manchi: Dal web al nativo: Introduzione a React Native
 
Pluginize ALL the things
Pluginize ALL the thingsPluginize ALL the things
Pluginize ALL the things
 
dotnetsheff: Continuous delivery with Team City and Octopus Deploy
dotnetsheff: Continuous delivery with Team City and Octopus Deploydotnetsheff: Continuous delivery with Team City and Octopus Deploy
dotnetsheff: Continuous delivery with Team City and Octopus Deploy
 
Automated Infrastructure and Application Management
Automated Infrastructure and Application ManagementAutomated Infrastructure and Application Management
Automated Infrastructure and Application Management
 
Devops For Drupal
Devops  For DrupalDevops  For Drupal
Devops For Drupal
 
Comparing Agile QA Approaches to End-to-End Testing
Comparing Agile QA Approaches to End-to-End TestingComparing Agile QA Approaches to End-to-End Testing
Comparing Agile QA Approaches to End-to-End Testing
 
Running Rancher and Docker on Dev Machines - Rancher Online Meetup - May 2016
Running Rancher and Docker on Dev Machines - Rancher Online Meetup - May 2016Running Rancher and Docker on Dev Machines - Rancher Online Meetup - May 2016
Running Rancher and Docker on Dev Machines - Rancher Online Meetup - May 2016
 
GitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorialGitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorial
 
Continuous Integration with Puppet
Continuous Integration with PuppetContinuous Integration with Puppet
Continuous Integration with Puppet
 
Ditch Sandboxes for Docker
Ditch Sandboxes for DockerDitch Sandboxes for Docker
Ditch Sandboxes for Docker
 
How to scale with Terraform
How to scale with TerraformHow to scale with Terraform
How to scale with Terraform
 
ZendCon 2015 - Laravel Forge: Hello World to Hello Production
ZendCon 2015 - Laravel Forge: Hello World to Hello ProductionZendCon 2015 - Laravel Forge: Hello World to Hello Production
ZendCon 2015 - Laravel Forge: Hello World to Hello Production
 
vBrownBag DevOps Series: Puppetinabox
vBrownBag DevOps Series: PuppetinaboxvBrownBag DevOps Series: Puppetinabox
vBrownBag DevOps Series: Puppetinabox
 
Turbo boosting your python development
Turbo boosting your python developmentTurbo boosting your python development
Turbo boosting your python development
 
Docker Best Practices Workshop
Docker Best Practices WorkshopDocker Best Practices Workshop
Docker Best Practices Workshop
 

Andere mochten auch

Keynote Puppet Camp San Francisco 2010
Keynote Puppet Camp San Francisco 2010Keynote Puppet Camp San Francisco 2010
Keynote Puppet Camp San Francisco 2010
Puppet
 
How to measure everything - a million metrics per second with minimal develop...
How to measure everything - a million metrics per second with minimal develop...How to measure everything - a million metrics per second with minimal develop...
How to measure everything - a million metrics per second with minimal develop...
Jos Boumans
 

Andere mochten auch (9)

State of Puppet - Puppet Camp Barcelona 2013
State of Puppet - Puppet Camp Barcelona 2013State of Puppet - Puppet Camp Barcelona 2013
State of Puppet - Puppet Camp Barcelona 2013
 
Puppet Camp San Francisco 2015: Puppet Adoption in a Mature Environment
Puppet Camp San Francisco 2015: Puppet Adoption in a Mature EnvironmentPuppet Camp San Francisco 2015: Puppet Adoption in a Mature Environment
Puppet Camp San Francisco 2015: Puppet Adoption in a Mature Environment
 
Puppet camp LA and Phoenix 2015: Keynote
Puppet camp LA and Phoenix 2015: Keynote Puppet camp LA and Phoenix 2015: Keynote
Puppet camp LA and Phoenix 2015: Keynote
 
Puppet Camp London 2014: Chasing AMI: baking Amazon machine images with Jenki...
Puppet Camp London 2014: Chasing AMI: baking Amazon machine images with Jenki...Puppet Camp London 2014: Chasing AMI: baking Amazon machine images with Jenki...
Puppet Camp London 2014: Chasing AMI: baking Amazon machine images with Jenki...
 
Puppet Camp Phoenix 2015: Managing Files via Puppet: Let Me Count The Ways (B...
Puppet Camp Phoenix 2015: Managing Files via Puppet: Let Me Count The Ways (B...Puppet Camp Phoenix 2015: Managing Files via Puppet: Let Me Count The Ways (B...
Puppet Camp Phoenix 2015: Managing Files via Puppet: Let Me Count The Ways (B...
 
Keynote Puppet Camp San Francisco 2010
Keynote Puppet Camp San Francisco 2010Keynote Puppet Camp San Francisco 2010
Keynote Puppet Camp San Francisco 2010
 
Puppet Camp Berlin 2014: Advanced Puppet Design
Puppet Camp Berlin 2014: Advanced Puppet DesignPuppet Camp Berlin 2014: Advanced Puppet Design
Puppet Camp Berlin 2014: Advanced Puppet Design
 
How to measure everything - a million metrics per second with minimal develop...
How to measure everything - a million metrics per second with minimal develop...How to measure everything - a million metrics per second with minimal develop...
How to measure everything - a million metrics per second with minimal develop...
 
Puppet Camp NYC 2014: Safely storing secrets and credentials in Git for use b...
Puppet Camp NYC 2014: Safely storing secrets and credentials in Git for use b...Puppet Camp NYC 2014: Safely storing secrets and credentials in Git for use b...
Puppet Camp NYC 2014: Safely storing secrets and credentials in Git for use b...
 

Ähnlich wie Puppet Camp Sydney 2015: Puppet and AWS is easy right.....?

Ähnlich wie Puppet Camp Sydney 2015: Puppet and AWS is easy right.....? (20)

State of Big Data on ARM64 / AArch64 - Apache Bigtop
State of Big Data on ARM64 / AArch64 - Apache BigtopState of Big Data on ARM64 / AArch64 - Apache Bigtop
State of Big Data on ARM64 / AArch64 - Apache Bigtop
 
Hands-on Lab: Red Hat Container Development & OpenShift
Hands-on Lab: Red Hat Container Development & OpenShiftHands-on Lab: Red Hat Container Development & OpenShift
Hands-on Lab: Red Hat Container Development & OpenShift
 
How volkswagen used microservices and automation to develop self service solu...
How volkswagen used microservices and automation to develop self service solu...How volkswagen used microservices and automation to develop self service solu...
How volkswagen used microservices and automation to develop self service solu...
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
 
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The UglyDevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
 
How bigtop leveraged docker for build automation and one click hadoop provis...
How bigtop leveraged docker for build automation and  one click hadoop provis...How bigtop leveraged docker for build automation and  one click hadoop provis...
How bigtop leveraged docker for build automation and one click hadoop provis...
 
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
 
Scaling Your App With Docker Swarm using Terraform, Packer on Openstack
Scaling Your App With Docker Swarm using Terraform, Packer on OpenstackScaling Your App With Docker Swarm using Terraform, Packer on Openstack
Scaling Your App With Docker Swarm using Terraform, Packer on Openstack
 
Free Mongo on OpenShift
Free Mongo on OpenShiftFree Mongo on OpenShift
Free Mongo on OpenShift
 
devops@cineca
devops@cinecadevops@cineca
devops@cineca
 
What we talk about when we talk about DevOps
What we talk about when we talk about DevOpsWhat we talk about when we talk about DevOps
What we talk about when we talk about DevOps
 
OpenStack Ottawa Q2 MeetUp - May 31st 2017
OpenStack Ottawa Q2 MeetUp - May 31st 2017OpenStack Ottawa Q2 MeetUp - May 31st 2017
OpenStack Ottawa Q2 MeetUp - May 31st 2017
 
Making sense of Apache Bigtop's role in ODPi and how it matters to Apache Apex
Making sense of Apache Bigtop's role in ODPi and how it matters to Apache ApexMaking sense of Apache Bigtop's role in ODPi and how it matters to Apache Apex
Making sense of Apache Bigtop's role in ODPi and how it matters to Apache Apex
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
 
GitOps Testing in Kubernetes with Flux and Testkube.pdf
GitOps Testing in Kubernetes with Flux and Testkube.pdfGitOps Testing in Kubernetes with Flux and Testkube.pdf
GitOps Testing in Kubernetes with Flux and Testkube.pdf
 
Octopus Deploy @Erie Day of Code
Octopus Deploy @Erie Day of CodeOctopus Deploy @Erie Day of Code
Octopus Deploy @Erie Day of Code
 
Build an Infra Product with AWS Fargate
Build an Infra Product with AWS FargateBuild an Infra Product with AWS Fargate
Build an Infra Product with AWS Fargate
 
“Containerizing” applications with Docker: Ecosystem and Tools
“Containerizing” applications with Docker: Ecosystem and Tools“Containerizing” applications with Docker: Ecosystem and Tools
“Containerizing” applications with Docker: Ecosystem and Tools
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Easily adapt Puppet Modules with PDK Convert 02/22/2018
Easily adapt Puppet Modules with PDK Convert 02/22/2018Easily adapt Puppet Modules with PDK Convert 02/22/2018
Easily adapt Puppet Modules with PDK Convert 02/22/2018
 

Mehr von Puppet

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
Puppet
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
Puppet
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
Puppet
 

Mehr von Puppet (20)

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyaml
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
 
Puppet camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscode
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twenties
 
Applying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance code
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approach
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliance
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNow
 
Puppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet: The best way to harden Windows
Puppet: The best way to harden Windows
 
Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael Pinson
 
ServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin Reeuwijk
 
Take control of your dev ops dumping ground
Take control of your  dev ops dumping groundTake control of your  dev ops dumping ground
Take control of your dev ops dumping ground
 
100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User Group
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOps
 
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyThe Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
 

Kürzlich hochgeladen

%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
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
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Kürzlich hochgeladen (20)

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...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
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 - 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 kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
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
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
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...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
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
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 

Puppet Camp Sydney 2015: Puppet and AWS is easy right.....?

  • 1. Puppet and AWS is easy …… ? Cara Crawford and Scott Coulton
  • 2. Who are we? DevOps/Infrastructure Manager 2   Cara Crawford •  8 + years development experience •  6 + years operational sysadmin experience •  Extensive experience across website solutions in both datacentre and cloud solutions across Linux and Windows environments     @cara_p
  • 3. Who are we? DevOps Solution Architect 3   Scott Coulton •  10 + years hosting solutions experience •  Extensive experience in architecture across AWS, Puppet, Linux, Docker and all things open source Sc         h#ps://github.com/sco#y-­‐c   h#ps:// registry.hub.docker.com /repos/sco#yc/   h#ps://forge.puppetlabs.com/ sco#yc   @sco#coulton  
  • 4. Who are we? 4   Healthdirect Australia manages the following healthcare service: •  Healthdirect nurse helpline and health information •  After hours GP helpline •  Pregnancy, Birth and Baby •  Mindhealthconnect •  National Health Service Directory •  My Aged Care •  Video Call Consulting    
  • 5. What we were trying to solve August 2013 5   •  Majority of servers located in AWS •  Manual deployments •  Cloning for provisioning •  Inconsistent environments •  No CD •  No CI •  No Infrastructure as code •  No Automated testing •  Very limited automation     Deployments would take weeks or months with a high level of developer input onto cloned servers
  • 6. How did we solve it 6   First Iteration – Nov 2013 •  Basic Combination approach of Boto and Python for AWS scripting •  Basic Opensource Puppet for configuration, server management Third Iteration – Jan 2015 •  AWS Puppet module with cloud formation •  Advanced puppet coding standards with testing •  Container services and schedulers Second Iteration – Feb 2014 •  Improvements to scripts •  Additional Puppet coding standards including upgrading to Enterprise •  Heading towards 100% Puppet coverage
  • 7. Our Environment 7   5 development environments 3 Puppet masters Dynamically controlling the VPC environments they are responsible for Each environment the access level reducing towards Stage and Prod being automated environments
  • 8. So it all looks easy, Right !!!!! 8  
  • 9. What have we learnt ? 9   A solid foundation -  Development … Where to start ??? -  Unit and acceptance testing frameworks -  CD with Puppet Deploying to AWS with Puppet -  Tips and tricks What we are working on now to take Puppet to the next level
  • 10. Development, Where to start ? 10  
  • 11. If you have never written a module start here !!! 11   h#ps://forge.puppetlabs.com/  
  • 12. Start with a solid development foundation !!! 12   h#ps://github.com/mitchellh/vagrant   A  must  have  for  any  Puppet  development     •  Quick  deployments   •  A  massive  community     •  Supports  any  OS  you  do     •  You  can  deploy  a  single  machine  or  100     •  It  is  as  complex  or  simple  as  you  need  it  to  be     •  Its  all  Ruby      
  • 13. If you have not developed Vagrant framework , Here are is a good one 13   h#ps://github.com/adrienthebo/oscar  
  • 14. What we have done with Vagrant 14   •  Re  useable  VagrantFile  with  variables   •  Yaml  box  configuraMon     •  MulM-­‐node  test  environments  with  both  open  source  and  Puppet  Enterprise     •  Full  Hiera  integraMon       •  We  have  a  full  replicaMon  of  producMon  on  our  laptops      
  • 17. Unit testing is a must !!! 17   •  Picks  up  human  error   •  Tests  module  dependancies   •  EssenMal  for  the  CD/CI  process       Tools for the job h#p://rspec-­‐puppet.com/   h#ps://github.com/rodjek/rspec-­‐puppet  
  • 18. What do tests look like ? 18   A  simple  example   A  complex  example   execute  the  test   •  rake  spec_prep  &&  rspec  
  • 19. But wait what don't test cover ? 19   •  Package  versions,  If  a  file  exists  etc   So we need acceptance testing •  This  where  Vagrant  comes  back  in     Run the module !!!! Puppetlabs  have  a  very  good  framework  for  this  h#ps://github.com/puppetlabs/beaker  
  • 20. So now we have our working modules … How do we integrate them with CD ? 20   •  r10k  h#ps://github.com/puppetlabs/r10k  is  a  good   place  to  start.   This  will  give  you  a  great  transport  mechanism  from  source   control  to  the  Puppet  master.   But what if we are using a CD tool (ie Jenkins etc) ?
  • 22. So some CD tricks and tips we use 22   Every  module  has  its  own  repo  
  • 23. So some CD tricks and tips we use 23   Each  pipeline  runs  different  test  before  it  can  move  to  the  next  
  • 24. AWS Deployment Tools 24   …  And  because  we  are  not  big  fans  of  JSON   h#ps://github.com/bazaarvoice/cloudformaMon-­‐ruby-­‐dsl  
  • 25. Example of the AWS Puppet module 25  
  • 26. Benefits of the AWS Puppet module 26   •  Anyone  on  the  team  can  develop  a  new  AWS  instance,  elb  etc   •  Out  of  the  box  we  have  great  unit  tesMng  coverage   •  On  every  Puppet  run  reverts  the  environment  to  the  desired  state   Number  1  2p  for  AWS   h#ps://docs.puppetlabs.com/guides/rest_api.html   The  HTTP  API   AWS  SQS  +  Puppetlabs  HTTP  API  =  Happy  engineers      
  • 27. 27   What we are working on to take Puppet and AWS to the next level
  • 28. 28  
  • 29. 29   require => Class['docker'] docker-compose.yml.erb
  • 30. What we are working on now to take Puppet to the next level 30   Docker  scheduling  with  Puppet   Dynamic  Hiera  backend  and  service  discovery  
  • 31. So that was easy right ???? 31