SlideShare a Scribd company logo
1 of 35
Download to read offline
Puppet Adoption in a Mature Environment
How to get from 0 to 10,000
​ Jason O’Rourke
​ Systems Engineering Lead
​ jorourke@salesforce.com
​ In/jsorourke
​ 
​ Safe harbor statement under the Private Securities Litigation Reform Act of 1995:
​ This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties
materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or
implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking,
including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements
regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded
services or technology developments and customer contracts or use of our services.
​ The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality
for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results
and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of any litigation, risks associated
with completed and any possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history,
our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer
deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further
information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for
the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These documents and others containing
important disclosures are available on the SEC Filings section of the Investor Information section of our Web site.
​ Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available
and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features
that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
Safe Harbor
§  A 16 year old cloud computing pioneer
§  Data centers around the world
§  Rapid growth and expansion
§  Tens of thousands of servers
§  Existing in-house automation tools
Growth required consistency and an automated process for making
reliable, repeatable changes.
Salesforce
PART I: Intro
​ Scalability: without an effective form of system configuration, there is a point of sharply increasing costs
and negative events (incidents) as the company’s server infrastructure grows.
•  For highly scaled applications (ex: cloud), server count > 1000.
•  For more diverse application set, server count > 250.
•  System Engineer team size > 20.
Reliability and Velocity both suffer as a result. And you can’t fix it by simply hiring more people.
So will Puppet adoption make my job unnecessary?
Why Do We All Want Puppet?
​ Scalability: without an effective form of system configuration, there is a point of sharply increasing costs
and negative events (incidents) as the company’s server infrastructure grows.
•  For highly scaled applications (ex: cloud), server count > 1000.
•  For more diverse application set, server count > 500.
•  System Engineer team size > 20.
Reliability and Velocity both suffer as a result. And you can’t fix it by simply hiring more people.
So will Puppet adoption make my job unnecessary?
I don’t think so. I’m busier than ever!
Puppet will remove painful work and let you do valuable work instead.
Let the machines do the rote work.
Why Do We All Want Puppet?
The Greenfield
​ In the Greenfield, you have a clean slate. This can be a new location, or a new product line, or even an
entirely new company.
Benefits:
•  Can work during normal business hours
•  Can afford setbacks and miscues.
•  Can experiment, redesign at will. “Fail Fast” should be the operating mantra.
•  Can go live when it’s ready.
​ In a greenfield, the primary cost is opportunity cost – time lost. The start up is the closest to a pure
greenfield, but there may be competitors rushing to the same market.
​ The field has been paved over and built up. Servers have
running applications in use by customers.
​ You may be restricted to making changes during off peak hours.
​ The change window may be restricted.
​ Changes need to be tested in dev or staging before production.
​ It’s critical to have a back out plan or a viable DR option.
​ A failure could translate directly to lost revenue, and potentially
lost customers.
​ 
The Brownfield
​ Are these 4 web servers identical?
Snowflakes
​ Are these 4 web servers identical?
​ Of course not: snowflakes are unique!
​ Snowflakes are small variations of the same server type.
​ Causes of server variation:
•  Manual Process
•  Multigenerational Scripts
•  Remediation to Incidents
•  Reliance on Tribal Knowledge
Snowflakes
The Company’s Lawn doesn’t get greener with age
​ Tech Debt accumulates over time, in the form of snowflakes and in deferred work.
​ Compliance and regulatory requirements
​ Change Management
​ Staging environments can fall short
​ The business has a revenue stream to protect.
•  Makes substantial change like this seem risky.
•  Yet it is your primary responsibility to keep the customer’s needs in mind.
•  Business needs may require your team and others to work on other priorities.
​ In hindsight, it is clear that the technical aspects of Puppetization are only a small part of the
project. Be prepared for surprises.
Part II: Methods
Form a DevOps Team
​ What does DevOps mean anyway?
•  For the system engineer, let’s simplify to the concept that infrastructure is code and should be managed as any
other software project.
Dev and QE disciplines bring formalized methods around code revision and collaboration, and around
automated testing and code coverage.
Agile Methodology is well suited.
Desired Experience for team members:
•  Prior Puppet conversion experience
•  Prior Datacenter experience
•  Production experience
Training and Skills Building
•  Puppet Labs training
•  PuppetConf
•  Puppet Labs Professional Services
•  Puppet Forge
•  Puppet User Group Meetups
The Key Epics
Game Plan
​ Create the Base Class
•  We split up the 100+ kickstart scripts with > 10,000 lines of bash code and separated the universal settings from the
role specific.
​ Build the Vagrant development environment “Puppet in a Box”
•  This virtualization allowed to provide every user with a functioning ppm, role instances, and puppet/git development
environment at their desk.
•  Also usable for solving other development problems.
​ Establish best practices
•  Determined and documented the ‘right’ (and only) method for solving some common Puppet FAQ situations.
•  All code required second eyes check over and functional testing before merging.
Open source tools used for developing and testing Puppet code
​ Jenkins
•  Handful of machines responsible for testing, packaging, and shipping our Puppet code
​ Vagrant
•  Configures and manages our VirtualBox based development environment
​ Rouster
•  Abstraction layer for managing Vagrant virtual machines
•  https://github.com/chorankates/rouster, https://www.youtube.com/watch?v=N-E6x6MGBpY (PuppetConf ‘13)
​ Git
•  Version control; use GitHub Enterprise as a repository hosting service
​ puppet-lint
•  Make sure Puppet manifests conform to the style guide
​ rspec-puppet
•  Testing Puppet’s behavior when it compiles manifests into a catalog of Puppet resources
​ At many larger companies it’s common for only the system engineers to have root access.
•  This may be a choice of the company, rather than a requirement.
​ It is very difficult for engineers to automate products they cannot actually see.
​ Under this limitation, testing iteration velocity is reduced to the bandwidth of the team members with
access.
​ Improvement 1: creation of a netgroup granting login access to most production servers
​ Improvement 2: addition of read-only sudoers rules (ex: noop puppet run, cert list reads, log files)
•  With this, the developers can investigate and frequently solve the problem, pending a release.
Production Access
Part III: Implementation
Different Approaches to Beginning Adoption
Points of Engagement
1.  New Data Center
2.  New HW only
3.  New role type
4.  Convert one resource at a time
5.  Convert one role type (completely) at a time
•  Our success. Start with internal facing or simple roles first.
​ In 2014 the company opted to standardize on the current rev of RHEL6. To achieve this, roughly 35% of
production needed to be reimaged from RHEL5. Instead of kickstart, the engineers used Razor + Puppet.
​ Key selling factors:
ü  We had just successfully partnered with our Dublin office to convert the first 400 nodes to Puppet in the
span of a training week. This established the potential velocity.
ü  With our orchestration, we could convert production nodes faster than it would take engineers to use
kickstart and then redeploy the application.
ü  With the hosts now under puppet control, future updates and configuration changes would be easy(er).
Taking Advantage of an Opportunity To Make Lemonade
​ Pre Production
•  Review manifests against kickstart scripts for any recent changes
•  Jenkins testing is green.
Smoke Tests
•  Convert node on DR internal instance to confirm functional process
•  Convert node on Production internal instance – short bake (couple days)
•  Convert node(s) on Production customer facing instance – long bake (week or more)
•  Fix bugs and reiterate.
​ Full conversion
•  Use all hands available to complete remainder of conversions as quickly as possible
•  Do retrospective on the conversion and identify any corrections or additional tooling needed before next one
The Conversion of a Role
Puppet Conversions at Salesforce
•  Used for converting existing servers and building new ones
•  Growth shows the adoption of each role and the continuous growth of new instances
•  Progress is not linear! The first 3-5 nodes take longer than the remaining 95%
Key Strategic Decisions
1.  Continuous Puppet client runs – clients run Puppet every 4 hours
•  Undoes any manual edits quickly
•  If you don’t run continuously, you’ve reinvented kickstart
2.  Canary release method – based on directory environments
•  Code deploys go to our canaries
•  This is our defense against bad code that is not covered by automated testing
3.  Puppet code remains centralized with the primary team
•  A lot of learning and iteration as the footprint grew in production. One team can maintain consistency and has
the expertise to make course corrections.
Part IV: Lessons and Wins
​ #1 The proper setting for Transparent Huge
Pages changed with RHEL6.
​ Cause: the role was running RHEL5 up to the
time of Puppet conversion and thus its
manifest was based on that OS version.
​ Resolution: quick correction to related etc.
files, node updates, reboot.
​ Silver lining: caught in early smoke tests.
Proved that bad manifests will be consistently
bad on all nodes, reducing time to ID culprit.
Lessons Learned
​ #1 The proper setting for kernel tunable
changed with RHEL6.
​ Cause: the role was running RHEL5 up to
the time of Puppet conversion and thus its
manifest was based on that OS version.
​ Resolution: quick correction to related conf
files, node updates, reboot.
​ Silver lining: caught in early smoke tests.
Proved that bad manifests will be consistently
bad on all nodes, reducing time to ID culprit.
​ #2 Security hardening change caused
regression in our legacy automation tooling.
​ Cause: no effective way to do automated testing
of this legacy tool.
​ Resolution: reverted template to prior version.
​ Silver lining: Just as Puppet will allow you to
quickly deploy changes, you can just as quickly
(or more so) undo most changes.
Lessons Learned
​ Puppet conversion progress reports are great, but it’s the benefits that sell the story and get managerial
buy in to commit people and time to the project.
​ Puppet first showed its value with a request for a simple change to the resolver settings.
•  For 20 minutes of effort, change made to ~2000 nodes, and for all future Puppet nodes.
•  For 10k or 100k nodes, same 20 minutes.
•  Can trust that 100% of nodes will be updated.
For non puppet servers, this might take hours to days to script and execute.
•  Less reliable
•  Have to repeat or add to kickstart scripts.
•  Cost increases with node count.
Winning the Hearts and Minds
•  Simpler changes like credential rotations or file permission hardening are now very simple code commits.
•  Small wants that were deferred due to cost are easily achieved.
Patching Faster
External teams were contributing Puppet code, but…
Increasing Velocity: What wasn’t working
​ Teams were gated by the Puppet Team’s availability to code review & test pull requests
•  This caused long feedback loops and slow iterations
​ Not scalable. Could only support a handful of teams at a time.
​ We needed a new self-service contribution model to support multiple teams doing parallel Puppet
development without requiring any intervention from the Puppet team.
​ We also needed to keep the build healthy.
New contribution model
​ Every module is its own Git repository. Owned by relevant team.
​ Development, code reviews, and testing of Puppet modules are all done by the contributing team
​ When a change is ready for deployment, a pull request is submitted to the Puppet repo updating the
modules commit hash in the Puppetfile
​ Pull requests are automatically tested by an in-house tool called PAI (Puppet Auto Integration)
•  Runs puppet-lint and rspec-puppet on modules that were changed
•  Runs functional tests on all server types that are effected by the changes
​ If the pull request passes, it is merged into the integration branch of Puppet
•  Contributors are alerted on any test failures
•  Changes to shared, core functionality (such as the external node classifier) are left open for code review from the
Puppet Team
Production environments: continuous delivery
Source: http://www.slideshare.net/AlanVaghti/scaling-continuous-integration-for-puppet
Releasing Puppet changes to production involves:
Production environments: continuous delivery
​ Publishing a diff file & summary between the last release and the current release
​ A thumbs up from Site Reliability
​ Pressing the shiny red button & letting post deployment smoke tests run
​ Canary releases:
•  Utilizing Puppet’s directory environments, new releases are consumed only by a subset of representative servers
(“canary servers”)
•  Other servers continue to consume the previous Puppet release
•  Releases are automatically consumed by non-canary servers after 18 hours
​ Nagios and Graphite are used to monitor, alert, and gather metrics on Puppet health and performance
•  Automation of Puppet code releases – enable up to 3 releases per day
•  Separate team formed to drive new conversions with role owners
•  Continued improvements to patching capabilities – puppet versus orchestration for deployment
•  Greater use of feature flagging and the “baking” class
•  Support for selective freezes in production.
Next Steps: 2015 Feature Objectives
Thank you

