SlideShare a Scribd company logo
# 
Christoph Leithner, Founder at celix
# 
• What is the starting Point of our Journey to 
Continuous Delivery? 
• Continuous Integration 
– Source Code Checkout 
– Static Code Analysis 
– Automated Tests 
– Compilation 
– Packaging
# 
• Database Structure 
• Database Content 
• Installable Software 
– Libraries 
– Executables 
– OS Packages 
– Installers 
• Some Type of Deployment
# 
Manual 
Personal 
Only a Guru understands the 
system and is able to deploy it 
Defined 
Scripted 
Scripts are available 
to setup most of the 
Components of our 
System 
There enough 
Documentation so we do 
not always have to ask the 
Guru if we want to deploy 
We use IT-Automation to 
deploy and enforce our 
Deployment – no manual 
changes. 
Defined Deployments are not 
possible without IT-Automation, 
Traceability and Discipline
# 
• Not all Changes to Dependencies trigger a Build 
• DEV-Database is populated with Snapshots 
• DEV-Database Changes are not tracked 
• Semi-automated DEV-Deployments cause Delays 
• Only some aspects of the System are managed by 
Continuous Integration – no full Stack Deployment 
• Builds/Deployments are not reproducible
#
# 
• Developer Code 
• Deployment Code 
• Configuration Data 
• Database Structure 
• Database Content 
• Installable Software 
• Documentation
#
# 
module_name 
manifests 
files 
templates 
lib 
spec 
tests 
Modulefile
# 
puppet module install puppetlabs-apache --version 0.6.0 
puppet module install puppetlabs-ntp --version 0.2.0 
apache stdlib firewall ntp
# 
forge 
puppetlabs-apache 
puppetlabs-stdlib 
puppetlabs-firewall 
puppetlabs-apache 
puppetlabs-stdlib 
puppetlabs-firewall
# 
• Module Reuse is the fastest way of Automation 
• But it is not as easy as it might seem to write a 
reusable Puppet Module 
• “We have this Module managing …, but I cannot 
share it. It contains too many Site specific 
Parameters” 
• Separating Module Code from Configuration Data 
is key for Module Reuse
# 
• Puppet 3.0 integrates Hiera for Configuration Data 
• Hiera defines a list of Backends 
• Hiera defines a Lookup Hierarchy 
:hierarchy 
- “%{clientcert}” 
- “%{environment}” 
- “%{osfamily}”
# 
apache stdlib firewall hiera
# 
module_name 
manifests 
files 
templates 
lib 
spec 
tests 
Modulefile 
data
#
# 
• DB Structure 
– DB Dump 
– DB Snapshot 
– SQL Scripts 
• Creating DB Structure with SQL Scripts 
1. Create all Tables 
2. Fill all Tables 
3. Create/Enable all Relational Constraints, Triggers etc.
# 
• DB Content Types 
– System Data 
– Configuration Data 
– Business Object Data 
• DB Content Tools 
– SQL Insert Scripts 
– Schema or Table Exports/Dumps 
– Tool Specific Files (e.g. XML)
# 
• DB Migration Tools 
– OR Mappers – built into the Application 
• Rails: Active Records 
• Java: Flyway 
– Evolutionary/Agile Database Tools 
• dbdeploy 
• DBmaestro
# 
1_create.sql 
2_fill.sql 
3_enable.sql 
create 
tables 
indexes 
... 
views 
functions 
procedures 
fill 
system 
configuration 
business_objects 
migrate 
changelist_A 
changelist_B
#
# 
• OS Packages 
– Different for each Platform and Distribution 
– Multiple Repositories required 
– Packages and Metadata 
• Installers 
– Simplify complicated installations 
– Same Installation on multiple Platforms 
– Manual Installations not supported
# 
• Puppet Package Resource: 
package {‘apache2’: 
ensure => present, 
} 
• Ensure Attribute Values 
– present: Package is installed 
– latest: Package is upgraded to the latest available 
– ‘2.4.6’: specified Version of the Package is installed
# 
• New Package Versions are available online 
• Can we apply them automatically? 
– Is the Package managed by Puppet? 
– Is the Package a Dependency of a Package managed 
by Puppet? 
– Is there a Requirement for a particular Version of an 
updated Package? 
– Is there a Requirement for a particular Version of a 
Dependency of an updated Package?
# 
• We need to know which is the latest Version of a 
Package in a certain Environment 
• We need to create a local Repository and manage 
all Changes to it. 
• On Ubuntu we use aptly to manage our local 
Repositories
Source: http://www.aptly.info/doc/overview/ 
#
#
# 
• We check in the published Repository into 
Perforce to get full Traceability 
• We can use Perforce to propagate Changes 
between Environments 
• What do we use for Puppet ensure: 
• latest: Puppet actively tries to upgrade 
• present: Puppet trusts the Package Manger 
• ´2.4.6´: if we need to pin an older Version 
(apt::pin)
# 
• We use a Perforce Stream to track the Work of an 
Installer in particular Directory 
• This way can use a Task Stream to track the work 
of the Installer on each machine 
• Currently we only use this Feature when we 
automate deployments 
• The same concept can be used to tack changes of 
Directories on managed nodes
# 
• Developer Code 
• Deployment Code 
• Configuration Data 
• Database Structure 
• Database Content 
• Installable Software 
• Documentation
# 
• Full Traceability 
• Code Reviews in Swarm for all Changes 
• Ability to make consistent changes across all 
Artifacts 
• Revision Graph for Insights on a particular Artifact 
• Easy Tracking of the Work of Installers
# 
Christoph Leithner 
c.leithner@celix.at

