×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
SCM Software Configuration Management
Slide 2
Slide 2 text
Captain Obvious alert!
Slide 3
Slide 3 text
This is why... Let’s talk about the basics
Slide 4
Slide 4 text
what are Software Configurations ?
Slide 5
Slide 5 text
The system behavior Hardware configurations System configurations Applications settings Organization policies
Slide 6
Slide 6 text
Configurations ≈ Policies The port 80 must be open The user X must have access MySQL database must be running Ping must be blocked
Slide 7
Slide 7 text
what does Software Configurations look like?
Slide 8
Slide 8 text
Configurations
Slide 9
Slide 9 text
Configurations
Slide 10
Slide 10 text
Configurations
Slide 11
Slide 11 text
Configurations
Slide 12
Slide 12 text
Configurations
Slide 13
Slide 13 text
Configurations
Slide 14
Slide 14 text
Configurations
Slide 15
Slide 15 text
Configurations
Slide 16
Slide 16 text
what is a SCM system?
Slide 17
Slide 17 text
SCM Systems Provisioning Change management
Slide 18
Slide 18 text
SCM on Modern Systems
Slide 19
Slide 19 text
From 1 machine to many
Slide 20
Slide 20 text
Working on the wrong server
Slide 21
Slide 21 text
From 1 sysadmin to many
Slide 22
Slide 22 text
Who did what?
Slide 23
Slide 23 text
What do we need? All changes documented All changes must be repeatable All changes in one place Accesibles for anyone All changes must be traceable
Slide 24
Slide 24 text
What does traceable mean? What have been changed? When have been changed? Who made the change?
Slide 25
Slide 25 text
What do we do? Configuration by hand Wiki One or few scripts Better scripts + Wiki Better scripts + Git/Svn Custom SCM (script+git+ssh loop)
Slide 26
Slide 26 text
How is a modern SCM? Declarative Abstract Idempotent Convergent
Slide 27
Slide 27 text
How is a modern SCM? Declarative Abstract Idempotent Convergent What NOT How
Slide 28
Slide 28 text
How is a modern SCM? Declarative Abstract Idempotent Convergent How it should behave Rely on the tool for the implementation
Slide 29
Slide 29 text
How is a modern SCM? Declarative Abstract Idempotent Convergent Only take action if it’s needed
Slide 30
Slide 30 text
How is a modern SCM? Declarative Abstract Idempotent Convergent Each resource takes care of itself
Slide 31
Slide 31 text
Key concepts Modern SCM
Slide 32
Slide 32 text
Modern SCM’s concepts Resources Nodes/Minions Recipes/Manifests/Playbooks Inventory Roles/Profiles
Slide 33
Slide 33 text
Some extras do we have time?
Slide 34
Slide 34 text
Avoid manual processes They are error prone
Slide 35
Slide 35 text
No content
Slide 36
Slide 36 text
But be careful ;-)
Slide 37
Slide 37 text
Make Apps SCM friendly Separate data from code Allow to use ENV variables Set default options But allow overwrite them with conffiles
Slide 38
Slide 38 text
Do NOT hardcode settings!!! Ever!
Slide 39
Slide 39 text
Make Apps SCM friendly Use the dependency managers Composer Bundler Pip npm Maven
Slide 40
Slide 40 text
Make Apps SCM friendly Use flags to activate features Use standard formats Think about settings per environment
Slide 41
Slide 41 text
Recomendations Start small Think in policies not in manual changes Use Vagrant for developing policies
Slide 42
Slide 42 text
Recomendations
Slide 43
Slide 43 text
Popular SCMs CFEngine Puppet Chef Ansible
Slide 44
Slide 44 text
SCM vs Deploy Tools Debate