More Related Content

What's hot

Auto Deploy Product Guide
Auto Deploy Product GuideAuto Deploy Product Guide
Auto Deploy Product GuideMark Dalton
 
Webinar - Devops platform for the evolving enterprise
Webinar - Devops platform for the evolving enterpriseWebinar - Devops platform for the evolving enterprise
Webinar - Devops platform for the evolving enterpriseDBmaestro - Database DevOps
 
Using HP Quality Center 10.0 workflow and customization interface to manage t...
Using HP Quality Center 10.0 workflow and customization interface to manage t...Using HP Quality Center 10.0 workflow and customization interface to manage t...
Using HP Quality Center 10.0 workflow and customization interface to manage t...Michael Deady
 
Evolving Team Structure in DevOps
Evolving Team Structure in DevOpsEvolving Team Structure in DevOps
Evolving Team Structure in DevOpsSherry Chang
 
Self-Service Secure Test and Release Pipelines
Self-Service Secure Test and Release PipelinesSelf-Service Secure Test and Release Pipelines
Self-Service Secure Test and Release PipelinesSalesforce Engineering
 
Leveraging Worksoft Beyond Test Automation at Mosaic
Leveraging Worksoft Beyond Test Automation at MosaicLeveraging Worksoft Beyond Test Automation at Mosaic
Leveraging Worksoft Beyond Test Automation at MosaicWorksoft
 
