raise the bar! reloaded
TRANSCRIPT
Raise the Bar!
Alessandro Franceschi CodeMotion 2014 Milan
A journey towardsinfrastructure 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 StepGet guidance from expertsTrain the team on the jobDo or Know It YourselfPrioritise time saversBuild things to be reused Communicate, always Test, act, verify. Reiterate.
Step the dots, then connect them
Scenarios
nil => NEWBrand new project
OLD => NEW
Infrastructure migration
OLD => OLDInfrastructure update
Brand New Project
Faster and easier Freedom on technical choicesStandard 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 casesEvaluate the migration alternative
Infrastructure update
We need a gradual approachDefine a minimal baseline to apply to all nodesBe 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 involvedMigration risks and impactWhat'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 communicateHave some way to test what you change Control the propagation of rolloutsWatch logs, monitors and reports
During migrations don't be surprised of skeletons
CI and OrchestrationPut 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 analysisData 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, @alvagante