The document discusses Puppet design and best practices for writing reusable modules. It emphasizes granular, portable modules that focus only on their specific scope or component. Larger implementations are built up using profiles, which combine modules, and roles, which define business functions through profiles. This separates technology implementation from business logic for improved abstraction and flexibility.
Declare independence from your it department sysadmin skills for symfony dev...Pablo Godel
A Symfony/web developer is not complete without knowing server administration. When looking for a job, it is quite likely that you will be required to know about systtem administration.
The document provides an overview of SQLitePersistentObjects (SQLPO), an object-relational mapping (ORM) tool for SQLite databases on iPhone. It discusses how SQLPO allows defining persistent objects that can save and load data to/from a SQLite database with simple calls. Properties of persistent objects automatically map to database columns. SQLPO supports finding, filtering, indexing objects and more with minimal code. The document gives examples of defining persistent objects and performing common data operations like saving, loading, querying objects using SQLPO.
Everything You Were Taught About Java Is WrongTim Boudreau
The document discusses how Java has become overly complex compared to its original simple design. It uses an analogy comparing Java's development to a small useful object (Java) being discovered by aliens and enterprises who try to help it but end up making it much larger and more complex, adding features it doesn't need. Specific issues called out include premature standardization, overuse of components and patterns like JavaBeans and inheritance, and using threads for input/output when modern operating systems handle I/O asynchronously in more efficient ways. The document argues for simplifying Java and focusing on solving specific problems rather than trying to be all things to all people.
This document discusses performance optimization for product developers building add-ons for Plone. It recommends using tools like plone.app.caching, Dexterity instead of Archetypes, and OOBTree for data structures to improve performance. It emphasizes testing caching functionality and providing rulesets to make caching easier for integrators. The presenter offers help from the Code Distillery in implementing these techniques.
Optimizing WordPress Performance on Shared Web HostingJon Brown
This document discusses performance tweaks that can be made for WordPress sites on shared hosting. It is divided into three acts: inside WordPress, on the shared server, and off the shared server. Inside WordPress, it recommends right-sizing images, checking for 404 errors, keeping the database under control, and using caching plugins. On the shared server, it suggests updating to newer PHP versions, cleaning up the database, and using CloudFlare. Off the server, it only recommends using CDNs like CloudFlare for their free benefits.
Declare independence from your it department sysadmin skills for symfony dev...Pablo Godel
A Symfony/web developer is not complete without knowing server administration. When looking for a job, it is quite likely that you will be required to know about systtem administration.
The document provides an overview of SQLitePersistentObjects (SQLPO), an object-relational mapping (ORM) tool for SQLite databases on iPhone. It discusses how SQLPO allows defining persistent objects that can save and load data to/from a SQLite database with simple calls. Properties of persistent objects automatically map to database columns. SQLPO supports finding, filtering, indexing objects and more with minimal code. The document gives examples of defining persistent objects and performing common data operations like saving, loading, querying objects using SQLPO.
Everything You Were Taught About Java Is WrongTim Boudreau
The document discusses how Java has become overly complex compared to its original simple design. It uses an analogy comparing Java's development to a small useful object (Java) being discovered by aliens and enterprises who try to help it but end up making it much larger and more complex, adding features it doesn't need. Specific issues called out include premature standardization, overuse of components and patterns like JavaBeans and inheritance, and using threads for input/output when modern operating systems handle I/O asynchronously in more efficient ways. The document argues for simplifying Java and focusing on solving specific problems rather than trying to be all things to all people.
This document discusses performance optimization for product developers building add-ons for Plone. It recommends using tools like plone.app.caching, Dexterity instead of Archetypes, and OOBTree for data structures to improve performance. It emphasizes testing caching functionality and providing rulesets to make caching easier for integrators. The presenter offers help from the Code Distillery in implementing these techniques.
Optimizing WordPress Performance on Shared Web HostingJon Brown
This document discusses performance tweaks that can be made for WordPress sites on shared hosting. It is divided into three acts: inside WordPress, on the shared server, and off the shared server. Inside WordPress, it recommends right-sizing images, checking for 404 errors, keeping the database under control, and using caching plugins. On the shared server, it suggests updating to newer PHP versions, cleaning up the database, and using CloudFlare. Off the server, it only recommends using CDNs like CloudFlare for their free benefits.
The document discusses Puppet, an open source tool for automating IT infrastructure management and enforcing consistency across systems. It summarizes Puppet's approach of defining the desired state of systems and then enforcing that state. Key capabilities mentioned include defining system configuration, node management, operational management, and application management. The document also discusses benefits like increased speed, productivity, and insight through automation and enforcing consistent states across systems.
State of Puppet - Puppet Camp Barcelona 2013Puppet
Chris Spence delivers the "State of Puppet" at Puppet Camp Barcelona 2013. Learn about upcoming Puppet Camps at http://puppetlabs.com/community/puppet-camp/
Puppet Camp San Francisco 2015: Puppet Adoption in a Mature EnvironmentPuppet
The document discusses how Salesforce implemented Puppet at scale to manage their large server infrastructure. Some key points:
- Salesforce had grown to tens of thousands of servers running various applications and roles, making manual configuration difficult.
- They formed a DevOps team to develop Puppet manifests and establish best practices for infrastructure as code.
- Implementation began by converting simple internal roles and taking advantage of an opportunity to reimage servers, allowing them to bring hundreds of nodes under Puppet control quickly.
- Open source tools like Vagrant, Jenkins and Git were used to develop, test, and version control the Puppet code.
Puppet Camp Sydney 2015: Puppet and AWS is easy right.....? Puppet
Puppet and AWS is easy ...... ?
This document discusses how Puppet and AWS were used to automate infrastructure at Healthdirect Australia. It describes how manual deployments, lack of testing and inconsistent environments were solved through implementing Puppet for configuration management and AWS modules. Key steps included establishing solid development practices with Vagrant and testing, integrating Puppet with continuous delivery tools, and developing AWS modules for provisioning infrastructure through Puppet. Current work aims to integrate Docker scheduling and dynamic service discovery.
Puppet Camp Phoenix 2015: Managing Files via Puppet: Let Me Count The Ways (B...Puppet
The document discusses various ways to manage files and lines within files using Puppet, including using the file, concat, augeas, file_line, inifile, datacat, and template resources and functions. It provides examples of managing entire files, specific lines, using static content or templates, and leveraging other modules to manage files and configurations.
Case Study: Green Field Implementation of Puppet 3.0 at ESPNPuppet
At the end of 2012 ESPN undertook an effort to modernize its deployment and maintenance of linux based platform services. ESPN faced a challenging problem in that hundreds of servers needed to be puppetized yet the largest cluster of identical servers was only eight servers. Therefore having a puppet environment that was flexible, consistent, simple to understand and data driven was critical to success. This session looks at the architectural decisions made by ESPN while performing a green field implementation of Puppet 3.0 and reflects on the resulting good and bad of those decisions.
Ben Schofield
Senior Application Architect, ESPN
Ben Schofield is the middleware architect for ESPN. With 11 years of IT experience working for Fortune 200 companies in the retail, insurance, financial and media industries, Ben has seen the good, bad and ugly of IT operations and management. He brings a unique perspective on how a well designed devops team with the right mind set can help large IT departments reduce costs and decrease time to market.
Puppet is a configuration management tool that allows sysadmins to reuse code through modules. The founder of Puppet Labs discussed Puppet's growth and frequent updates. A survey was presented to get feedback from Puppet users. Puppet aims to standardize infrastructure and allow sysadmins to focus on what they care about rather than repetitive tasks. The Puppet ecosystem, including Puppet, Puppet Dashboard, Puppet Forge and new additions like mCollective, provide automation and orchestration capabilities for IT infrastructures. Roadmaps were outlined to further integrate Puppet and mCollective.
How to measure everything - a million metrics per second with minimal develop...Jos Boumans
Krux is an infrastructure provider for many of the websites you
use online today, like NYTimes.com, WSJ.com, Wikia and NBCU. For
every request on those properties, Krux will get one or more as
well. We grew from zero traffic to several billion requests per
day in the span of 2 years, and we did so exclusively in AWS.
To make the right decisions in such a volatile environment, we
knew that data is everything; without it, you can't possibly make
informed decisions. However, collecting it efficiently, at scale,
at minimal cost and without burdening developers is a tremendous
challenge.
Join me in this session to learn how we overcame this challenge
at Krux; I will share with you the details of how we set up our
global infrastructure, entirely managed by Puppet, to capture over
a million data points every second on virtually every part of the
system, including inside the web server, user apps and Puppet itself,
for under $2000/month using off the shelf Open Source software and
some code we've released as Open Source ourselves. In addition, I’ll
show you how you can take (a subset of) these metrics and send them
to advanced analytics and alerting tools like Circonus or Zabbix.
This content will be applicable for anyone collecting or desiring to
collect vast amounts of metrics in a cloud or datacenter setting and
making sense of them.
Puppet Camp NYC 2014: Safely storing secrets and credentials in Git for use b...Puppet
"Safely Storing Secrets and Credentials in Git for use by
Puppet: The BlackBox Project" presented by Thomas A. Limoncelli, Stack Exchange at Puppet Camp NYC 2014
PuppetConf 2016: Successful Puppet Implementation in Large Organizations – Ja...Puppet
Here are the slides from James Sweeny's PuppetConf 2016 presentation called Successful Puppet Implementation in Large Organizations. Watch the videos at https://www.youtube.com/playlist?list=PLV86BgbREluVjwwt-9UL8u2Uy8xnzpIqa
Using CI for continuous delivery Part 3Vishal Biyani
This is part 3 of "Using CI for continuous delivery" in which we test drive Bamboo. More details can be found at www.vishalbiyani.com/ci-continuous-delivery
Using CI for continuous delivery Part 4Vishal Biyani
This is part 4 of "Using CI for continuous delivery" in which we test drive Jenkins. More details can be found at www.vishalbiyani.com/ci-continuous-delivery
Using CI for continuous delivery Part 2Vishal Biyani
This is part 3 of "Using CI for continuous delivery" in which we test drive TeamCity. More details can be found at www.vishalbiyani.com/ci-continuous-delivery
Using CI for continuous delivery Part 1Vishal Biyani
This is part 3 of "Using CI for continuous delivery" in which we test drive Go. More details can be found at www.vishalbiyani.com/ci-continuous-delivery
This document contains slides from an Andrew Parker presentation on Puppet. It discusses Puppet's capabilities for infrastructure automation including defining infrastructure states, simulating changes, enforcing configurations, and reporting on changes. Key components of Puppet like the Puppet master, Puppet agents, Facter, Hiera and PuppetDB are explained. The presentation also covers Puppet Enterprise features and how to get involved with the Puppet community and training.
The document discusses Puppet modules and describes a holistic approach to module development. It outlines the history of developing Puppet modules at Lab42 since 2007 and describes key mantras for module development, including data separation, reusability, standardization, and interoperability. It also discusses Example42 next generation modules which aim to have a coherent, standardized structure and allow for customization, extension, and integration with tools like Puppi.
OSDC 2011 | Advanced Puppet Topics by Ken BarberNETWAYS
Viele User kennen Puppet wahrscheinlich schon aus Ihrem täglichen Arbeitsleben haben aber wahrscheinlich nicht die Zeit es bis auf seine Grenzen auszutesten was dessen Funktionalität betrifft. Dieser Vortrag bietet einen Einblick über Features für fortgeschrittene Anwender mit folgenden Themen, welche durch praktische Beispiele ergänzt werden:
Unterstützung vom neuen Ruby DSL zum Schreiben von Manifesten im reinen Ruby
Die extlookup Funktion zum Speichern von Informationen in externen Formaten
Benutzung von dotty output zur Analyse von Ressourcen - Abhängigkeiten
Exportierte Ressourcen-Abhängigkeiten als Zugang zu generierten Informationen anderer nodes
Externe node classifiers um Puppet in ein externes Tool wie CMDB zu integrieren
Puppetdoc - Generierung und Handhabung zur Dokumentation von Puppet-Inhalten
This document discusses using virtual machines to create consistent development environments. It introduces Vagrant and Puppet as tools for managing virtual machines and configurations. Vagrant allows developers to easily create and configure virtual development environments that match production. Puppet helps enforce consistency across environments by automating configuration of services, files, and settings. The document provides examples of using these tools and outlines some challenges in adopting them.
Rails ORM De-mystifying Active Record has_manyBlazing Cloud
Rails' ORM layer, ActiveRecord, is an elegant solution for keeping model code simple and modular (aka DRY). Demystifying the way Ruby-on-Rails uses runtime method generation opens a doorway for understanding and provides a foundation for the other ways Rails uses simple conventions to allow sophisticated, concise functionality in a declarative style.
Here is big mystery that you'll be equipped to understand better after playing with the slides
-> If honeys is an array - and honeys has a method create! - then why does an array object [] not have create!
Hive.first.honeys.class
=> Array
[].create!
=> NoMethodError
Hive.first.honeys.create!
The document discusses Puppet, an open source tool for automating IT infrastructure management and enforcing consistency across systems. It summarizes Puppet's approach of defining the desired state of systems and then enforcing that state. Key capabilities mentioned include defining system configuration, node management, operational management, and application management. The document also discusses benefits like increased speed, productivity, and insight through automation and enforcing consistent states across systems.
State of Puppet - Puppet Camp Barcelona 2013Puppet
Chris Spence delivers the "State of Puppet" at Puppet Camp Barcelona 2013. Learn about upcoming Puppet Camps at http://puppetlabs.com/community/puppet-camp/
Puppet Camp San Francisco 2015: Puppet Adoption in a Mature EnvironmentPuppet
The document discusses how Salesforce implemented Puppet at scale to manage their large server infrastructure. Some key points:
- Salesforce had grown to tens of thousands of servers running various applications and roles, making manual configuration difficult.
- They formed a DevOps team to develop Puppet manifests and establish best practices for infrastructure as code.
- Implementation began by converting simple internal roles and taking advantage of an opportunity to reimage servers, allowing them to bring hundreds of nodes under Puppet control quickly.
- Open source tools like Vagrant, Jenkins and Git were used to develop, test, and version control the Puppet code.
Puppet Camp Sydney 2015: Puppet and AWS is easy right.....? Puppet
Puppet and AWS is easy ...... ?
This document discusses how Puppet and AWS were used to automate infrastructure at Healthdirect Australia. It describes how manual deployments, lack of testing and inconsistent environments were solved through implementing Puppet for configuration management and AWS modules. Key steps included establishing solid development practices with Vagrant and testing, integrating Puppet with continuous delivery tools, and developing AWS modules for provisioning infrastructure through Puppet. Current work aims to integrate Docker scheduling and dynamic service discovery.
Puppet Camp Phoenix 2015: Managing Files via Puppet: Let Me Count The Ways (B...Puppet
The document discusses various ways to manage files and lines within files using Puppet, including using the file, concat, augeas, file_line, inifile, datacat, and template resources and functions. It provides examples of managing entire files, specific lines, using static content or templates, and leveraging other modules to manage files and configurations.
Case Study: Green Field Implementation of Puppet 3.0 at ESPNPuppet
At the end of 2012 ESPN undertook an effort to modernize its deployment and maintenance of linux based platform services. ESPN faced a challenging problem in that hundreds of servers needed to be puppetized yet the largest cluster of identical servers was only eight servers. Therefore having a puppet environment that was flexible, consistent, simple to understand and data driven was critical to success. This session looks at the architectural decisions made by ESPN while performing a green field implementation of Puppet 3.0 and reflects on the resulting good and bad of those decisions.
Ben Schofield
Senior Application Architect, ESPN
Ben Schofield is the middleware architect for ESPN. With 11 years of IT experience working for Fortune 200 companies in the retail, insurance, financial and media industries, Ben has seen the good, bad and ugly of IT operations and management. He brings a unique perspective on how a well designed devops team with the right mind set can help large IT departments reduce costs and decrease time to market.
Puppet is a configuration management tool that allows sysadmins to reuse code through modules. The founder of Puppet Labs discussed Puppet's growth and frequent updates. A survey was presented to get feedback from Puppet users. Puppet aims to standardize infrastructure and allow sysadmins to focus on what they care about rather than repetitive tasks. The Puppet ecosystem, including Puppet, Puppet Dashboard, Puppet Forge and new additions like mCollective, provide automation and orchestration capabilities for IT infrastructures. Roadmaps were outlined to further integrate Puppet and mCollective.
How to measure everything - a million metrics per second with minimal develop...Jos Boumans
Krux is an infrastructure provider for many of the websites you
use online today, like NYTimes.com, WSJ.com, Wikia and NBCU. For
every request on those properties, Krux will get one or more as
well. We grew from zero traffic to several billion requests per
day in the span of 2 years, and we did so exclusively in AWS.
To make the right decisions in such a volatile environment, we
knew that data is everything; without it, you can't possibly make
informed decisions. However, collecting it efficiently, at scale,
at minimal cost and without burdening developers is a tremendous
challenge.
Join me in this session to learn how we overcame this challenge
at Krux; I will share with you the details of how we set up our
global infrastructure, entirely managed by Puppet, to capture over
a million data points every second on virtually every part of the
system, including inside the web server, user apps and Puppet itself,
for under $2000/month using off the shelf Open Source software and
some code we've released as Open Source ourselves. In addition, I’ll
show you how you can take (a subset of) these metrics and send them
to advanced analytics and alerting tools like Circonus or Zabbix.
This content will be applicable for anyone collecting or desiring to
collect vast amounts of metrics in a cloud or datacenter setting and
making sense of them.
Puppet Camp NYC 2014: Safely storing secrets and credentials in Git for use b...Puppet
"Safely Storing Secrets and Credentials in Git for use by
Puppet: The BlackBox Project" presented by Thomas A. Limoncelli, Stack Exchange at Puppet Camp NYC 2014
PuppetConf 2016: Successful Puppet Implementation in Large Organizations – Ja...Puppet
Here are the slides from James Sweeny's PuppetConf 2016 presentation called Successful Puppet Implementation in Large Organizations. Watch the videos at https://www.youtube.com/playlist?list=PLV86BgbREluVjwwt-9UL8u2Uy8xnzpIqa
Using CI for continuous delivery Part 3Vishal Biyani
This is part 3 of "Using CI for continuous delivery" in which we test drive Bamboo. More details can be found at www.vishalbiyani.com/ci-continuous-delivery
Using CI for continuous delivery Part 4Vishal Biyani
This is part 4 of "Using CI for continuous delivery" in which we test drive Jenkins. More details can be found at www.vishalbiyani.com/ci-continuous-delivery
Using CI for continuous delivery Part 2Vishal Biyani
This is part 3 of "Using CI for continuous delivery" in which we test drive TeamCity. More details can be found at www.vishalbiyani.com/ci-continuous-delivery
Using CI for continuous delivery Part 1Vishal Biyani
This is part 3 of "Using CI for continuous delivery" in which we test drive Go. More details can be found at www.vishalbiyani.com/ci-continuous-delivery
This document contains slides from an Andrew Parker presentation on Puppet. It discusses Puppet's capabilities for infrastructure automation including defining infrastructure states, simulating changes, enforcing configurations, and reporting on changes. Key components of Puppet like the Puppet master, Puppet agents, Facter, Hiera and PuppetDB are explained. The presentation also covers Puppet Enterprise features and how to get involved with the Puppet community and training.
The document discusses Puppet modules and describes a holistic approach to module development. It outlines the history of developing Puppet modules at Lab42 since 2007 and describes key mantras for module development, including data separation, reusability, standardization, and interoperability. It also discusses Example42 next generation modules which aim to have a coherent, standardized structure and allow for customization, extension, and integration with tools like Puppi.
OSDC 2011 | Advanced Puppet Topics by Ken BarberNETWAYS
Viele User kennen Puppet wahrscheinlich schon aus Ihrem täglichen Arbeitsleben haben aber wahrscheinlich nicht die Zeit es bis auf seine Grenzen auszutesten was dessen Funktionalität betrifft. Dieser Vortrag bietet einen Einblick über Features für fortgeschrittene Anwender mit folgenden Themen, welche durch praktische Beispiele ergänzt werden:
Unterstützung vom neuen Ruby DSL zum Schreiben von Manifesten im reinen Ruby
Die extlookup Funktion zum Speichern von Informationen in externen Formaten
Benutzung von dotty output zur Analyse von Ressourcen - Abhängigkeiten
Exportierte Ressourcen-Abhängigkeiten als Zugang zu generierten Informationen anderer nodes
Externe node classifiers um Puppet in ein externes Tool wie CMDB zu integrieren
Puppetdoc - Generierung und Handhabung zur Dokumentation von Puppet-Inhalten
This document discusses using virtual machines to create consistent development environments. It introduces Vagrant and Puppet as tools for managing virtual machines and configurations. Vagrant allows developers to easily create and configure virtual development environments that match production. Puppet helps enforce consistency across environments by automating configuration of services, files, and settings. The document provides examples of using these tools and outlines some challenges in adopting them.
Rails ORM De-mystifying Active Record has_manyBlazing Cloud
Rails' ORM layer, ActiveRecord, is an elegant solution for keeping model code simple and modular (aka DRY). Demystifying the way Ruby-on-Rails uses runtime method generation opens a doorway for understanding and provides a foundation for the other ways Rails uses simple conventions to allow sophisticated, concise functionality in a declarative style.
Here is big mystery that you'll be equipped to understand better after playing with the slides
-> If honeys is an array - and honeys has a method create! - then why does an array object [] not have create!
Hive.first.honeys.class
=> Array
[].create!
=> NoMethodError
Hive.first.honeys.create!
This document contains slides from a presentation given by Chris Spence on Tuesday, April 29, 2014 about Puppet Labs and Puppet Enterprise. It discusses Puppet's architecture, components like Facter, Hiera and MCollective. It also covers Puppet Enterprise features, the Puppet Forge, training opportunities, careers at Puppet Labs and how to get involved in the Puppet community.
Acceptance & Integration Testing With Behat (PHPNw2011)benwaine
This document provides an overview and roadmap for using Behat for acceptance and integration testing at Sky Bet. It introduces behaviour driven development (BDD) and discusses how Behat can be used to test APIs, user interfaces, and data driven tests. Example feature files and steps are provided to demonstrate how to write tests for a sample conference website using Behat.
- The presentation was about multi-master replication given by Robert Hodges from Continuent
- It emphasized that while multi-master replication may be technically easy to implement, applications need to be designed to work properly in a multi-master environment
- Some applications are not naturally suited for a multi-master topology and require changes to things like primary key generation or error handling in order to work correctly in a multi-master setup
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...Pablo Godel
Un programador PHP/web no está completo sin conocimientos de administración de servidores. Cuando buscas un trabajo, seguramente te encontrarás con el requerimiento de conocimientos para configurar un servidor (Linux, Apache, MySQL and PHP). Las posibilidades de que consigas ese trabajo son mayores si conoces sobre servidores.
Cassandra Day 2014: Interactive Analytics with Cassandra and SparkEvan Chan
This document discusses using Spark and Cassandra together for interactive analytics. It describes how Evan Chan uses both technologies at Ooyala to solve the problem of generating analytics from raw data in Cassandra in a flexible and fast way. It outlines their architecture of using Spark to generate materialized views from Cassandra data and then powering queries with those cached views for low latency queries.
Docker Continuous Delivery Workshop slide in Docker Training & Workshop for DevOps and Continuous Delivery at OSS Festival 2014 Thailand on October 11, 2014
The document discusses how Puppet can be used to automate the installation and configuration of Splunk through consistent management of servers. It provides an overview of key Puppet concepts like Facter, Hiera, resources and modules. The presentation demonstrates setting up a Splunk cluster of 4 servers using Vagrant and Puppet to provision and configure the multi-site deployment.
Announcing public availability of Genestack Platform Alpha. Free signup at https://alpha.genestack.com. Genestack Platform is a universal platform for developing bioinformatics applications. It is a complete framework with components for processing genomics data, creating powerful analytical visualisations and delivering them securely to end-users.
TYPO3 Congres 2012 - Test-Driven Development binnen TYPO3 Flow en NeosTYPO3 Nederland
Test-Driven Development is een kernwaarde van TYPO3 Flow en Neos development - zie hoe, en waarom, we dit doen. De complexiteit van frameworks zoals TYPO3 Flow en applicaties als TYPO3 Neos is een goede test coverage essentieel, of de kwaliteit en ontwikkeling zal langzaam stil komen te liggen.
Deze sessie laat zien hoe we unit en functionele tests maken voor PHP en JavaScript code. En aangezien het maken van tests zonder het uitvoeren niet veel helpt zal ook Continues integrations (CI) zijdelings genoemd worden.
Rens Admiraal
Rens Admiraal is een freelance webdeveloper / coach en Senior Software Architect bij Beech Applications uit Venlo.
Rond zijn 14e is Rens begonnen met 'programmeren', toen nog door het analizeren van code snippets op prehistorische computers. Door telkens opnieuw nieuwe uitdagingen aan te gaan heeft Rens meerdere talen geleerd, en heeft hij meegewerkt aan een breed scala aan web projecten. Nu is Rens TYPO3 Flow / TYPO3 Neos core lid en werkt hier vooral aan de Javascript kant van TYPO3 Neos.
Bij verschillende bedrijven heeft Rens gezien hoe ontwikkeling in verschillende mates van structuur gedaan kan worden. Langzaamaan heeft dit geleid tot een grote interesse voor ontwikkel structuur, continues integration, automatisch testen en code kwaliteit. Nu helpt Rens bij het opzetten van ontwikkelomgevingen en het trainen van ontwikkelaars om in zo'n omgeving te werken.
Rens woont in Ede met zijn vrouw en 3 zoons, speelt basgitaar en houdt ervan om af en toe wat druk van de ketel te halen op een (beach)volleybalveld.
Specking Interactors with PHPSpec and YOLO (DDD) at PHPConference Argentina 2013cordoval
The document discusses domain-driven design and behavior-driven development approaches for building an exam simulator system. It shows the folder structure which separates domains, ports, services, and infrastructure. It also demonstrates running behavior-driven development scenarios and domain-driven design refactoring to model exam domains and interactions for taking, building, and grading exams.
The ideal module system and the harsh realityAdam Warski
The document discusses different approaches to modularity in software development, including packages, build modules, and programming language modules. It presents Veripacks as a way to specify package exports and imports to achieve modularity without full build modules. Ceylon is discussed as a language that builds modularity directly into its package and module system. The ideal properties of a module system are outlined, and it is noted that different systems may fulfill these properties to varying degrees depending on their scope and goals.
Puppet getting started will show the different components used in puppet environments, starting with facter and puppet to different webinterfaces like puppet enterprise console and foreman. It will also cover an exemplary design for scaling the puppet master and for development livecycle of modules. Furthermore an example for design of modules will be given.
This document summarizes Eric Holscher's talk on safely deploying software on the cutting edge. The talk discusses Urban Airship's deployment process, including using Git for version control, maintaining a QA environment, designing services as composable pieces, and automating deployments using tools like Fabric. It also covers verifying deployments by routing traffic to new instances and checking metrics to identify issues before notifying customers.
Similar to Puppet Camp Berlin 2014: Advanced Puppet Design (20)
Puppet camp2021 testing modules and controlrepoPuppet
This document discusses testing Puppet code when using modules versus a control repository. It recommends starting with simple syntax and unit tests using PDK or rspec-puppet for modules, and using OnceOver for testing control repositories, as it is specially designed for this purpose. OnceOver allows defining classes, nodes, and a test matrix to run syntax, unit, and acceptance tests across different configurations. Moving from simple to more complex testing approaches like acceptance tests is suggested. PDK and OnceOver both have limitations for testing across operating systems that may require customizing spec tests. Infrastructure for running acceptance tests in VMs or containers is also discussed.
This document appears to be for a PuppetCamp 2021 presentation by Corey Osman of NWOPS, LLC. It includes information about Corey Osman and NWOPS, as well as sections on efficient development, presentation content, demo main points, Git strategies including single branch and environment branch strategies, and workflow improvements. Contact information is provided at the bottom.
The document discusses operational verification and how Puppet is working on a new module to provide more confidence in infrastructure health. It introduces the concept of adding check resources to catalogs to validate configurations and service health directly during Puppet runs. Examples are provided of how this could detect issues earlier than current methods. Next steps outlined include integrating checks into more resource types, fixing reporting, integrating into modules, and gathering feedback. This allows testing and monitoring to converge by embedding checks within configurations.
This document provides tips and tricks for using Puppet with VS Code, including links to settings examples and recommended extensions to install like Gitlens, Remote Development Pack, Puppet Extension, Ruby, YAML Extension, and PowerShell Extension. It also mentions there will be a demo.
- The document discusses various patterns and techniques the author has found useful when working with Puppet modules over 10+ years, including some that may be considered unorthodox or anti-patterns by some.
- Key topics covered include optimization of reusable modules, custom data types, Bolt tasks and plans, external facts, Hiera classification, ensuring resources for presence/absence, application abstraction with Tiny Puppet, and class-based noop management.
- The author argues that some established patterns like roles and profiles can evolve to be more flexible, and that running production nodes in noop mode with controls may be preferable to fully enforcing on all nodes.
Applying Roles and Profiles method to compliance codePuppet
This document discusses adapting the roles and profiles design pattern to writing compliance code in Puppet modules. It begins by noting the challenges of writing compliance code, such as it touching many parts of nodes and leading to sprawling code. It then provides an overview of the roles and profiles pattern, which uses simple "front-end" roles/interfaces and more complex "back-end" profiles/implementations. The rest of the document discusses how to apply this pattern when authoring Puppet modules for compliance - including creating interface and implementation classes, using Hiera for configuration, and tools for reducing boilerplate code. It aims to provide a maintainable structure and simplify adapting to new compliance frameworks or requirements.
This document discusses Kinney Group's Puppet compliance framework for automating STIG compliance and reporting. It notes that customers often implement compliance Puppet code poorly or lack appropriate Puppet knowledge. The framework aims to standardize compliance modules that are data-driven and customizable. It addresses challenges like conflicting modules and keeping compliance current after implementation. The framework generates automated STIG checklists and plans future integration with Puppet Enterprise and Splunk for continued compliance reporting. Kinney Group cites practical experience implementing the framework for various military and government customers.
Enforce compliance policy with model-driven automationPuppet
This document discusses model-driven automation for enforcing compliance. It begins with an overview of compliance benchmarks and the CIS benchmarks. It then discusses implementing benchmarks, common challenges around configuration drift and lack of visibility, and how to define compliance policy as code. The key points are that automation is essential for compliance at scale; a model-driven approach defines how a system should be configured and uses desired-state enforcement to keep systems compliant; and defining compliance policy as code, managing it with source control, and automating it with CI/CD helps achieve continuous compliance.
This document discusses how organizations can move from a reactive approach to compliance to a proactive approach using automation. It notes that over 50% of CIOs cite security and compliance as a barrier to IT modernization. Puppet offers an end-to-end compliance solution that allows organizations to automatically eliminate configuration drift, enforce compliance at scale across operating systems and environments, and define policy as code. The solution helps organizations improve compliance from 50% to over 90% compliant. The document argues that taking a proactive automation approach to compliance can turn it into a competitive advantage by improving speed and innovation.
Automating it management with Puppet + ServiceNowPuppet
As the leading IT Service Management and IT Operations Management platform in the marketplace, ServiceNow is used by many organizations to address everything from self service IT requests to Change, Incident and Problem Management. The strength of the platform is in the workflows and processes that are built around the shared data model, represented in the CMDB. This provides the ‘single source of truth’ for the organization.
Puppet Enterprise is a leading automation platform focused on the IT Configuration Management and Compliance space. Puppet Enterprise has a unique perspective on the state of systems being managed, constantly being updated and kept accurate as part of the regular Puppet operation. Puppet Enterprise is the automation engine ensuring that the environment stays consistent and in compliance.
In this webinar, we will explore how to maximize the value of both solutions, with Puppet Enterprise automating the actions required to drive a change, and ServiceNow governing the process around that change, from definition to approval. We will introduce and demonstrate several published integration points between the two solutions, in the areas of Self-Service Infrastructure, Enriched Change Management and Automated Incident Registration.
This document promotes Puppet as a tool for hardening Windows environments. It states that Puppet can be used to harden Windows with one line of code, detect drift from desired configurations, report on missing or changing requirements, reverse engineer existing configurations, secure IIS, and export configurations to the cloud. Benefits of Puppet mentioned include hardening Windows environments, finding drift for investigation, easily passing audits, compliance reporting, easy exceptions, and exporting configurations. It also directs users to Puppet Forge modules for securing Windows and IIS.
Simplified Patch Management with Puppet - Oct. 2020Puppet
Does your company struggle with patching systems? If so, you’re not alone — most organizations have attempted to solve this issue by cobbling together multiple tools, processes, and different teams, which can make an already complicated issue worse.
Puppet helps keep hosts healthy, secure and compliant by replacing time-consuming and error prone patching processes with Puppet’s automated patching solution.
Join this webinar to learn how to do the following with Puppet:
Eliminate manual patching processes with pre-built patching automation for Windows and Linux systems.
Gain visibility into patching status across your estate regardless of OS with new patching solution from the PE console.
Ensure your systems are compliant and patched in a healthy state
How Puppet Enterprise makes patch management easy across your Windows and Linux operating systems.
Presented by: Margaret Lee, Product Manager, Puppet, and Ajay Sridhar, Sr. Sales Engineer, Puppet.
The document discusses how Puppet can be used to accelerate adoption of Microsoft Azure. It describes lift and shift migration of on-premises workloads to Azure virtual machines. It also covers infrastructure as code using Puppet and Terraform for provisioning, configuration management using Puppet Bolt, and implementing immutable infrastructure patterns on Azure. Integrations with Azure services like Key Vault, Blob Storage and metadata service are presented. Patch management and inventory of Azure resources with Puppet are also summarized.
This document discusses using Puppet Catalog Diff to analyze the impact of changes between Puppet environments or catalogs. It provides the command line usage and options for Puppet Catalog Diff. It also discusses how to integrate Puppet Catalog Diff into CI/CD pipelines for automated impact analysis when merging code changes. Additional resources like GitHub projects and Dev.to posts are provided for learning more about diffing Puppet environments and catalogs.
ServiceNow and Puppet- better together, Kevin ReeuwijkPuppet
ServiceNow and Puppet can be integrated in four key areas: 1) Self-service infrastructure allows non-Puppet experts to control infrastructure through a ServiceNow interface; 2) Enriched change management automatically generates ServiceNow change requests from Puppet changes and populates them with impact details; 3) Automated incident registration forwards details of configuration drift corrections in Puppet to ServiceNow to create incidents; and 4) Up-to-date asset management would periodically upload Puppet inventory data to ServiceNow to keep the CMDB accurate without disruptive discovery runs.
This document discusses how Puppet Relay uses Tekton pipelines to orchestrate containerized workflows. It provides an overview of how Tekton fits into the Relay architecture, with Tekton controllers managing taskrun pods to execute workflow steps defined in YAML. Triggers can initiate workflows based on events, with reusable and composable steps for tasks like provisioning infrastructure or clearing resources. Relay also includes features for parameters, secrets, outputs, and approvals to customize workflows. An ecosystem of open source integrations provides sample workflows and steps for common use cases.
100% Puppet Cloud Deployment of Legacy SoftwarePuppet
This document discusses deploying legacy software into the AWS cloud using Puppet. It proposes modeling AWS resources like security groups, autoscaling groups, and launch configurations as Puppet resources. This would allow Puppet to provision the underlying AWS infrastructure and configure servers launched in autoscaling groups. It acknowledges challenges around server reboots but suggests they can be addressed. In summary, it argues custom Puppet resources can easily model AWS resources and using Puppet to configure autoscaling servers is possible despite some challenges around rebooting servers during deployment.
This document discusses a partnership between Republic Polytechnic's School of Infocomm and Puppet to promote DevOps practices. It introduces several people involved with the partnership and outlines their mission to prepare more IT companies and individuals for jobs in the DevOps field through training courses. The document describes some short courses offered on DevOps topics and using the Puppet and Microsoft Azure platforms. It provides an example of how Republic Polytechnic has automated infrastructure configuration using Puppet to save time and reduce errors. There is a request at the end for readers to register their interest in DevOps by completing a survey.
This document discusses continuous compliance and DevSecOps best practices followed by financial services organizations.
Continuous compliance is defined as an ongoing process of proactive risk management that delivers predictable, transparent, and cost-effective compliance results. It involves continuously monitoring compliance controls, providing real-time alerts for failures and remediation recommendations, and maintaining up-to-date policies. Best practices for continuous compliance discussed include defining CIS controls and benchmarks, achieving transparent compliance dashboards and automated fixes for breaches.
DevSecOps is introduced as bringing security earlier in the application development lifecycle to minimize vulnerabilities. It aims to make everyone accountable for security. Challenges discussed include security teams struggling to keep up with DevOps pace and
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyPuppet
The document discusses using Puppet and Vault together to dynamically manage SSL certificates. Puppet can use the vault_cert resource to request signed certificates from Vault and configure services to use the certificates. On Windows, some additional logic is needed to retrieve certificates' thumbprints and bind services to certificates using those thumbprints. This approach provides automated certificate renewal and distribution across platforms.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
Looking for a reliable mobile app development company in Noida? Look no further than Drona Infotech. We specialize in creating customized apps for your business needs.
Visit Us For : https://www.dronainfotech.com/mobile-application-development/
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
OpenMetadata Community Meeting - 5th June 2024OpenMetadata
The OpenMetadata Community Meeting was held on June 5th, 2024. In this meeting, we discussed about the data quality capabilities that are integrated with the Incident Manager, providing a complete solution to handle your data observability needs. Watch the end-to-end demo of the data quality features.
* How to run your own data quality framework
* What is the performance impact of running data quality frameworks
* How to run the test cases in your own ETL pipelines
* How the Incident Manager is integrated
* Get notified with alerts when test cases fail
Watch the meeting recording here - https://www.youtube.com/watch?v=UbNOje0kf6E
Hand Rolled Applicative User ValidationCode KataPhilip Schwarz
Could you use a simple piece of Scala validation code (granted, a very simplistic one too!) that you can rewrite, now and again, to refresh your basic understanding of Applicative operators <*>, <*, *>?
The goal is not to write perfect code showcasing validation, but rather, to provide a small, rough-and ready exercise to reinforce your muscle-memory.
Despite its grandiose-sounding title, this deck consists of just three slides showing the Scala 3 code to be rewritten whenever the details of the operators begin to fade away.
The code is my rough and ready translation of a Haskell user-validation program found in a book called Finding Success (and Failure) in Haskell - Fall in love with applicative functors.
DDS Security Version 1.2 was adopted in 2024. This revision strengthens support for long runnings systems adding new cryptographic algorithms, certificate revocation, and hardness against DoS attacks.
Odoo ERP software
Odoo ERP software, a leading open-source software for Enterprise Resource Planning (ERP) and business management, has recently launched its latest version, Odoo 17 Community Edition. This update introduces a range of new features and enhancements designed to streamline business operations and support growth.
The Odoo Community serves as a cost-free edition within the Odoo suite of ERP systems. Tailored to accommodate the standard needs of business operations, it provides a robust platform suitable for organisations of different sizes and business sectors. Within the Odoo Community Edition, users can access a variety of essential features and services essential for managing day-to-day tasks efficiently.
This blog presents a detailed overview of the features available within the Odoo 17 Community edition, and the differences between Odoo 17 community and enterprise editions, aiming to equip you with the necessary information to make an informed decision about its suitability for your business.
Utilocate offers a comprehensive solution for locate ticket management by automating and streamlining the entire process. By integrating with Geospatial Information Systems (GIS), it provides accurate mapping and visualization of utility locations, enhancing decision-making and reducing the risk of errors. The system's advanced data analytics tools help identify trends, predict potential issues, and optimize resource allocation, making the locate ticket management process smarter and more efficient. Additionally, automated ticket management ensures consistency and reduces human error, while real-time notifications keep all relevant personnel informed and ready to respond promptly.
The system's ability to streamline workflows and automate ticket routing significantly reduces the time taken to process each ticket, making the process faster and more efficient. Mobile access allows field technicians to update ticket information on the go, ensuring that the latest information is always available and accelerating the locate process. Overall, Utilocate not only enhances the efficiency and accuracy of locate ticket management but also improves safety by minimizing the risk of utility damage through precise and timely locates.
GraphSummit Paris - The art of the possible with Graph TechnologyNeo4j
Sudhir Hasbe, Chief Product Officer, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfUndress Baby
The quest for the best AI face swap solution is marked by an amalgamation of technological prowess and artistic finesse, where cutting-edge algorithms seamlessly replace faces in images or videos with striking realism. Leveraging advanced deep learning techniques, the best AI face swap tools meticulously analyze facial features, lighting conditions, and expressions to execute flawless transformations, ensuring natural-looking results that blur the line between reality and illusion, captivating users with their ingenuity and sophistication.
Web:- https://undressbaby.com/
2. Hello
• Craig Dunn
• Puppet user since 2008
• Previously worked for Puppet Labs
• Founder of Enviatics
• IT automation engineer and trainer
• Based in Spain but work anywhere
Friday, 11 April 14
3. My talk
• Avoiding pain
• Writing good modules
• Challenges of codebase design
• Roles / Profiles
Friday, 11 April 14
13. Danger Signs
• Resources being declared in two modules
• You don’t know where your
implementation “fits”
• Lot’s of logic at a node level
• Repetition and duplication
• The if statement is your go-to-guy
Friday, 11 April 14
17. Catastrophic Signs
ensure_resource(‘package’,‘httpd’,{‘ensure’
=> ‘installed’})
if function_defined_with_params(["#{type}[#{item}]", params])
Puppet.debug("Resource #{type}[#{item}] not created because it already exists")
else
Puppet::Parser::Functions.function(:create_resources)
function_create_resources([type.capitalize, { item => params }])
end
Friday, 11 April 14
18. World ending signs
• You use parser=future in production
• You aren’t regretting it yet
• You then implemented order=manifest
Friday, 11 April 14
20. Stop thinking about
what it looks like
• Break everything down into components
• Granularity is the key
• Think about what it actually is
Friday, 11 April 14
32. You are gonna share
your s**t aren’t you?
Friday, 11 April 14
33. Sharing is not just
pull requests
• Share your ideas in blog posts
• What worked? What didn’t?
• Discuss and collaborate on mailing lists
• IRC
Friday, 11 April 14
34. Making sharing easier
• Data separation (Hiera)
• Allow the user flexibility of implementation
Friday, 11 April 14
35. defaults params pattern
• Use a parameterized class
• Default from an inherited class
• Allow the user to decide implementation
Friday, 11 April 14
37. defaults pattern
class apache {
$packagename=‘httpd’
$docroot=’/var/www’
$listenaddr=‘10.0.1.12’
$servername=‘myweb.foo.com’
package { $packagename:
ensure => installed,
}
.....
In-module
private data
No way to override
Friday, 11 April 14
50. Node-level logic
• Risks duplication and repetition
• No guarantee of consistency
• Pseudo nodes and inheritance trees will get
messy, fast.
• TMI!
Friday, 11 April 14
51. Thinking beyond the
module....
• Puppet is a code base
• You need an effective framework
• Gluing everything together
Friday, 11 April 14
53. Profiles
• Wrapper classes implementing component
modules
• Define a logical technology stack
• But just one!
Friday, 11 April 14
54. Profiles
class profile::blog {
User <| group == ‘webadmins’ |>
class { ‘::mysql::server’: }
class { ‘::mysql::bindings’:
php_enable => true,
}
class { ‘::wordpress’:
install_dir => ‘/var/www/wp’,
}
}
Friday, 11 April 14
55. Profiles
• Component modules manage the resources
• Profiles provide a layer of implementation
Friday, 11 April 14
59. Lessons learned
• Granularity is good
• Don’t assume business logic will directly
translate to technology
• Abstraction is awesome.... but that’s
nothing new....
Friday, 11 April 14
60. Abstraction is a core
principle of coding
• Implementation is abstracted by methods
• Methods abstracted by classes and modules
• They are abstracted with libraries
• Puppet is code!
Friday, 11 April 14
61. Puppet is all about
abstraction
• Providers are abstracted by types
• Resources are abstracted by classes
• Classes are abstracted by modules
Friday, 11 April 14
62. Puppet is all about
abstraction
• Providers are abstracted by types
• Resources are abstracted by classes
• Classes are abstracted by modules
•Modules are abstracted by profiles
Friday, 11 April 14
63. Focussing on
Abstraction
• We’ve turned business logic into a
technology stack
• Can we translate that back into business
logic?
• Why would we even want to do that?
Friday, 11 April 14
64. Introducing roles
• Translate to business logic
• Identify the function of a server in human
terms
• We never said business logic was a bad
thing
Friday, 11 April 14
66. Think about the users
Meet John, Susan and Bill.
Friday, 11 April 14
67. John is a Sysadmin
• Wants to ensure all servers have kernel
hardening, NTP and SSH Server installed
• Wants to manage what packages, services,
files and other resources
• Is responsible for maintaining all the
components of a any type of server
Friday, 11 April 14
68. Susan is an application
specialist
• Cares that a the node has Wordpress and
MySQL implemented properly
• She probably doesn’t care about how
sudoers is configured
Friday, 11 April 14
69. Bill is an IT manager
• Bill cares that the server is an ACME App
server
• He probably doesn’t understand what
sudoers is
Friday, 11 April 14
70. What do they care
about?
• John cares about modelling all resources
• Susan cares about the technology stack
• Bill cares about the business logic
Friday, 11 April 14
71. In Puppet
• Resource modelling is done in component
modules
• The technology stack is defined in profiles
• Where do we represent the business logic
for Bill?
Friday, 11 April 14
72. Roles
• Represent business logic, not technology
• Define a set of technology stacks (profiles)
that make up the logical role
• Allow the business to manage how the
infrastructure looks without defining
what it is
Friday, 11 April 14
73. A node can only have
one role
• A role can include as many profiles as
required to define itself
• If a node requires two roles, it has by
definition become a new role
Friday, 11 April 14
74. A node can only have
one role
• A role can include as many profiles as
required to define itself
• If a node requires two roles, it has by
definition become a new role
• Something couldn’t be a lion and a
kangaroo at the same time!
Friday, 11 April 14
81. Role classes
class role::acme {
include profiles::security
include profiles::users
include profiles::networking
include profiles::blog
}
This is a “acme” server
Friday, 11 April 14
82. Terminology
• Profiles and Roles are Puppet modules
• They are not special
• Everything is a module
Friday, 11 April 14
83. Classification
• Assigning classes to a node
• You can classify within Puppet code
(site.pp)
• You can use an External Node Classifier
(ENC)
Friday, 11 April 14
84. Classification
• You can classify your nodes however you
want
• Puppet Dashboard
• Enterprise Console
• Foreman
• Site.pp
• Custom script
Friday, 11 April 14
91. Data Separation
• Use parameterized classes
• Hiera data bindings
• Component modules and profiles can look
up data from Hiera
• Roles should NOT
Friday, 11 April 14
92. Roles and Profiles
for DevOps
• Full props to Laurent Bernaille from D2SI
• Achieving Continuous Delivery and Devops
with Puppet
• Puppet Camp Paris, 2014.
Friday, 11 April 14
93. Roles and Profiles
for DevOps
• Using roles and profiles makes it easier for
developers and ops to all collaborate on
Puppet
• Developers write profiles for the their apps
• Ops write profiles for their infrastructure
• Roles encompass all of them
Friday, 11 April 14
96. Key benefits
• Reduced node-level logic to a role.
• Gain the ability to be flexible with
implementation
• Business logic improves managability by
non-Puppet users
• Edge cases are now easy to solve
Friday, 11 April 14
98. This is not the way to
design Puppet... It’s a
way.
Friday, 11 April 14
99. Can I implement this
design without roles?
Friday, 11 April 14
100. Can I implement this
design without roles?
• Yes.
• You lose the layer of abstraction that
exposes business logic
Friday, 11 April 14
101. Can my roles be
defined in my ENC?
Friday, 11 April 14
102. Can my roles be
defined in my ENC?
• Yes.
• Keeping it in code makes it versionable
Friday, 11 April 14
103. Can’t I just use Hiera
to define profiles?
Friday, 11 April 14
104. Can’t I just use Hiera
to define profiles?
• Technically yes.
• You lose the flexibility to implement code
logic in profiles and it may become
restrictive
Friday, 11 April 14
108. The fundamental
concepts....
• Abstraction, abstraction, abstraction
• Decoupling business logic, implementation
and resource modelling.
• Separating data and code
Friday, 11 April 14
109. The fundamental
concepts....
• Abstraction, abstraction, abstraction
• Decoupling business logic, implementation
and resource modelling.
• Separating data and code
• Reducing node-level complexity
Friday, 11 April 14
111. Danke. Questions?
• Follow me at @crayfishX
• Bug me on Freenode: crayfishx
In memory of Giles Constant, who spent many nights debating Puppet design patterns with me over copious amounts of beer
and helped me on my journey of discovery learning how to implement Puppet properly. R.I.P
Friday, 11 April 14