Settj ttjng ng the the s stage Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 1
Why are we here ? ● ”Plus ca change, plus c'est la meme chose” ”There is nothing new under the sun” ● Our goals: ● Take a critjcal look at our methods ● Understand that we are not alone ● Identjfy and disrupt bad habits ● Do the same things betuer Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 2
Old issues in maintaining computjng infrastructures ● Service Confjguratjon ● Drifu – it was working yesterday ! ● Reproducibility – Something happened... ● Semantjcs – I did the thing, and then the thing happened ● Maintenance – Not my problem ● Portability – Now make it work over there Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 3
Old issues in maintaining computjng infrastructures ● Monitoring ● Service X went down - get it back to it's previous state asap – Ok, what was that previous state ?! (See: Drifu) – What tasks need to be executed ? ● Disaster Recovery ● Everything broke, fjx it. – What's everything ? – How do we move from broken hardware to fjxed hardware ? Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 4
”Newer” issues in computjng infrastructures ● Complexity ● Services depend on each other (recursively) ● Scale ● Scale in services ● Scale in teams ● Security ● How can we test service hardening without breaking the services ? ● … every tjme a service confjguratjon is changed … ? Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 5
An example – the science gateway Federated User Science Science Gateway Gateway October 4th, 2013 Riccardo Rotondo Pretoria 2013 Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 6
The issue in newer computjng infrastructure ● Abstractjon ● What are we even running on ? ● Does it even matuer ? ● What is an ”applicatjon” ? ● The Science Gateway is an ”applicatjon” of the cloud or grid infrastructure. Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 7
Here's the thing : ● Everything is code - Treat it like code ! ● Change control ● Unit tests ● Contjnuous Integratjon ● Code is developed and tested ● Services and confjguratjons are put into Operatjon ● Enter DevOps Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 8
What is DevOps ? https://www.thoughtworks.com/radar/techniques/devops Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 9
What is DevOps https://en.wikipedia.org/wiki/DevOps Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 10
What is DevOps ? https://www.thoughtworks.com/radar/techniques/devops Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 12
How is this difgerent to what I'm already doing ? ● Culture http://newrelic.com/devops/lifecycle ● Automatjon ● Lean ● Measurement ● Sharing http://newrelic.com/devops/what-is-devops Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 13
This is Not DevOps ● A partjcular tool ● There are lots : htup:/ /newrelic.com/devops/toolset ● A specifjc team or person ● It's a culture of collaboratjon and transparency Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 14
Culture is learned – but can't be taught ● We'll be focussing on Ansible – one of the new tools in your toolbox ● Remember Maslow's Law ! ● htups:/ /en.wikipedia.org/wiki/Law_of_the_instrument ● It's only going to be useful if used appropriately ● It's just one tool Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 15
Things you'll need ● Languages : Markdown, Yaml, Jinja, JSON (Python) ● Change control : Git ● Containerisatjon tools (Docker) ● Test and Build services (Jenkins, Travis) ● Situatjonal Awareness Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 16
”Kung fu has many schools, so does DevOps.” https://www.chef.io/solutions/devops/ Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 17
Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 18
”When people talk about fjghtjng schools they say that Kung Fu, or Karate, or this other style is the best. That is silly, and the problem becomes that the fjghtjng style then becomes set in stone with no growth, and no adaptatjon, because what works well with me might not work for you.” - Bruce Lee Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 19
Why Ansible ? ● There are many optjons available for developing betuer infrastructure ● All of them are much betuer than none at all ● There is no right tool – sometjmes not even the right tool for the job ● Sometjmes you need to use the right tool for you Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 20
Ansible vs … ● The contenders ● Ansible vs shell scripts ● Ansible vs Puppet ● Ansible vs Chef ● Ansible vs SaltStack ← I don't know enough Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 21
Ansible vs Shell scripts https://valdhaus.co/writings/ansible-vs-shell-scripts/ Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 22
Ansible vs Shell scripts ● Which method is most likely to end up in source control? ● Which method can be run multjple tjmes safely with confjdence? ● Which method can easily be run against multjple servers? ● Which method actually verifjes (tests) your server for correctness? ● Which method can target certain servers easily (web, db, etc)? ● Which method supports easily templatjng your confjguratjon fjles? ● Which method will grow to easily support your whole stack? Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 23
Remember the science gateway ? Federated User Science Science Gateway Gateway You can do all of this with a shell script – but should you ? Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 24
Ansible : 1 Shell Scripts : 0 Shell script is stjll betuer than nothing though Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 25
The last easy decision you'll make Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 26
Remember From here on, everything is opinion and context matuers. There is no canonical comparison between the tools No use arguing : YOU STILL HAVE EITHER BRUCE LEE OR CHUCK NORRIS ON YOUR SIDE !!! Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 27
Puppet https://puppetlabs.com/ ● Puppet : https://github.com/puppetlabs ● Old kid on the block ● Ruby-based ● Domain-Specifjc Language for internals ● Master-client model ● Model-Driven – Task and state dependencies computed by server ● Agent-based Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 28
Pros Cons ● Well-established support ● For more advanced tasks, you will need to use the Ruby-based CLI, (you’ll have community through Puppet to understand Ruby). Labs. ● Support for pure-Ruby versions (rather ● Most mature interface and than those using Puppet’s customized DSL) is being scaled back. runs on nearly every OS. ● Because of the DSL and a design that ● Simple installatjon and initjal does not focus on simplicity, the Puppet code base can grow large, unwieldy, and setup. hard to pick up for new people in your ● Most complete Web UI in this organizatjon at higher scale. ● Model-driven approach means less space. control compared to code-driven ● Strong reportjng capabilitjes. approaches. Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 29
Chef http://chef.io ● Chef : https://github.com/chef ● Also old kid on the block (2009) ● Heavily dependent on Git (confjguratjon) ● Internals in Ruby ● Master-client model ● Procedural – Task and state dependencies computed by server ● More ”Development” focussed than Puppet (?) Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 30
Pros Cons ● Steep learning curve if ● Rich collectjon of modules and confjguratjon recipes. you’re not already familiar ● Code-driven approach gives you with Ruby and procedural more control and fmexibility over coding. your confjguratjons. ● Complex tool - can lead to ● Strong version control large code bases and capabilitjes. complicated environments. ● 'Knife’ tool (uses SSH for ● Doesn’t support push deploying agents from workstatjon) eases installatjon functjonality. burdens. Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 31
Take another look around A short diversion Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 32
http://insights.sei.cmu.edu/sei_blog/2014/06/a-generalized-model-for-automated-devops.html Bruce Becker: Coordinator, Africa-Arabia ROC | bbecker@csir.co.za 33
Recommend
More recommend