More Related Content

What's hot

Automating your infrastructure with Chef
Automating your infrastructure with ChefAutomating your infrastructure with Chef
Automating your infrastructure with Chef
John Ewart
 
Understand Chef
Understand ChefUnderstand Chef
Understand Chef
devopsjourney
 
Overview of chef ( Infrastructure as a Code )
Overview of chef ( Infrastructure as a Code )Overview of chef ( Infrastructure as a Code )
Overview of chef ( Infrastructure as a Code )
Pravin Mishra
 
Server Installation and Configuration with Chef
Server Installation and Configuration with ChefServer Installation and Configuration with Chef
Server Installation and Configuration with Chef
Raimonds Simanovskis
 
SaltConf14 - Brendan Burns, Google - Management at Google Scale
SaltConf14 - Brendan Burns, Google - Management at Google ScaleSaltConf14 - Brendan Burns, Google - Management at Google Scale
SaltConf14 - Brendan Burns, Google - Management at Google Scale
SaltStack
 
Continuous Deployment with Jenkins and Salt
Continuous Deployment with Jenkins and SaltContinuous Deployment with Jenkins and Salt
Continuous Deployment with Jenkins and Salt
Anirban Saha
 
Introduction to Chef
Introduction to ChefIntroduction to Chef
Introduction to Chef
Pubudu Suharshan Perera
 
Introduction to Ansible - Jan 28 - Austin MeetUp
Introduction to Ansible - Jan 28 - Austin MeetUpIntroduction to Ansible - Jan 28 - Austin MeetUp
Introduction to Ansible - Jan 28 - Austin MeetUp
tylerturk
 
Puppet Camp Boston 2014: Keynote
Puppet Camp Boston 2014: Keynote Puppet Camp Boston 2014: Keynote
Puppet Camp Boston 2014: Keynote
Puppet
 
Chef, Vagrant and Friends
Chef, Vagrant and FriendsChef, Vagrant and Friends
Chef, Vagrant and Friends
Ben McRae
 
Chef, Devops, and You
Chef, Devops, and YouChef, Devops, and You
Chef, Devops, and You
Bryan Berry
 
PyCon India 2012: Celery Talk
PyCon India 2012: Celery TalkPyCon India 2012: Celery Talk
PyCon India 2012: Celery Talk
Piyush Kumar
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
Sascha Möllering
 