Unlocking IT Value Chain with DevOps
Unlocking IT Value Chain with DevOpsUnlocking IT Value Chain with DevOps
Unlocking IT Value Chain with DevOpsBart Driscoll
 
EMC World 2016 - DevOps-at-Scale Session
EMC World 2016 - DevOps-at-Scale SessionEMC World 2016 - DevOps-at-Scale Session
EMC World 2016 - DevOps-at-Scale SessionBart Driscoll
 
Jonny wooldridge DevOps Large and Small
Jonny wooldridge DevOps Large and SmallJonny wooldridge DevOps Large and Small
Jonny wooldridge DevOps Large and SmallJwooldridge
 
SaaS Operations Practice Overview SoftServe DevOps
SaaS Operations Practice Overview SoftServe DevOpsSaaS Operations Practice Overview SoftServe DevOps
SaaS Operations Practice Overview SoftServe DevOpsSoftServe
 
Useful Lean Tools: Value Stream Mapping and Kanban
Useful Lean Tools: Value Stream Mapping and KanbanUseful Lean Tools: Value Stream Mapping and Kanban
Useful Lean Tools: Value Stream Mapping and KanbanRoberto Bettazzoni
 
Measure Twice, Cut Once: Using Team Operation Metrics to Optimize a Scaling S...
Measure Twice, Cut Once: Using Team Operation Metrics to Optimize a Scaling S...Measure Twice, Cut Once: Using Team Operation Metrics to Optimize a Scaling S...
Measure Twice, Cut Once: Using Team Operation Metrics to Optimize a Scaling S...VMware Tanzu
 
Net3 Technology: 5 step guide to DevOps in the Cloud
Net3 Technology: 5 step guide to DevOps in the CloudNet3 Technology: 5 step guide to DevOps in the Cloud
Net3 Technology: 5 step guide to DevOps in the CloudKate Bissinger
 
Using HP Quality Center 10.0 Premier to introduce processes and control into ...
Using HP Quality Center 10.0 Premier to introduce processes and control into ...Using HP Quality Center 10.0 Premier to introduce processes and control into ...
Using HP Quality Center 10.0 Premier to introduce processes and control into ...Michael Deady
 
Introduction To Agile And Scrum Innotech
Introduction To Agile And Scrum InnotechIntroduction To Agile And Scrum Innotech
Introduction To Agile And Scrum InnotechJoe Vallone
 
