Your SlideShare is downloading. ×
[Celix] Scaling DevOps with Puppet and Perforce
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

[Celix] Scaling DevOps with Puppet and Perforce

982
views

Published on

Learn how to scale DevOps to a large number of IT services and take the next step towards end-to-end agility. In this presentation, see how Perforce and Git Fusion can help manage Puppet environments …

Learn how to scale DevOps to a large number of IT services and take the next step towards end-to-end agility. In this presentation, see how Perforce and Git Fusion can help manage Puppet environments with an increasing number of Puppet modules.


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
982
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 1Scaling DevOps with Puppet and PerforceChristoph LeithnerFounderCELIX Hard- & SoftwareVertriebsgmbHhttp://www.celix.atLogo area
  • 2. 2Agenda• What is DevOps?• IT Automation with Puppet• Scaling DevOps with Perforce• Agile Flow of Change for Puppet Modules
  • 3. 3What is DevOps?
  • 4. 4DevOpsWhat is DevOps?Source: http://commons.wikimedia.org/wiki/File:Devops.png by Rajiv PanTechnologyOperationsDevOps
  • 5. 5Area 1: Extend deliveryto productionDEV OPSArea 2: Extend operationsfeedback to projectArea 3: Embed project knowledge into operationsArea 4: Embed operations knowledge into projectSource: http://www.jedi.be/blog/2012/05/12/codifying-devops-area-practices/ by Patrick DeboisDevOps Areas - codified by Patrick Debois
  • 6. 6• IT Automation: Puppet• Shared Version Control: Perforce• Build and Deploy: Atlassian Bamboo• Process Management: Atlassian JIRADevOps Tools - Overview
  • 7. 7IT Automation with Puppet
  • 8. 8Define.1 2 Simulate.3 Enforce.4 Report.How Puppet works
  • 9. 9Database Web Server Application Server SecurityModulesVia Puppet Dashboard Custom External Source(CMDB, LDAP, etc.)Define yourresources inmodules.1Assign resourcerelationshipsautomatically.2Reuseable,composableconfigurations.3Web Servers Database Servers Application ServersDefine Composable Deployments with Puppet
  • 10. 10user { dave:ensure => present,uid => 507,gid => admin,shell => /bin/zsh,home => /home/dave,managehome => true,}Puppet Resource Abstraction Layer (RAL)
  • 11. 11class ssh {package { ‘ssh’:ensure => latest,}file { ‘/etc/ssh/sshd_config’:source => ‘puppet:///modules/ssh/sshd_config’,}service { ‘sshd’:ensure => running,}Package[‘ssh’]->File[‘/etc/ssh/sshd_config’]~>Service[‘sshd’]Package[‘ssh’]~>Service[‘sshd’]}class sshPuppet RAL Example:
  • 12. 12module_namemanifestsfilestemplateslibspectestsModulefilePuppet Modules – Deployments as Code
  • 13. 13name puppetlabs-apacheversion 0.6.0source git://github.com/puppetlabs/puppetlabs-apache.gitauthor puppetlabslicense Apache 2.0summary Puppet module for Apachedescription Module for Apache configurationproject_page https://github.com/puppetlabs/puppetlabs-apache## Add dependencies, if any:dependency puppetlabs/firewall, >= 0.0.4dependency puppetlabs/stdlib, >= 2.2.1Puppet Modulefile for puppetlabs-apache
  • 14. 14http://forge.puppetlabs.com
  • 15. 15puppet module install puppetlabs-apache --version 0.6.0firewallstdlibapachePuppet Module Subcommand
  • 16. 16puppet module install puppetlabs-ntp --version 0.2.0puppet module install puppetlabs-apache --version 0.6.0firewall ntpstdlibapacheSets of Modules
  • 17. 17puppet module install puppetlabs-ntp --version 0.2.0puppet module install puppetlabs-apache --version 0.6.0firewallPuppet EnvironmentntpstdlibapacheMultiple Environments on a single Puppet MasterSets of Modules – Puppet Environments
  • 18. 18Option A: Version each Module you need to change locallyA Git Repository for each Puppet Module you changefirewallPuppet EnvironmentntpstdlibapacheVersioning Puppet Modules/Environments
  • 19. 19Option B: Version the Environment FolderA single Git Repository for the Puppet EnvironmentfirewallPuppet EnvironmentntpstdlibapacheVersioning Puppet Modules/Environments
  • 20. 20Option C:A single Git Repository for the Puppet Environment that uses GitSubmodules to include the Git Repositories for the ModulesfirewallPuppet EnvironmentntpstdlibapacheVersion the Environment Folder and all ModulesVersioning Puppet Modules/Environments
  • 21. 21mainforgeapachestdlibfirewallManaging Puppet Environments with Perforce Git Fusionapachestdlibfirewallenvironment
  • 22. 22mainforgeapachestdlibfirewallManaging Puppet Environments with Perforce Git FusionenvironmentPuppet Environmentapachestdlibfirewall
  • 23. 23feature_4release_12.3forgefeature_1hotfix_1release_13.1feature_2 feature_3Mainline Model for Puppet Modulesmainline
  • 24. 24• Modularity – Puppet Environment Repository isassembled from multiple Module Repositories• Easy Workflow - NO Git Submodules• Central Change History in Perforce• Fine grained PermissionsPerforce Git Fusion - Benefits
  • 25. 25Puppet ConsolePuppet Module ForgeBuild and DeployVersion ManagementProcess ManagementPuppet Agent FacterNODEPuppet Agent FacterNODEPuppet Agent FacterNODEPuppet Agent FacterNODEPuppet Agent FacterNODEPuppet MasterModules/EnvironmentsPuppet Architecture
  • 26. 26Catalog1234 ReportCollectorReportReportFacts SSL secureEncryprionon all datatransportPuppetMasterNodePuppet Data Flow
  • 27. 27Scaling DevOpsAgile Flow of Change for Puppet Modules
  • 28. 28• More Teams/Services adopt DevOps Practices• Number of Environments and Modules grows• Fine grained Security becomes more important• Central Change history is required• Processes are standardized• Environments are standardized• Puppetized Deployments are used across all StagesWhat means Scaling DevOps?
  • 29. 29release_12.3rails_webapphotfix_1release_13.1feature_1 feature_2apachezend_webappjava_appmainlineAgile Flow of Change for Puppet Modules
  • 30. 30rel_12.3java_apprel_13.1zend_webappapachefeature_2feature_1rails_webappmainapache_onlyAgile Flow of Change for Puppet Modules
  • 31. 31apache rails_webapp zend_webappAll trademarks and logos are property of their respective ownersmainrailswebapprailswebappzendwebappzendwebappPerforce Streams Modularityrailswebappzendwebapp
  • 32. 32Development Quality Assurance Staging ProductionFeature Stream Service Stream Mainline Stream Release Stream/TagBuild Automation - The Puppet Environment Lifecycle
  • 33. 33Puppet ConsolePuppet Module ForgeBuild and DeployVersion ManagementProcess ManagementPuppet Agent FacterNODEPuppet Agent FacterNODEPuppet Agent FacterNODEPuppet Agent FacterNODEPuppet Agent FacterNODEPuppet MasterModules/EnvironmentsSummary
  • 34. 34Thank you.perforce@celix.at

×