Mysql from a DBA prespective
Mysql from a DBA prespectiveMysql from a DBA prespective
Mysql from a DBA prespective
Karthik .P.R
 
Icinga 2010 at OSMC
Icinga 2010 at OSMCIcinga 2010 at OSMC
Icinga 2010 at OSMC
Icinga
 
Puppet camp london nov 2014 slides (1)
Puppet camp london nov 2014   slides (1)Puppet camp london nov 2014   slides (1)
Puppet camp london nov 2014 slides (1)
Puppet
 
Chef Fundamentals Training Series Module 2: Workstation Setup
Chef Fundamentals Training Series Module 2: Workstation SetupChef Fundamentals Training Series Module 2: Workstation Setup
Chef Fundamentals Training Series Module 2: Workstation Setup
Chef Software, Inc.
 
Sim a Microsoft Utiliza OpenSource em DevOps!
Sim a Microsoft Utiliza OpenSource em DevOps!Sim a Microsoft Utiliza OpenSource em DevOps!
Sim a Microsoft Utiliza OpenSource em DevOps!
Vinícius Batista de Souza
 
Chef
ChefChef
Chef ignited a DevOps revolution – BK Box
Chef ignited a DevOps revolution – BK BoxChef ignited a DevOps revolution – BK Box
Chef ignited a DevOps revolution – BK Box
Chef Software, Inc.
 

What's hot (20)

Automating your infrastructure with Chef
Automating your infrastructure with ChefAutomating your infrastructure with Chef
Automating your infrastructure with Chef
 
Understand Chef
Understand ChefUnderstand Chef
Understand Chef
 
Overview of chef ( Infrastructure as a Code )
Overview of chef ( Infrastructure as a Code )Overview of chef ( Infrastructure as a Code )
Overview of chef ( Infrastructure as a Code )
 
Server Installation and Configuration with Chef
Server Installation and Configuration with ChefServer Installation and Configuration with Chef
Server Installation and Configuration with Chef
 
SaltConf14 - Brendan Burns, Google - Management at Google Scale
SaltConf14 - Brendan Burns, Google - Management at Google ScaleSaltConf14 - Brendan Burns, Google - Management at Google Scale
SaltConf14 - Brendan Burns, Google - Management at Google Scale
 
Continuous Deployment with Jenkins and Salt
Continuous Deployment with Jenkins and SaltContinuous Deployment with Jenkins and Salt
Continuous Deployment with Jenkins and Salt
 
Introduction to Chef
Introduction to ChefIntroduction to Chef
Introduction to Chef
 
Introduction to Ansible - Jan 28 - Austin MeetUp
Introduction to Ansible - Jan 28 - Austin MeetUpIntroduction to Ansible - Jan 28 - Austin MeetUp
Introduction to Ansible - Jan 28 - Austin MeetUp
 
Puppet Camp Boston 2014: Keynote
Puppet Camp Boston 2014: Keynote Puppet Camp Boston 2014: Keynote
Puppet Camp Boston 2014: Keynote
 
Chef, Vagrant and Friends
Chef, Vagrant and FriendsChef, Vagrant and Friends
Chef, Vagrant and Friends
 
Chef, Devops, and You
Chef, Devops, and YouChef, Devops, and You
Chef, Devops, and You
 
PyCon India 2012: Celery Talk
PyCon India 2012: Celery TalkPyCon India 2012: Celery Talk
PyCon India 2012: Celery Talk
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
 
Mysql from a DBA prespective
Mysql from a DBA prespectiveMysql from a DBA prespective
Mysql from a DBA prespective
 
Icinga 2010 at OSMC
Icinga 2010 at OSMCIcinga 2010 at OSMC
Icinga 2010 at OSMC
 
Puppet camp london nov 2014 slides (1)
Puppet camp london nov 2014   slides (1)Puppet camp london nov 2014   slides (1)
Puppet camp london nov 2014 slides (1)
 