Enterprise Devops Presentation @ Magentys Seminar London May 15 2014
Enterprise Devops Presentation @ Magentys Seminar London May 15 2014Enterprise Devops Presentation @ Magentys Seminar London May 15 2014
Enterprise Devops Presentation @ Magentys Seminar London May 15 2014Jwooldridge
 
Sirris manufacturingday2011 qrm-harol
Sirris manufacturingday2011 qrm-harolSirris manufacturingday2011 qrm-harol
Sirris manufacturingday2011 qrm-harolSirris
 
Scaling continuous delivery @ GeeCon 2014
Scaling continuous delivery @ GeeCon 2014Scaling continuous delivery @ GeeCon 2014
Scaling continuous delivery @ GeeCon 2014Tomas Riha
 
Agile.2013.effecting.a.dev ops.transformation.at.salesforce
Agile.2013.effecting.a.dev ops.transformation.at.salesforceAgile.2013.effecting.a.dev ops.transformation.at.salesforce
Agile.2013.effecting.a.dev ops.transformation.at.salesforceDave Mangot
 

What's hot (20)

Auto Deploy Product Guide
Auto Deploy Product GuideAuto Deploy Product Guide
Auto Deploy Product Guide
 
Webinar - Devops platform for the evolving enterprise
Webinar - Devops platform for the evolving enterpriseWebinar - Devops platform for the evolving enterprise
Webinar - Devops platform for the evolving enterprise
 
Using HP Quality Center 10.0 workflow and customization interface to manage t...
Using HP Quality Center 10.0 workflow and customization interface to manage t...Using HP Quality Center 10.0 workflow and customization interface to manage t...
Using HP Quality Center 10.0 workflow and customization interface to manage t...
 
Scrum at Scale
Scrum at ScaleScrum at Scale
Scrum at Scale
 
Evolving Team Structure in DevOps
Evolving Team Structure in DevOpsEvolving Team Structure in DevOps
Evolving Team Structure in DevOps
 
Self-Service Secure Test and Release Pipelines
Self-Service Secure Test and Release PipelinesSelf-Service Secure Test and Release Pipelines
Self-Service Secure Test and Release Pipelines
 
Leveraging Worksoft Beyond Test Automation at Mosaic
Leveraging Worksoft Beyond Test Automation at MosaicLeveraging Worksoft Beyond Test Automation at Mosaic
Leveraging Worksoft Beyond Test Automation at Mosaic
 
Unlocking IT Value Chain with DevOps
Unlocking IT Value Chain with DevOpsUnlocking IT Value Chain with DevOps
Unlocking IT Value Chain with DevOps
 
EMC World 2016 - DevOps-at-Scale Session
EMC World 2016 - DevOps-at-Scale SessionEMC World 2016 - DevOps-at-Scale Session
EMC World 2016 - DevOps-at-Scale Session
 
Jonny wooldridge DevOps Large and Small
Jonny wooldridge DevOps Large and SmallJonny wooldridge DevOps Large and Small
Jonny wooldridge DevOps Large and Small
 
SaaS Operations Practice Overview SoftServe DevOps
SaaS Operations Practice Overview SoftServe DevOpsSaaS Operations Practice Overview SoftServe DevOps
SaaS Operations Practice Overview SoftServe DevOps
 
Useful Lean Tools: Value Stream Mapping and Kanban
Useful Lean Tools: Value Stream Mapping and KanbanUseful Lean Tools: Value Stream Mapping and Kanban
Useful Lean Tools: Value Stream Mapping and Kanban
 
Measure Twice, Cut Once: Using Team Operation Metrics to Optimize a Scaling S...
Measure Twice, Cut Once: Using Team Operation Metrics to Optimize a Scaling S...Measure Twice, Cut Once: Using Team Operation Metrics to Optimize a Scaling S...
Measure Twice, Cut Once: Using Team Operation Metrics to Optimize a Scaling S...
 
Net3 Technology: 5 step guide to DevOps in the Cloud
Net3 Technology: 5 step guide to DevOps in the CloudNet3 Technology: 5 step guide to DevOps in the Cloud
Net3 Technology: 5 step guide to DevOps in the Cloud
 
Using HP Quality Center 10.0 Premier to introduce processes and control into ...
Using HP Quality Center 10.0 Premier to introduce processes and control into ...Using HP Quality Center 10.0 Premier to introduce processes and control into ...
Using HP Quality Center 10.0 Premier to introduce processes and control into ...
 
Introduction To Agile And Scrum Innotech
Introduction To Agile And Scrum InnotechIntroduction To Agile And Scrum Innotech
Introduction To Agile And Scrum Innotech
 
Enterprise Devops Presentation @ Magentys Seminar London May 15 2014
Enterprise Devops Presentation @ Magentys Seminar London May 15 2014Enterprise Devops Presentation @ Magentys Seminar London May 15 2014
Enterprise Devops Presentation @ Magentys Seminar London May 15 2014
 
Sirris manufacturingday2011 qrm-harol
Sirris manufacturingday2011 qrm-harolSirris manufacturingday2011 qrm-harol
Sirris manufacturingday2011 qrm-harol
 
Scaling continuous delivery @ GeeCon 2014
Scaling continuous delivery @ GeeCon 2014Scaling continuous delivery @ GeeCon 2014
Scaling continuous delivery @ GeeCon 2014
 
