Raise the Bar! 
Alessandro Franceschi 
CodeMotion 2014 Milan 
A journey towards 
infrastructure automation 
Reloaded 
License: Creative Commons 3.0 by-nc-sa
Alessandro Franceschi 
@alvagante 
github.com/alvagante 
www.example42.com
they tell about 
infrastructures 
like this
but some 
infrastructures 
look more like this...
we are probably 
somewhere in the middle
What can we do? 
Hold on. 
Where are we? 
Look around. 
Choose a path. 
Move. 
Step by step.
Where are we? 
Where things fail? 
Where time is wasted? 
What works well? 
What's critical? 
What's strategical? 
What are the available skills? 
Learn from failure. 
Learn from success!
Choose a Path 
Analyse and evaluate solutions 
Share vision and goals 
Draw a general roadmap 
Be ready for corrections 
Choose the automation tools: 
- Configuration Management 
- Applications Deployment 
- Continuous Integration 
- Infrastructure Awareness
Step by Step 
Get guidance from experts 
Train the team on the job 
Do or Know It Yourself 
Prioritise time savers 
Build things to be reused 
Communicate, always 
Test, act, verify. 
Reiterate. 
Step the dots, then connect them
Scenarios 
nil => NEW 
Brand new project 
OLD => NEW 
Infrastructure migration 
OLD => OLD 
Infrastructure update
Brand New Project 
Faster and easier 
Freedom on technical choices 
Standard and updated OS 
Modern architecture 
No mess with production
Infrastructure Migration 
New systems replace existing ones 
Gradual migration of services 
Start from what is most needed 
New setups should be automated
Infrastructure update 
Harder and more dangerous 
Probably different OS to manage 
Undetermined existing setup procedures 
Manual configurations accumulated over time 
Evaluate agent setup on older systems 
Evaluate effort and benefits, for edge cases 
Evaluate the migration alternative
Infrastructure update 
We need a gradual approach 
Define a minimal baseline to apply to all nodes 
Be careful of OS variations 
Raise the Bar, step by step: 
Vertically: add services to the minimal baseline 
Horizontally: cover more OS and add nodes
Mind the steps 
How easy and quickly can be done 
How stable are systems 
What maintenance efforts they require 
Number of nodes involved 
Migration risks and impact 
What's worth to automate 
Future benefits
Priorities 
Integrate what already works well 
Automate servers deployment (*) 
Automate common systems configurations (*) 
Automate your most important stacks (*) 
Refine testing and apps deploy, then automate (*) 
Automate or delegate monitoring 
(*) Time spent here is rarely wasted.
Application Deployments 
Use the tool you prefer 
(Capistrano, Fabric, Puppi, OS packages, scripts…) 
Be able to run it unattended 
Configure it via CM 
Run it in via local CLI, CI pipelines, cronjobs, 
orchestration engines… 
YMMV
Rollouts 
Notify and communicate 
Have some way to test what you change 
Control the propagation of rollouts 
Watch logs, monitors and reports 
During migrations don't be surprised of skeletons
CI and Orchestration 
Put together your steps: 
configuration, testing and deployment 
Be in control 
Refine over time 
ChatOps
Infrastructure Awareness 
Monitoring of systems and business metrics 
Logs trending and analysis 
Data Visualisation and correlation 
Proactive Security 
Smart infrastructure
Mind-set change 
When infrastructure is code: 
- you need to version it 
- you can test it 
- you use it (as many times as necessary) 
- you refine it over time 
- you, sysadm, are a developer 
and you don't mess up with the runtime.
Now, RUN! 
Automation means: 
- repeatability 
- consistency 
- scaling 
- reduced human errors 
- velocity 
- more time to do interesting things
small 
steps 
and a vision Thank you, 
@alvag ante

Raise the bar! Reloaded

  • 1.
    Raise the Bar! Alessandro Franceschi CodeMotion 2014 Milan A journey towards infrastructure automation Reloaded License: Creative Commons 3.0 by-nc-sa
  • 2.
    Alessandro Franceschi @alvagante github.com/alvagante www.example42.com
  • 3.
    they tell about infrastructures like this
  • 4.
    but some infrastructures look more like this...
  • 5.
    we are probably somewhere in the middle
  • 6.
    What can wedo? Hold on. Where are we? Look around. Choose a path. Move. Step by step.
  • 7.
    Where are we? Where things fail? Where time is wasted? What works well? What's critical? What's strategical? What are the available skills? Learn from failure. Learn from success!
  • 8.
    Choose a Path Analyse and evaluate solutions Share vision and goals Draw a general roadmap Be ready for corrections Choose the automation tools: - Configuration Management - Applications Deployment - Continuous Integration - Infrastructure Awareness
  • 9.
    Step by Step Get guidance from experts Train the team on the job Do or Know It Yourself Prioritise time savers Build things to be reused Communicate, always Test, act, verify. Reiterate. Step the dots, then connect them
  • 10.
    Scenarios nil =>NEW Brand new project OLD => NEW Infrastructure migration OLD => OLD Infrastructure update
  • 11.
    Brand New Project Faster and easier Freedom on technical choices Standard and updated OS Modern architecture No mess with production
  • 12.
    Infrastructure Migration Newsystems replace existing ones Gradual migration of services Start from what is most needed New setups should be automated
  • 13.
    Infrastructure update Harderand more dangerous Probably different OS to manage Undetermined existing setup procedures Manual configurations accumulated over time Evaluate agent setup on older systems Evaluate effort and benefits, for edge cases Evaluate the migration alternative
  • 14.
    Infrastructure update Weneed a gradual approach Define a minimal baseline to apply to all nodes Be careful of OS variations Raise the Bar, step by step: Vertically: add services to the minimal baseline Horizontally: cover more OS and add nodes
  • 15.
    Mind the steps How easy and quickly can be done How stable are systems What maintenance efforts they require Number of nodes involved Migration risks and impact What's worth to automate Future benefits
  • 16.
    Priorities Integrate whatalready works well Automate servers deployment (*) Automate common systems configurations (*) Automate your most important stacks (*) Refine testing and apps deploy, then automate (*) Automate or delegate monitoring (*) Time spent here is rarely wasted.
  • 17.
    Application Deployments Usethe tool you prefer (Capistrano, Fabric, Puppi, OS packages, scripts…) Be able to run it unattended Configure it via CM Run it in via local CLI, CI pipelines, cronjobs, orchestration engines… YMMV
  • 18.
    Rollouts Notify andcommunicate Have some way to test what you change Control the propagation of rollouts Watch logs, monitors and reports During migrations don't be surprised of skeletons
  • 19.
    CI and Orchestration Put together your steps: configuration, testing and deployment Be in control Refine over time ChatOps
  • 20.
    Infrastructure Awareness Monitoringof systems and business metrics Logs trending and analysis Data Visualisation and correlation Proactive Security Smart infrastructure
  • 21.
    Mind-set change Wheninfrastructure is code: - you need to version it - you can test it - you use it (as many times as necessary) - you refine it over time - you, sysadm, are a developer and you don't mess up with the runtime.
  • 22.
    Now, RUN! Automationmeans: - repeatability - consistency - scaling - reduced human errors - velocity - more time to do interesting things
  • 23.
    small steps anda vision Thank you, @alvag ante