Chef Fundamentals Training Series Module 2: Workstation Setup
Chef Fundamentals Training Series Module 2: Workstation SetupChef Fundamentals Training Series Module 2: Workstation Setup
Chef Fundamentals Training Series Module 2: Workstation Setup
 
Sim a Microsoft Utiliza OpenSource em DevOps!
Sim a Microsoft Utiliza OpenSource em DevOps!Sim a Microsoft Utiliza OpenSource em DevOps!
Sim a Microsoft Utiliza OpenSource em DevOps!
 
Chef
ChefChef
Chef
 
Chef ignited a DevOps revolution – BK Box
Chef ignited a DevOps revolution – BK BoxChef ignited a DevOps revolution – BK Box
Chef ignited a DevOps revolution – BK Box
 

Similar to Puppet & Perforce: Versioning Everything for Deployments

Spot Trading - A case study in continuous delivery for mission critical finan...
Spot Trading - A case study in continuous delivery for mission critical finan...Spot Trading - A case study in continuous delivery for mission critical finan...
Spot Trading - A case study in continuous delivery for mission critical finan...
SaltStack
 
Devops
DevopsDevops
Devops
JyothirmaiG4
 
Flexible compute
Flexible computeFlexible compute
Flexible compute
Peter Clapham
 
Sanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansSanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticians
Peter Clapham
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
Miguel Zuniga
 
20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...
20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...
20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...
garrett honeycutt
 
Super chargeyourcontiniousintegrationdeployments
Super chargeyourcontiniousintegrationdeploymentsSuper chargeyourcontiniousintegrationdeployments
Super chargeyourcontiniousintegrationdeployments
Nikola Gotsev
 
Supercharge Your Continuous Integration Deployments
Supercharge Your Continuous Integration DeploymentsSupercharge Your Continuous Integration Deployments
Supercharge Your Continuous Integration Deployments
Nikola Gotsev
 
Open shift and docker - october,2014
Open shift and docker - october,2014Open shift and docker - october,2014
Open shift and docker - october,2014
Hojoong Kim
 
DCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production ParityDCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production Parity
Geoff Harcourt
 
DevSecCon London 2017: Permitting agility whilst enforcing security by Alina ...
DevSecCon London 2017: Permitting agility whilst enforcing security by Alina ...DevSecCon London 2017: Permitting agility whilst enforcing security by Alina ...
DevSecCon London 2017: Permitting agility whilst enforcing security by Alina ...
DevSecCon
 
Neutrondev ppt
Neutrondev pptNeutrondev ppt
Neutrondev ppt
marunewby
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
Eklove Mohan
 
Automated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. AnsibleAutomated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. Ansible
Alberto Molina Coballes
 
Habitat Overview
Habitat OverviewHabitat Overview
Habitat Overview
Mandi Walls
 
Openstack hk-summit-upgrades-talk
Openstack hk-summit-upgrades-talkOpenstack hk-summit-upgrades-talk
Openstack hk-summit-upgrades-talk
Buvanesh Kumar
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)
yalini97
 
Chef for openstack
Chef for openstackChef for openstack
Chef for openstack
openstackindia
 
Spring Roo Add-On Development & Distribution
Spring Roo Add-On Development & DistributionSpring Roo Add-On Development & Distribution
Spring Roo Add-On Development & Distribution
Stefan Schmidt
 
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Mandi Walls
 

Similar to Puppet & Perforce: Versioning Everything for Deployments (20)

Spot Trading - A case study in continuous delivery for mission critical finan...
Spot Trading - A case study in continuous delivery for mission critical finan...Spot Trading - A case study in continuous delivery for mission critical finan...
Spot Trading - A case study in continuous delivery for mission critical finan...
 
Devops
DevopsDevops
Devops
 
Flexible compute
Flexible computeFlexible compute
Flexible compute
 
Sanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansSanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticians
 
Fluo CICD OpenStack Summit
Fluo CICD OpenStack SummitFluo CICD OpenStack Summit
Fluo CICD OpenStack Summit
 
