SlideShare a Scribd company logo
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

PDF
Puppet Camp LA 2015: Server Management with Puppet on AWS for a fast-growing ...
Puppet
Ā 
PDF
Tp install anything
Alessandro Franceschi
Ā 
PDF
Puppet Camp Paris 2015: Continuous Integration of Puppet Code (Intermediate)
Puppet
Ā 
PDF
Running at Scale: Practical Performance Tuning with Puppet - PuppetConf 2013
Puppet
Ā 
PDF
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014
Puppet
Ā 
PPTX
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
Puppet
Ā 
PDF
Puppetconf 2015 - Puppet Reporting with Elasticsearch Logstash and Kibana
pkill
Ā 
PPTX
High availability for puppet - 2016
Zack Smith
Ā 
Puppet Camp LA 2015: Server Management with Puppet on AWS for a fast-growing ...
Puppet
Ā 
Tp install anything
Alessandro Franceschi
Ā 
Puppet Camp Paris 2015: Continuous Integration of Puppet Code (Intermediate)
Puppet
Ā 
Running at Scale: Practical Performance Tuning with Puppet - PuppetConf 2013
Puppet
Ā 
Performance Tuning Your Puppet Infrastructure - PuppetConf 2014
Puppet
Ā 
Puppet Availability and Performance at 100K Nodes - PuppetConf 2014
Puppet
Ā 
Puppetconf 2015 - Puppet Reporting with Elasticsearch Logstash and Kibana
pkill
Ā 
High availability for puppet - 2016
Zack Smith
Ā 

What's hot (19)

PDF
Masterless puppet
Jesus Nunez
Ā 
PDF
PuppetCamp Sydney 2012 - Building a Multimaster Environment
Greg Cockburn
Ā 
PDF
Killer R10K Workflow - PuppetConf 2014
Puppet
Ā 
KEY
Avoiding surprises with Chef and Vagrant
andygale
Ā 
ODP
Foreman in Your Data Center :OSDC 2015
Stephen Benjamin
Ā 
PDF
Vagrant - the essence of DevOps in a tool
Paul Stack
Ā 
PDF
Open shift intro for Philly PUG
Steven Pousty
Ā 
PPTX
Cooking the Cake for Nuget packages
Sergey Dzyuban
Ā 
PPTX
Composer JSON kills make files
ropsu
Ā 
PPTX
TYPO3 CMS deployment with Jenkins CI
derdanne
Ā 
PDF
TYPO3 Surf Introduction
Helmut Hummel
Ā 
ODP
Pywps a tutorial for beginners and developers
Jorge Mendes
Ā 
PDF
Git+jenkins+rex presentation
Dwi Sasongko Supriyadi
Ā 
PPTX
Vagrant, Chef and TYPO3 - A Love Affair
Michael Lihs
Ā 
PDF
Monitoring of OpenNebula installations
NETWAYS
Ā 
PDF
Pywps
Luis_de_Sousa
Ā 
PPTX
Vagrant and Chef on FOSSASIA 2014
Michael Lihs
Ā 
PDF
Fluentd and PHP
chobi e
Ā 
PDF
Whatthestack using Tempest for testing your OpenStack deployment
Christian Schwede
Ā 
Masterless puppet
Jesus Nunez
Ā 
PuppetCamp Sydney 2012 - Building a Multimaster Environment
Greg Cockburn
Ā 
Killer R10K Workflow - PuppetConf 2014
Puppet
Ā 
Avoiding surprises with Chef and Vagrant
andygale
Ā 
Foreman in Your Data Center :OSDC 2015
Stephen Benjamin
Ā 
Vagrant - the essence of DevOps in a tool
Paul Stack
Ā 
Open shift intro for Philly PUG
Steven Pousty
Ā 
Cooking the Cake for Nuget packages
Sergey Dzyuban
Ā 
Composer JSON kills make files
ropsu
Ā 
TYPO3 CMS deployment with Jenkins CI
derdanne
Ā 
TYPO3 Surf Introduction
Helmut Hummel
Ā 
Pywps a tutorial for beginners and developers
Jorge Mendes
Ā 
Git+jenkins+rex presentation
Dwi Sasongko Supriyadi
Ā 
Vagrant, Chef and TYPO3 - A Love Affair
Michael Lihs
Ā 
Monitoring of OpenNebula installations
NETWAYS
Ā 
Pywps
Luis_de_Sousa
Ā 
Vagrant and Chef on FOSSASIA 2014
Michael Lihs
Ā 
Fluentd and PHP
chobi e
Ā 
Whatthestack using Tempest for testing your OpenStack deployment
Christian Schwede
Ā 
Ad