Agile.2013.effecting.a.dev ops.transformation.at.salesforce
Agile.2013.effecting.a.dev ops.transformation.at.salesforceAgile.2013.effecting.a.dev ops.transformation.at.salesforce
Agile.2013.effecting.a.dev ops.transformation.at.salesforce
 

Viewers also liked

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 2013Puppet
 
Puppet Camp Sydney 2015: Puppet and AWS is easy right.....?
Puppet Camp Sydney 2015: Puppet and AWS is easy right.....? Puppet Camp Sydney 2015: Puppet and AWS is easy right.....?
Puppet Camp Sydney 2015: Puppet and AWS is easy right.....? Puppet
 
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
 
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...Puppet
 
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
 
Keynote Puppet Camp San Francisco 2010
Keynote Puppet Camp San Francisco 2010Keynote Puppet Camp San Francisco 2010
Keynote Puppet Camp San Francisco 2010Puppet
 
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 DesignPuppet
 
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
 
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...Puppet
 

Viewers also liked (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 Sydney 2015: Puppet and AWS is easy right.....?
Puppet Camp Sydney 2015: Puppet and AWS is easy right.....? Puppet Camp Sydney 2015: Puppet and AWS is easy right.....?
Puppet Camp Sydney 2015: Puppet and AWS is easy right.....?
 
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 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...
 
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...
 
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...
 

Similar to Puppet Camp San Francisco 2015: Puppet Adoption in a Mature Environment

Df14 so many features dreamforce ’14
Df14 so many features dreamforce ’14Df14 so many features dreamforce ’14
Df14 so many features dreamforce ’14Mudit Agarwal
 
Salesforce – Proven Platform Development with DevOps & Agile
Salesforce – Proven Platform Development with DevOps & AgileSalesforce – Proven Platform Development with DevOps & Agile
Salesforce – Proven Platform Development with DevOps & AgileSai Jithesh ☁️
 
Shorten Your Development Time with an Extensible Design for Apex
Shorten Your Development Time with an Extensible Design for ApexShorten Your Development Time with an Extensible Design for Apex
Shorten Your Development Time with an Extensible Design for ApexSalesforce Developers
 
Designing custom REST and SOAP interfaces on Force.com
Designing custom REST and SOAP interfaces on Force.comDesigning custom REST and SOAP interfaces on Force.com
Designing custom REST and SOAP interfaces on Force.comSteven Herod
 
Bridging the Gap between Clicks & Code
Bridging the Gap between Clicks & CodeBridging the Gap between Clicks & Code
Bridging the Gap between Clicks & CodeSalesforce Admins
 
DevOps in Salesforce AppCloud
DevOps in Salesforce AppCloudDevOps in Salesforce AppCloud
DevOps in Salesforce AppCloudrsg00usa
 
Sandboxes: The Future of App Development by Evan Barnet & Pam Barnet
Sandboxes: The Future of App Development by Evan Barnet & Pam BarnetSandboxes: The Future of App Development by Evan Barnet & Pam Barnet
Sandboxes: The Future of App Development by Evan Barnet & Pam BarnetSalesforce Admins
 
DF14-So Many Features Dreamforce ’14 Presentation FINAL-Monday-13OCT2014
DF14-So Many Features Dreamforce ’14 Presentation FINAL-Monday-13OCT2014DF14-So Many Features Dreamforce ’14 Presentation FINAL-Monday-13OCT2014
DF14-So Many Features Dreamforce ’14 Presentation FINAL-Monday-13OCT2014Mudit Agarwal
 
Decluttering your Salesfroce org
Decluttering your Salesfroce orgDecluttering your Salesfroce org
Decluttering your Salesfroce orgRoy Gilad
 
Examples of Using Heroku With Force.com to Build Apps
Examples of Using Heroku With Force.com to Build AppsExamples of Using Heroku With Force.com to Build Apps
Examples of Using Heroku With Force.com to Build AppsSalesforce Developers
 
IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101Sanjeev Sharma
 
Lightning Developer Experience, Eclipse IDE Evolved
Lightning Developer Experience, Eclipse IDE EvolvedLightning Developer Experience, Eclipse IDE Evolved
Lightning Developer Experience, Eclipse IDE EvolvedSalesforce Developers
 
Designing Custom REST and SOAP Interfaces on Force.com
Designing Custom REST and SOAP Interfaces on Force.comDesigning Custom REST and SOAP Interfaces on Force.com
Designing Custom REST and SOAP Interfaces on Force.comSalesforce Developers
 
Meetup Sydney 2018.11.08
Meetup Sydney 2018.11.08Meetup Sydney 2018.11.08
Meetup Sydney 2018.11.08MuleSoft
 
Manage Development in Your Org with Salesforce Governance Framework
Manage Development in Your Org with Salesforce Governance FrameworkManage Development in Your Org with Salesforce Governance Framework
Manage Development in Your Org with Salesforce Governance FrameworkSalesforce Developers
 

Similar to Puppet Camp San Francisco 2015: Puppet Adoption in a Mature Environment (20)

Df14 so many features dreamforce ’14
Df14 so many features dreamforce ’14Df14 so many features dreamforce ’14
Df14 so many features dreamforce ’14
 
Salesforce – Proven Platform Development with DevOps & Agile
Salesforce – Proven Platform Development with DevOps & AgileSalesforce – Proven Platform Development with DevOps & Agile
Salesforce – Proven Platform Development with DevOps & Agile
 
Shorten Your Development Time with an Extensible Design for Apex
Shorten Your Development Time with an Extensible Design for ApexShorten Your Development Time with an Extensible Design for Apex
Shorten Your Development Time with an Extensible Design for Apex
 
Patching at Scale
Patching at ScalePatching at Scale
Patching at Scale
 
Designing custom REST and SOAP interfaces on Force.com
Designing custom REST and SOAP interfaces on Force.comDesigning custom REST and SOAP interfaces on Force.com
Designing custom REST and SOAP interfaces on Force.com
 
Bridging the Gap between Clicks & Code
Bridging the Gap between Clicks & CodeBridging the Gap between Clicks & Code
Bridging the Gap between Clicks & Code
 
Development Best Practices
Development Best PracticesDevelopment Best Practices
Development Best Practices
 
Under the Hood of Sandbox Templates
Under the Hood of Sandbox TemplatesUnder the Hood of Sandbox Templates
Under the Hood of Sandbox Templates
 
Coding in the App Cloud
Coding in the App CloudCoding in the App Cloud
Coding in the App Cloud
 
DevOps in Salesforce AppCloud
DevOps in Salesforce AppCloudDevOps in Salesforce AppCloud
DevOps in Salesforce AppCloud
 
Sandboxes: The Future of App Development by Evan Barnet & Pam Barnet
Sandboxes: The Future of App Development by Evan Barnet & Pam BarnetSandboxes: The Future of App Development by Evan Barnet & Pam Barnet
Sandboxes: The Future of App Development by Evan Barnet & Pam Barnet
 
DF14-So Many Features Dreamforce ’14 Presentation FINAL-Monday-13OCT2014
DF14-So Many Features Dreamforce ’14 Presentation FINAL-Monday-13OCT2014DF14-So Many Features Dreamforce ’14 Presentation FINAL-Monday-13OCT2014
DF14-So Many Features Dreamforce ’14 Presentation FINAL-Monday-13OCT2014
 
Decluttering your Salesfroce org
Decluttering your Salesfroce orgDecluttering your Salesfroce org
Decluttering your Salesfroce org
 
Examples of Using Heroku With Force.com to Build Apps
Examples of Using Heroku With Force.com to Build AppsExamples of Using Heroku With Force.com to Build Apps
Examples of Using Heroku With Force.com to Build Apps
 
Dev ops.enterprise.2014 (1)
Dev ops.enterprise.2014 (1)Dev ops.enterprise.2014 (1)
Dev ops.enterprise.2014 (1)
 
IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101IBM Innovate 2013 Session: DevOps 101
IBM Innovate 2013 Session: DevOps 101
 
Lightning Developer Experience, Eclipse IDE Evolved
Lightning Developer Experience, Eclipse IDE EvolvedLightning Developer Experience, Eclipse IDE Evolved
Lightning Developer Experience, Eclipse IDE Evolved
 
Designing Custom REST and SOAP Interfaces on Force.com
Designing Custom REST and SOAP Interfaces on Force.comDesigning Custom REST and SOAP Interfaces on Force.com
Designing Custom REST and SOAP Interfaces on Force.com
 
Meetup Sydney 2018.11.08
Meetup Sydney 2018.11.08Meetup Sydney 2018.11.08
Meetup Sydney 2018.11.08
 
Manage Development in Your Org with Salesforce Governance Framework
Manage Development in Your Org with Salesforce Governance FrameworkManage Development in Your Org with Salesforce Governance Framework
Manage Development in Your Org with Salesforce Governance Framework
 

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 controlrepoPuppet
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyamlPuppet
 
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
 
Puppet camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscodePuppet
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twentiesPuppet
 
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 codePuppet
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approachPuppet
 
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 automationPuppet
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliancePuppet
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowPuppet
 
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 WindowsPuppet
 
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. 2020Puppet
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppetPuppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet
 
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 ReeuwijkPuppet
 
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 groundPuppet
 
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 SoftwarePuppet
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User GroupPuppet
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsPuppet
 
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 MaludyPuppet
 

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

Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 

Recently uploaded (20)

Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 

Puppet Camp San Francisco 2015: Puppet Adoption in a Mature Environment

  • 1. Puppet Adoption in a Mature Environment How to get from 0 to 10,000 ​ Jason O’Rourke ​ Systems Engineering Lead ​ jorourke@salesforce.com ​ In/jsorourke ​ 
  • 2. ​ Safe harbor statement under the Private Securities Litigation Reform Act of 1995: ​ This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services. ​ The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed and any possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site. ​ Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements. Safe Harbor
  • 3. §  A 16 year old cloud computing pioneer §  Data centers around the world §  Rapid growth and expansion §  Tens of thousands of servers §  Existing in-house automation tools Growth required consistency and an automated process for making reliable, repeatable changes. Salesforce
  • 5. ​ Scalability: without an effective form of system configuration, there is a point of sharply increasing costs and negative events (incidents) as the company’s server infrastructure grows. •  For highly scaled applications (ex: cloud), server count > 1000. •  For more diverse application set, server count > 250. •  System Engineer team size > 20. Reliability and Velocity both suffer as a result. And you can’t fix it by simply hiring more people. So will Puppet adoption make my job unnecessary? Why Do We All Want Puppet?
  • 6. ​ Scalability: without an effective form of system configuration, there is a point of sharply increasing costs and negative events (incidents) as the company’s server infrastructure grows. •  For highly scaled applications (ex: cloud), server count > 1000. •  For more diverse application set, server count > 500. •  System Engineer team size > 20. Reliability and Velocity both suffer as a result. And you can’t fix it by simply hiring more people. So will Puppet adoption make my job unnecessary? I don’t think so. I’m busier than ever! Puppet will remove painful work and let you do valuable work instead. Let the machines do the rote work. Why Do We All Want Puppet?
  • 7. The Greenfield ​ In the Greenfield, you have a clean slate. This can be a new location, or a new product line, or even an entirely new company. Benefits: •  Can work during normal business hours •  Can afford setbacks and miscues. •  Can experiment, redesign at will. “Fail Fast” should be the operating mantra. •  Can go live when it’s ready. ​ In a greenfield, the primary cost is opportunity cost – time lost. The start up is the closest to a pure greenfield, but there may be competitors rushing to the same market.
  • 8. ​ The field has been paved over and built up. Servers have running applications in use by customers. ​ You may be restricted to making changes during off peak hours. ​ The change window may be restricted. ​ Changes need to be tested in dev or staging before production. ​ It’s critical to have a back out plan or a viable DR option. ​ A failure could translate directly to lost revenue, and potentially lost customers. ​  The Brownfield
  • 9. ​ Are these 4 web servers identical? Snowflakes
  • 10. ​ Are these 4 web servers identical? ​ Of course not: snowflakes are unique! ​ Snowflakes are small variations of the same server type. ​ Causes of server variation: •  Manual Process •  Multigenerational Scripts •  Remediation to Incidents •  Reliance on Tribal Knowledge Snowflakes
  • 11.
  • 12. The Company’s Lawn doesn’t get greener with age ​ Tech Debt accumulates over time, in the form of snowflakes and in deferred work. ​ Compliance and regulatory requirements ​ Change Management ​ Staging environments can fall short ​ The business has a revenue stream to protect. •  Makes substantial change like this seem risky. •  Yet it is your primary responsibility to keep the customer’s needs in mind. •  Business needs may require your team and others to work on other priorities. ​ In hindsight, it is clear that the technical aspects of Puppetization are only a small part of the project. Be prepared for surprises.
  • 14. Form a DevOps Team ​ What does DevOps mean anyway? •  For the system engineer, let’s simplify to the concept that infrastructure is code and should be managed as any other software project. Dev and QE disciplines bring formalized methods around code revision and collaboration, and around automated testing and code coverage. Agile Methodology is well suited. Desired Experience for team members: •  Prior Puppet conversion experience •  Prior Datacenter experience •  Production experience
  • 15. Training and Skills Building •  Puppet Labs training •  PuppetConf •  Puppet Labs Professional Services •  Puppet Forge •  Puppet User Group Meetups
  • 16. The Key Epics Game Plan ​ Create the Base Class •  We split up the 100+ kickstart scripts with > 10,000 lines of bash code and separated the universal settings from the role specific. ​ Build the Vagrant development environment “Puppet in a Box” •  This virtualization allowed to provide every user with a functioning ppm, role instances, and puppet/git development environment at their desk. •  Also usable for solving other development problems. ​ Establish best practices •  Determined and documented the ‘right’ (and only) method for solving some common Puppet FAQ situations. •  All code required second eyes check over and functional testing before merging.
  • 17. Open source tools used for developing and testing Puppet code ​ Jenkins •  Handful of machines responsible for testing, packaging, and shipping our Puppet code ​ Vagrant •  Configures and manages our VirtualBox based development environment ​ Rouster •  Abstraction layer for managing Vagrant virtual machines •  https://github.com/chorankates/rouster, https://www.youtube.com/watch?v=N-E6x6MGBpY (PuppetConf ‘13) ​ Git •  Version control; use GitHub Enterprise as a repository hosting service ​ puppet-lint •  Make sure Puppet manifests conform to the style guide ​ rspec-puppet •  Testing Puppet’s behavior when it compiles manifests into a catalog of Puppet resources
  • 18. ​ At many larger companies it’s common for only the system engineers to have root access. •  This may be a choice of the company, rather than a requirement. ​ It is very difficult for engineers to automate products they cannot actually see. ​ Under this limitation, testing iteration velocity is reduced to the bandwidth of the team members with access. ​ Improvement 1: creation of a netgroup granting login access to most production servers ​ Improvement 2: addition of read-only sudoers rules (ex: noop puppet run, cert list reads, log files) •  With this, the developers can investigate and frequently solve the problem, pending a release. Production Access
  • 20. Different Approaches to Beginning Adoption Points of Engagement 1.  New Data Center 2.  New HW only 3.  New role type 4.  Convert one resource at a time 5.  Convert one role type (completely) at a time •  Our success. Start with internal facing or simple roles first.
  • 21. ​ In 2014 the company opted to standardize on the current rev of RHEL6. To achieve this, roughly 35% of production needed to be reimaged from RHEL5. Instead of kickstart, the engineers used Razor + Puppet. ​ Key selling factors: ü  We had just successfully partnered with our Dublin office to convert the first 400 nodes to Puppet in the span of a training week. This established the potential velocity. ü  With our orchestration, we could convert production nodes faster than it would take engineers to use kickstart and then redeploy the application. ü  With the hosts now under puppet control, future updates and configuration changes would be easy(er). Taking Advantage of an Opportunity To Make Lemonade
  • 22. ​ Pre Production •  Review manifests against kickstart scripts for any recent changes •  Jenkins testing is green. Smoke Tests •  Convert node on DR internal instance to confirm functional process •  Convert node on Production internal instance – short bake (couple days) •  Convert node(s) on Production customer facing instance – long bake (week or more) •  Fix bugs and reiterate. ​ Full conversion •  Use all hands available to complete remainder of conversions as quickly as possible •  Do retrospective on the conversion and identify any corrections or additional tooling needed before next one The Conversion of a Role
  • 23. Puppet Conversions at Salesforce •  Used for converting existing servers and building new ones •  Growth shows the adoption of each role and the continuous growth of new instances •  Progress is not linear! The first 3-5 nodes take longer than the remaining 95%
  • 24. Key Strategic Decisions 1.  Continuous Puppet client runs – clients run Puppet every 4 hours •  Undoes any manual edits quickly •  If you don’t run continuously, you’ve reinvented kickstart 2.  Canary release method – based on directory environments •  Code deploys go to our canaries •  This is our defense against bad code that is not covered by automated testing 3.  Puppet code remains centralized with the primary team •  A lot of learning and iteration as the footprint grew in production. One team can maintain consistency and has the expertise to make course corrections.
  • 25. Part IV: Lessons and Wins
  • 26. ​ #1 The proper setting for Transparent Huge Pages changed with RHEL6. ​ Cause: the role was running RHEL5 up to the time of Puppet conversion and thus its manifest was based on that OS version. ​ Resolution: quick correction to related etc. files, node updates, reboot. ​ Silver lining: caught in early smoke tests. Proved that bad manifests will be consistently bad on all nodes, reducing time to ID culprit. Lessons Learned
  • 27. ​ #1 The proper setting for kernel tunable changed with RHEL6. ​ Cause: the role was running RHEL5 up to the time of Puppet conversion and thus its manifest was based on that OS version. ​ Resolution: quick correction to related conf files, node updates, reboot. ​ Silver lining: caught in early smoke tests. Proved that bad manifests will be consistently bad on all nodes, reducing time to ID culprit. ​ #2 Security hardening change caused regression in our legacy automation tooling. ​ Cause: no effective way to do automated testing of this legacy tool. ​ Resolution: reverted template to prior version. ​ Silver lining: Just as Puppet will allow you to quickly deploy changes, you can just as quickly (or more so) undo most changes. Lessons Learned
  • 28. ​ Puppet conversion progress reports are great, but it’s the benefits that sell the story and get managerial buy in to commit people and time to the project. ​ Puppet first showed its value with a request for a simple change to the resolver settings. •  For 20 minutes of effort, change made to ~2000 nodes, and for all future Puppet nodes. •  For 10k or 100k nodes, same 20 minutes. •  Can trust that 100% of nodes will be updated. For non puppet servers, this might take hours to days to script and execute. •  Less reliable •  Have to repeat or add to kickstart scripts. •  Cost increases with node count. Winning the Hearts and Minds
  • 29. •  Simpler changes like credential rotations or file permission hardening are now very simple code commits. •  Small wants that were deferred due to cost are easily achieved. Patching Faster
  • 30. External teams were contributing Puppet code, but… Increasing Velocity: What wasn’t working ​ Teams were gated by the Puppet Team’s availability to code review & test pull requests •  This caused long feedback loops and slow iterations ​ Not scalable. Could only support a handful of teams at a time. ​ We needed a new self-service contribution model to support multiple teams doing parallel Puppet development without requiring any intervention from the Puppet team. ​ We also needed to keep the build healthy.
  • 31. New contribution model ​ Every module is its own Git repository. Owned by relevant team. ​ Development, code reviews, and testing of Puppet modules are all done by the contributing team ​ When a change is ready for deployment, a pull request is submitted to the Puppet repo updating the modules commit hash in the Puppetfile ​ Pull requests are automatically tested by an in-house tool called PAI (Puppet Auto Integration) •  Runs puppet-lint and rspec-puppet on modules that were changed •  Runs functional tests on all server types that are effected by the changes ​ If the pull request passes, it is merged into the integration branch of Puppet •  Contributors are alerted on any test failures •  Changes to shared, core functionality (such as the external node classifier) are left open for code review from the Puppet Team
  • 32. Production environments: continuous delivery Source: http://www.slideshare.net/AlanVaghti/scaling-continuous-integration-for-puppet
  • 33. Releasing Puppet changes to production involves: Production environments: continuous delivery ​ Publishing a diff file & summary between the last release and the current release ​ A thumbs up from Site Reliability ​ Pressing the shiny red button & letting post deployment smoke tests run ​ Canary releases: •  Utilizing Puppet’s directory environments, new releases are consumed only by a subset of representative servers (“canary servers”) •  Other servers continue to consume the previous Puppet release •  Releases are automatically consumed by non-canary servers after 18 hours ​ Nagios and Graphite are used to monitor, alert, and gather metrics on Puppet health and performance
  • 34. •  Automation of Puppet code releases – enable up to 3 releases per day •  Separate team formed to drive new conversions with role owners •  Continued improvements to patching capabilities – puppet versus orchestration for deployment •  Greater use of feature flagging and the “baking” class •  Support for selective freezes in production. Next Steps: 2015 Feature Objectives