20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...
20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...
20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...
 
Super chargeyourcontiniousintegrationdeployments
Super chargeyourcontiniousintegrationdeploymentsSuper chargeyourcontiniousintegrationdeployments
Super chargeyourcontiniousintegrationdeployments
 
Supercharge Your Continuous Integration Deployments
Supercharge Your Continuous Integration DeploymentsSupercharge Your Continuous Integration Deployments
Supercharge Your Continuous Integration Deployments
 
Open shift and docker - october,2014
Open shift and docker - october,2014Open shift and docker - october,2014
Open shift and docker - october,2014
 
DCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production ParityDCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production Parity
 
DevSecCon London 2017: Permitting agility whilst enforcing security by Alina ...
DevSecCon London 2017: Permitting agility whilst enforcing security by Alina ...DevSecCon London 2017: Permitting agility whilst enforcing security by Alina ...
DevSecCon London 2017: Permitting agility whilst enforcing security by Alina ...
 
Neutrondev ppt
Neutrondev pptNeutrondev ppt
Neutrondev ppt
 
Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
 
Automated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. AnsibleAutomated Deployment and Configuration Engines. Ansible
Automated Deployment and Configuration Engines. Ansible
 
Habitat Overview
Habitat OverviewHabitat Overview
Habitat Overview
 
Openstack hk-summit-upgrades-talk
Openstack hk-summit-upgrades-talkOpenstack hk-summit-upgrades-talk
Openstack hk-summit-upgrades-talk
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)
 
Chef for openstack
Chef for openstackChef for openstack
Chef for openstack
 
Spring Roo Add-On Development & Distribution
Spring Roo Add-On Development & DistributionSpring Roo Add-On Development & Distribution
Spring Roo Add-On Development & Distribution
 
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
Habitat talk at CodeMonsters Sofia, Bulgaria Nov 27 2018
 

More from Perforce

How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning Needs
Perforce
 
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Perforce
 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Perforce
 
Understanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsUnderstanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPs
Perforce
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development Process
Perforce
 
How to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsHow to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOps
Perforce
 
How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog
Perforce
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team
Perforce
 
Shift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowShift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New Workflow
Perforce
 
Hybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldHybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated World
Perforce
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Perforce
 
Easier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMEasier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALM
Perforce
 
How To Master Your Mega Backlog
How To Master Your Mega Backlog How To Master Your Mega Backlog
How To Master Your Mega Backlog
Perforce
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Perforce
 
How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure
Perforce
 
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2
Perforce
 
Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?
Perforce
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Perforce
 
What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4
Perforce
 
Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison
Perforce
 

More from Perforce (20)

How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning Needs
 
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
 
Understanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsUnderstanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPs
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development Process
 
How to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsHow to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOps
 
How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team
 
Shift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowShift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New Workflow
 
Hybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldHybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated World
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
 
Easier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMEasier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALM
 
How To Master Your Mega Backlog
How To Master Your Mega Backlog How To Master Your Mega Backlog
How To Master Your Mega Backlog
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
 
How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure
 
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2
 
Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
 
What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4
 
Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison
 

Recently uploaded

dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
Shinana2
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Public CyberSecurity Awareness Presentation 2024.pptx
Public CyberSecurity Awareness Presentation 2024.pptxPublic CyberSecurity Awareness Presentation 2024.pptx
Public CyberSecurity Awareness Presentation 2024.pptx
marufrahmanstratejm
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Tatiana Kojar
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
alexjohnson7307
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
Intelisync
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
Dinusha Kumarasiri
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
Javier Junquera
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Precisely
 

Recently uploaded (20)

dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Public CyberSecurity Awareness Presentation 2024.pptx
Public CyberSecurity Awareness Presentation 2024.pptxPublic CyberSecurity Awareness Presentation 2024.pptx
Public CyberSecurity Awareness Presentation 2024.pptx
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
 