Similar to Puppet and AWS is Easy...? (20)

PDF
State of Big Data on ARM64 / AArch64 - Apache Bigtop
Ganesh Raju
Ā 
PPTX
How volkswagen used microservices and automation to develop self service solu...
Marcos Entenza Garcia
Ā 
PPTX
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
AppDynamics
Ā 
PPTX
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGroup
Ā 
PPTX
How bigtop leveraged docker for build automation and one click hadoop provis...
Evans Ye
Ā 
PDF
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Richard Bullington-McGuire
Ā 
PPTX
Scaling Your App With Docker Swarm using Terraform, Packer on Openstack
Bobby DeVeaux, DevOps Consultant
Ā 
PPTX
Free Mongo on OpenShift
Steven Pousty
Ā 
ODP
devops@cineca
Linuxaria.com
Ā 
PDF
What we talk about when we talk about DevOps
Ricard Clau
Ā 
PDF
OpenStack Ottawa Q2 MeetUp - May 31st 2017
Stacy VƩronneau
Ā 
PPTX
Making sense of Apache Bigtop's role in ODPi and how it matters to Apache Apex
Apache Apex
Ā 
PPTX
Fluo CICD OpenStack Summit
Miguel Zuniga
Ā 
PDF
GitOps Testing in Kubernetes with Flux and Testkube.pdf
Weaveworks
Ā 
PPTX
Octopus Deploy @Erie Day of Code
Cassey Lottman
Ā 
PDF
Build an Infra Product with AWS Fargate
Will Button
Ā 
PDF
ā€œContainerizingā€ applications with Docker: Ecosystem and Tools
Francisco Javier RamĆ­rez Urea
Ā 
PDF
Kubernetes Cloud Native Indonesia Meetup - June 2024
Prasta Maha
Ā 
PPTX
Kubernetes 101
Stanislav Pogrebnyak
Ā 
PPTX
Easily adapt Puppet Modules with PDK Convert 02/22/2018
Claire Priester Papas
Ā 
State of Big Data on ARM64 / AArch64 - Apache Bigtop
Ganesh Raju
Ā 
How volkswagen used microservices and automation to develop self service solu...
Marcos Entenza Garcia
Ā 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
AppDynamics
Ā 
DevOpsGuys - DevOps Automation - The Good, The Bad and The Ugly
DevOpsGroup
Ā 
How bigtop leveraged docker for build automation and one click hadoop provis...
Evans Ye
Ā 
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
Richard Bullington-McGuire
Ā 
Scaling Your App With Docker Swarm using Terraform, Packer on Openstack
Bobby DeVeaux, DevOps Consultant
Ā 
Free Mongo on OpenShift
Steven Pousty
Ā 
devops@cineca
Linuxaria.com
Ā 
What we talk about when we talk about DevOps
Ricard Clau
Ā 
OpenStack Ottawa Q2 MeetUp - May 31st 2017
Stacy VƩronneau
Ā 
Making sense of Apache Bigtop's role in ODPi and how it matters to Apache Apex
Apache Apex
Ā 
Fluo CICD OpenStack Summit
Miguel Zuniga
Ā 
GitOps Testing in Kubernetes with Flux and Testkube.pdf
Weaveworks
Ā 
Octopus Deploy @Erie Day of Code
Cassey Lottman
Ā 
Build an Infra Product with AWS Fargate
Will Button
Ā 
ā€œContainerizingā€ applications with Docker: Ecosystem and Tools
Francisco Javier RamĆ­rez Urea
Ā 
Kubernetes Cloud Native Indonesia Meetup - June 2024
Prasta Maha
Ā 
Kubernetes 101
Stanislav Pogrebnyak
Ā 
Easily adapt Puppet Modules with PDK Convert 02/22/2018
Claire Priester Papas
Ā 
Ad

More from Puppet (20)

