SlideShare a Scribd company logo
1 of 32
Download to read offline
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

More Related Content

What's hot

Avoiding surprises with Chef and Vagrant
Avoiding surprises with Chef and VagrantAvoiding surprises with Chef and Vagrant
Avoiding surprises with Chef and Vagrant
andygale
 
Postgresql 9.0 HA at LOADAYS 2012
Postgresql 9.0 HA at LOADAYS 2012Postgresql 9.0 HA at LOADAYS 2012
Postgresql 9.0 HA at LOADAYS 2012
Julien Pivotto
 
Fluentd and PHP
Fluentd and PHPFluentd and PHP
Fluentd and PHP
chobi e
 

What's hot (20)

Masterless puppet
Masterless puppetMasterless puppet
Masterless puppet
 
PuppetCamp Sydney 2012 - Building a Multimaster Environment
PuppetCamp Sydney 2012 - Building a Multimaster EnvironmentPuppetCamp Sydney 2012 - Building a Multimaster Environment
PuppetCamp Sydney 2012 - Building a Multimaster Environment
 
Killer R10K Workflow - PuppetConf 2014
Killer R10K Workflow - PuppetConf 2014Killer R10K Workflow - PuppetConf 2014
Killer R10K Workflow - PuppetConf 2014
 
Avoiding surprises with Chef and Vagrant
Avoiding surprises with Chef and VagrantAvoiding surprises with Chef and Vagrant
Avoiding surprises with Chef and Vagrant
 
Foreman in Your Data Center :OSDC 2015
Foreman in Your Data Center :OSDC 2015Foreman in Your Data Center :OSDC 2015
Foreman in Your Data Center :OSDC 2015
 
Vagrant - the essence of DevOps in a tool
Vagrant - the essence of DevOps in a toolVagrant - the essence of DevOps in a tool
Vagrant - the essence of DevOps in a tool
 
Open shift intro for Philly PUG
Open shift intro for Philly PUGOpen shift intro for Philly PUG
Open shift intro for Philly PUG
 
Cooking the Cake for Nuget packages
Cooking the Cake for Nuget packagesCooking the Cake for Nuget packages
Cooking the Cake for Nuget packages
 
Composer JSON kills make files
Composer JSON kills make filesComposer JSON kills make files
Composer JSON kills make files
 
TYPO3 CMS deployment with Jenkins CI
TYPO3 CMS deployment with Jenkins CITYPO3 CMS deployment with Jenkins CI
TYPO3 CMS deployment with Jenkins CI
 
TYPO3 Surf Introduction
TYPO3 Surf IntroductionTYPO3 Surf Introduction
TYPO3 Surf Introduction
 
Lifecycle Management with Foreman
Lifecycle Management with ForemanLifecycle Management with Foreman
Lifecycle Management with Foreman
 
Postgresql 9.0 HA at LOADAYS 2012
Postgresql 9.0 HA at LOADAYS 2012Postgresql 9.0 HA at LOADAYS 2012
Postgresql 9.0 HA at LOADAYS 2012
 
Pywps a tutorial for beginners and developers
Pywps a tutorial for beginners and developersPywps a tutorial for beginners and developers
Pywps a tutorial for beginners and developers
 
Git+jenkins+rex presentation
Git+jenkins+rex presentationGit+jenkins+rex presentation
Git+jenkins+rex presentation
 
Vagrant, Chef and TYPO3 - A Love Affair
Vagrant, Chef and TYPO3 - A Love AffairVagrant, Chef and TYPO3 - A Love Affair
Vagrant, Chef and TYPO3 - A Love Affair
 
Monitoring of OpenNebula installations
Monitoring of OpenNebula installationsMonitoring of OpenNebula installations
Monitoring of OpenNebula installations
 
Pywps
PywpsPywps
Pywps
 
Vagrant and Chef on FOSSASIA 2014
Vagrant and Chef on FOSSASIA 2014Vagrant and Chef on FOSSASIA 2014
Vagrant and Chef on FOSSASIA 2014
 
Fluentd and PHP
Fluentd and PHPFluentd and PHP
Fluentd and PHP
 

Similar to Puppet and AWS is Easy...?

Similar to Puppet and AWS is Easy...? (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
 

More from 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
 

More from 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
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 

Puppet and AWS is Easy...?

  • 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