Raise the bar!

Preview:

DESCRIPTION

A journey on the automation path. Notes on how to migrate existing infrastructures to automation and how to introduce configuration management tools like Puppet, Chef, CFEngine on manually managed systems.

Citation preview

Raise the Bar!

Alessandro Franceschi @alvagante

github.com/example42

OSS4B 2013

A journey towardsinfrastructure automation

they tell usinfrastructures are

like this...Automated Systems Provisioning

Centrally Managed and ConfiguredMassively Continuos Deployments

Predictive Data AnalysisGroundbreaking Monitoring Visualization

Auto Scaling in Multiple DataCentersVirtualized and Cloudified(Chaos) monkeys driven

but our infrastructureis more like this...

Semi automatic systems provisioningAn hell of old, not updated, heterogenous OS

Configurations managed by hand or scripts Deployments are a continuous warfare

We collect logs you don't checkMonitoring is a **** to maintain

More or less fully VirtualizedSome Cloud experiments

Self Destroying (no need of monkeys)

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?What's criticalWhat's strategical?What are the available skills?

Learn from failure, andlearn from success.

Choose a Path

Analyze and discuss solutionsShare vision and goalsDraw a general roadmapBe ready for corrections

Choose the tool:Puppet, Chef, CFEngine...

No tool?No automation, no reason to talk here

Step by Step

Train the teamGet help from expertsDo or Know It YourselfUse public code, when possibleCommunicate, always

Step the dots, then connect them

Test, act, verify.Reiterate.

Scenarios

Brand new project:New systems, new infrastructure, no legacy.

Infrastructure migration:New systems to replace existing ones, some legacies.

Infrastructure update: Automation on existing systems.

Brand New Project

Easier and most liked solutionMore freedom on technological choicesBrand new OS and stacks, possibly homogenousClean setups from scratchSound design from the foundationsNo mess with current productionFaster and smoother deployment times

Infrastructure Migration

Existing systems still not centrally managedMigration of existing stacks to new systemsAll new nodes should be fully managed

Define a standard baselineCreate the stacks / roles you need

Enlarge coverage of application stacksStart from what is more used and needed

Migration evaluations

How easily and quickly can be doneHow stable are systemsWhat maintenance efforts they requireNumber of nodes involvedMigration risks and impactWhat's worth to automateFuture benefits

Infrastructure update

Harder and more dangerousProbably different OS to manageUndetermined existing setup proceduresManual configurations accumulated over time

Evaluate agent setup on older systems Evalutate effort and benefits, for edge cases

Evaluate the migration alternative for common cases

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: adding services to the minimal baseline Horizontally: covering more OS and adding nodes

Priorities

Automate servers deployment (*)Automate common systems configurations (*)Automate your most important stacks (*) Refine testing and apps deploy, then automate (*)Automate or delegate monitoringIntegrate what already works well

(*) Time spent here is rarely wasted.

Configurations Rollout

Notify users of the ongoing changesHave a test environmentTest effects on any single different OSPropagate the configurationsWatch logs and reports

Don't be surprised of skeletonsReview and patch uncovered configurations

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.

Raise higher the bar

Useful Monitoring/Logging

Visualization and correlation of infrastructure data

Continuos delivery as frequent as you need

Improved stability, scalability, redundancy

... whatever makes your infrastructures smarter

Now, RUN!

Automation means:- repeatability- consistency- scaling- reduced human errors- velocity

- more time to do interesting things

smallsteps

and a vision

Thank you,@alvagante

Recommended