Puppet & Perforce: Versioning Everything for Deployments

  • 1. # Christoph Leithner, Founder at celix
  • 2. # • What is the starting Point of our Journey to Continuous Delivery? • Continuous Integration – Source Code Checkout – Static Code Analysis – Automated Tests – Compilation – Packaging
  • 3. # • Database Structure • Database Content • Installable Software – Libraries – Executables – OS Packages – Installers • Some Type of Deployment
  • 4. # Manual Personal Only a Guru understands the system and is able to deploy it Defined Scripted Scripts are available to setup most of the Components of our System There enough Documentation so we do not always have to ask the Guru if we want to deploy We use IT-Automation to deploy and enforce our Deployment – no manual changes. Defined Deployments are not possible without IT-Automation, Traceability and Discipline
  • 5. # • Not all Changes to Dependencies trigger a Build • DEV-Database is populated with Snapshots • DEV-Database Changes are not tracked • Semi-automated DEV-Deployments cause Delays • Only some aspects of the System are managed by Continuous Integration – no full Stack Deployment • Builds/Deployments are not reproducible
  • 6. #
  • 7. # • Developer Code • Deployment Code • Configuration Data • Database Structure • Database Content • Installable Software • Documentation
  • 8. #
  • 9. # module_name manifests files templates lib spec tests Modulefile
  • 10. # puppet module install puppetlabs-apache --version 0.6.0 puppet module install puppetlabs-ntp --version 0.2.0 apache stdlib firewall ntp
  • 11. # forge puppetlabs-apache puppetlabs-stdlib puppetlabs-firewall puppetlabs-apache puppetlabs-stdlib puppetlabs-firewall
  • 12. # • Module Reuse is the fastest way of Automation • But it is not as easy as it might seem to write a reusable Puppet Module • “We have this Module managing …, but I cannot share it. It contains too many Site specific Parameters” • Separating Module Code from Configuration Data is key for Module Reuse
  • 13. # • Puppet 3.0 integrates Hiera for Configuration Data • Hiera defines a list of Backends • Hiera defines a Lookup Hierarchy :hierarchy - “%{clientcert}” - “%{environment}” - “%{osfamily}”
  • 14. # apache stdlib firewall hiera
  • 15. # module_name manifests files templates lib spec tests Modulefile data
  • 16. #
  • 17. # • DB Structure – DB Dump – DB Snapshot – SQL Scripts • Creating DB Structure with SQL Scripts 1. Create all Tables 2. Fill all Tables 3. Create/Enable all Relational Constraints, Triggers etc.
  • 18. # • DB Content Types – System Data – Configuration Data – Business Object Data • DB Content Tools – SQL Insert Scripts – Schema or Table Exports/Dumps – Tool Specific Files (e.g. XML)
  • 19. # • DB Migration Tools – OR Mappers – built into the Application • Rails: Active Records • Java: Flyway – Evolutionary/Agile Database Tools • dbdeploy • DBmaestro
  • 20. # 1_create.sql 2_fill.sql 3_enable.sql create tables indexes ... views functions procedures fill system configuration business_objects migrate changelist_A changelist_B
  • 21. #
  • 22. # • OS Packages – Different for each Platform and Distribution – Multiple Repositories required – Packages and Metadata • Installers – Simplify complicated installations – Same Installation on multiple Platforms – Manual Installations not supported
  • 23. # • Puppet Package Resource: package {‘apache2’: ensure => present, } • Ensure Attribute Values – present: Package is installed – latest: Package is upgraded to the latest available – ‘2.4.6’: specified Version of the Package is installed
  • 24. # • New Package Versions are available online • Can we apply them automatically? – Is the Package managed by Puppet? – Is the Package a Dependency of a Package managed by Puppet? – Is there a Requirement for a particular Version of an updated Package? – Is there a Requirement for a particular Version of a Dependency of an updated Package?
  • 25. # • We need to know which is the latest Version of a Package in a certain Environment • We need to create a local Repository and manage all Changes to it. • On Ubuntu we use aptly to manage our local Repositories
  • 27. #
  • 28. # • We check in the published Repository into Perforce to get full Traceability • We can use Perforce to propagate Changes between Environments • What do we use for Puppet ensure: • latest: Puppet actively tries to upgrade • present: Puppet trusts the Package Manger • ´2.4.6´: if we need to pin an older Version (apt::pin)
  • 29. # • We use a Perforce Stream to track the Work of an Installer in particular Directory • This way can use a Task Stream to track the work of the Installer on each machine • Currently we only use this Feature when we automate deployments • The same concept can be used to tack changes of Directories on managed nodes
  • 30. # • Developer Code • Deployment Code • Configuration Data • Database Structure • Database Content • Installable Software • Documentation
  • 31. # • Full Traceability • Code Reviews in Swarm for all Changes • Ability to make consistent changes across all Artifacts • Revision Graph for Insights on a particular Artifact • Easy Tracking of the Work of Installers
  • 32. # Christoph Leithner c.leithner@celix.at