PPTX
Puppet Community Day: Planning the Future Together
Puppet
Ā 
PPTX
The Evolution of Puppet: Key Changes and Modernization Tips
Puppet
Ā 
PPTX
Can You Help Me Upgrade to Puppet 8? Tips, Tools & Best Practices for Your Up...
Puppet
Ā 
PPTX
Bolt Dynamic Inventory: Making Puppet Easier
Puppet
Ā 
PPTX
Customizing Reporting with the Puppet Report Processor
Puppet
Ā 
PPTX
Puppet at ConfigMgmtCamp 2025 Sponsor Deck
Puppet
Ā 
PPTX
The State of Puppet in 2025: A Presentation from Developer Relations Lead Dav...
Puppet
Ā 
PPTX
Let Red be Red and Green be Green: The Automated Workflow Restarter in GitHub...
Puppet
Ā 
PDF
Puppet camp2021 testing modules and controlrepo
Puppet
Ā 
PPTX
Puppetcamp r10kyaml
Puppet
Ā 
PDF
2021 04-15 operational verification (with notes)
Puppet
Ā 
PPTX
Puppet camp vscode
Puppet
Ā 
PDF
Modules of the twenties
Puppet
Ā 
PDF
Applying Roles and Profiles method to compliance code
Puppet
Ā 
PPTX
KGI compliance as-code approach
Puppet
Ā 
PDF
Enforce compliance policy with model-driven automation
Puppet
Ā 
PDF
Keynote: Puppet camp compliance
Puppet
Ā 
PPTX
Automating it management with Puppet + ServiceNow
Puppet
Ā 
PPTX
Puppet: The best way to harden Windows
Puppet
Ā 
PPTX
Simplified Patch Management with Puppet - Oct. 2020
Puppet
Ā 
Puppet Community Day: Planning the Future Together
Puppet
Ā 
The Evolution of Puppet: Key Changes and Modernization Tips
Puppet
Ā 
Can You Help Me Upgrade to Puppet 8? Tips, Tools & Best Practices for Your Up...
Puppet
Ā 
Bolt Dynamic Inventory: Making Puppet Easier
Puppet
Ā 
Customizing Reporting with the Puppet Report Processor
Puppet
Ā 
Puppet at ConfigMgmtCamp 2025 Sponsor Deck
Puppet
Ā 
The State of Puppet in 2025: A Presentation from Developer Relations Lead Dav...
Puppet
Ā 
Let Red be Red and Green be Green: The Automated Workflow Restarter in GitHub...
Puppet
Ā 
Puppet camp2021 testing modules and controlrepo
Puppet
Ā 
Puppetcamp r10kyaml
Puppet
Ā 
2021 04-15 operational verification (with notes)
Puppet
Ā 
Puppet camp vscode
Puppet
Ā 
Modules of the twenties
Puppet
Ā 
Applying Roles and Profiles method to compliance code
Puppet
Ā 
KGI compliance as-code approach
Puppet
Ā 
Enforce compliance policy with model-driven automation
Puppet
Ā 
Keynote: Puppet camp compliance
Puppet
Ā 
Automating it management with Puppet + ServiceNow
Puppet
Ā 
Puppet: The best way to harden Windows
Puppet
Ā 
Simplified Patch Management with Puppet - Oct. 2020
Puppet
Ā 

Recently uploaded (20)

PDF
REPORT: Heating appliances market in Poland 2024
SPIUG
Ā 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
Ā 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
Ā 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
Ā 
PDF
How-Cloud-Computing-Impacts-Businesses-in-2025-and-Beyond.pdf
Artjoker Software Development Company
Ā 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
Ā 
PDF
Software Development Methodologies in 2025
KodekX
Ā 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
Ā 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
Ā 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
Ā 
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
Ā 
PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
Ā 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
Ā 
PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
Ā 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
Ā 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
Ā 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
Ā 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
Ā 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
Ā 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
Ā 
REPORT: Heating appliances market in Poland 2024
SPIUG
Ā 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
Ā 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
Ā 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
Ā 
How-Cloud-Computing-Impacts-Businesses-in-2025-and-Beyond.pdf
Artjoker Software Development Company
Ā 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
Ā 
Software Development Methodologies in 2025
KodekX
Ā 
Brief History of Internet - Early Days of Internet
sutharharshit158
Ā 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
Ā 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
Ā 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
Ā 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
Ā 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
Ā 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
Ā 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
Ā 
cloud computing vai.pptx for the project
vaibhavdobariyal79
Ā 
Presentation about Hardware and Software in Computer
snehamodhawadiya
Ā 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
Ā 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
Ā 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
Ā 

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) ?
  • 21. Puppet code deployment flow 21 Ā 
  • 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
  • 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 Ā