Infrastructure automation is a voyage we can take step by step. The presentation is about the approaches, priorities and challenges we have to face when we want to automate an IT ifrastructure
1. Raise the Bar!
Alessandro Franceschi
CodeMotion 2014 Milan
A journey towards
infrastructure automation
Reloaded
License: Creative Commons 3.0 by-nc-sa
6. What can we do?
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
New systems replace existing ones
Gradual migration of services
Start from what is most needed
New setups should be automated
13. 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
14. 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
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 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.
17. 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
18. 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
19. CI and Orchestration
Put together your steps:
configuration, testing and deployment
Be in control
Refine over time
ChatOps
20. Infrastructure Awareness
Monitoring of systems and business metrics
Logs trending and analysis
Data Visualisation and correlation
Proactive Security
Smart infrastructure
21. 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.
22. Now, RUN!
Automation means:
- repeatability
- consistency
- scaling
- reduced human errors
- velocity
- more time to do interesting things