Editor's Notes

  1. Not all Changes Trigger a Build – not all dependencies are in the monitored Repository
  2. Scripted – we have had to set up the system often enough, so we have created some scripts Personal There is this Guru in our Company who understands the system and is able to deploy it. Systems are unique Snowflakes Manual There is some documentation available so we do not have to ask the Guru each time we have to deploy. at least some documentation is available, but is it up to date Scripted There are these Scripts that we have used to deploy (most of) the Components of our System. we have had to set up the system often enough, so we have created some scripts Defined There is this Puppet Module from Puppet Forge, that we use to set up all our Apache Servers. We run Puppet every hour on each Webserver to check and/or enforce the defined Configuration We do not make any manual changes on top of the Configuration defined in our Puppet Modules
  3. TODO Graphics It has helped us a lot in projects to put all existing artifacts into Perforce and go from there. Main Benefit: Traceability of every step on our journey to CD.
  4. TODO Graphics Puppet Code comes in Modules You can Reuse Modules from the Puppet Forge – more than 2.500 available Create Site specific Modules Extend Puppet and Facter with Ruby
  5. TODO Animation We assemble Environments from Modules One way to get modules from the Puppet Forge is the puppet module Command
  6. TODO Graphics Every Puppet Forge Module is available as a Git Repository With Git Fusion we can assemble our Puppet Environment/Codeline directly in Perforce. This way we can stay away from Git Submodules With Git Fusion we can also export the whole environment as a Git repositoy if required More datail – MERGE 2013 presentation
  7. TODO: Slide with Code Example before – after Hiera
  8. TODO Graphic We assemble Environments from Modules One way to get modules from the Puppet Forge is the puppet module Command
  9. TODO Graphic colors With the https://forge.puppetlabs.com/ripienaar/module_data Puppet Module Hiera can be used inside Puppet Modules
  10. OR Mappers – hard to use DB specific tuning capabilities like Oracle Btree- and Hash-Clusters or Index Organized Tables
  11. TODO – Codeline Grafik
  12. Usually we do not manage packages installed on a system with Puppet. And we could ask some even more complicated questions – So do we want to apply them automatically - NO
  13. Usually we do not manage packages installed on a system with Puppet. And we could ask some even more complicated questions – So do we want to apply them automatically - NO
  14. Source: http://www.aptly.info/doc/overview/ TODO create simpler graphic
  15. Example creating one local form two remote repositories
  16. Usually we do not manage packages installed on a system with Puppet. And we could ask some even more complicated questions – So do we want to apply them automatically - NO
  17. TODO Graphics – Codeline Perforce is a tremendous help to identify the result of different parameters.
  18. TODO Graphics – final Codeline It has helped us a lot in projects to put all existing artifacts into Perforce and go from there. Main Benefit: Traceability of every step on our journey to CD.
  19. TODO Graphics – final Codeline It has helped us a lot in projects to put all existing artifacts into Perforce and go from there. Main Benefit: Traceability of every step on our journey to CD.