Learning to Automate
Nathen Harvey
@nathenharvey
FOSDEM 2013
Slide 2
Slide 2 text
Hello!
• Technical Community Manager, Opscode
• Co-host of the Food Fight Show Podcast
Slide 3
Slide 3 text
Learning to Automate
• Automation
• Formal Training
• Learning Experiences
• Tips
Slide 4
Slide 4 text
Why Automate?
• Deliver value to customers and stakeholders
• Make IT Professionals happy
Slide 5
Slide 5 text
Business Drivers
• Scale-out
• Continuous Delivery
• Compliance
Slide 6
Slide 6 text
IT Professional Happiness
• Eliminate mundane and repetitive tasks
• Reduce errors and incidents
• Get to the Pub on time
Slide 7
Slide 7 text
Evolving Towards Automation
• Just make it work
• Keep detailed notes in server.txt
• Move detailed notes to a wiki
• Write custom scripts
• Store scripts in a version control system
• not the dot-bak or dot-date kind
• Snapshot and clone golden images
• Roll your own automation framework
Slide 8
Slide 8 text
Automation Framework
• Open-source
• Corporate and community backed
• Skills in the marketplace
Slide 9
Slide 9 text
Learning Curve
• New terminology
• New programming language
• Think about infrastructure in new ways
Slide 10
Slide 10 text
Challenges for Educators
• Snowflake infrastructure
• Deployment options
• Varying background
• Motivations for automation
• Rate of innovation
Slide 11
Slide 11 text
Approach to Training - CFEngine
• Introduction to concepts, theory, and language
• Show many examples of what can be done
• Lots of repetition and hands-on exercises
• Building trust in the system
Slide 12
Slide 12 text
Approach to Training - Puppet Labs
• Fundamentals
• Best Practices
• Get up-and-running with Puppet
• Finish with a capstone lab
Slide 13
Slide 13 text
Approach to Training - Opscode
• Concepts and terminology
• Configure workstations
• Demonstrate capabilities
• Lots of hands on and repetition
Slide 14
Slide 14 text
Training Infrastructure
• CFEngine
• VMs on student machines
• Puppet
• VMs on student and instructor machines
• Chef
• Hosted Chef & EC2 nodes
• Linux containers in training lab
Slide 15
Slide 15 text
Students
• CFEngine
• Experienced Sysadmins
• Puppet
• At least Jr. Sysadmin Level
• Chef
• Sysadmins
• Application Developers
Slide 16
Slide 16 text
Public vs. Private
• Public
• Generic
• Student motivation is usually high
• Private
• More specific
• Student motivation is more variable
Slide 17
Slide 17 text
Common Objectives
• Motivated to continue using the framework
• Automate common system administration tasks
• Locate additional resources for help
• Know that there’s much more to learn
Slide 18
Slide 18 text
Learning Foundation
• Classroom training can provide a good foundation for learning
• Basic understanding of concepts and terminology
• Familiarity with tools and workflow
• Knowledge of additional resources
Slide 19
Slide 19 text
The Afterclass
• Documentation
• On-line resources
• “Office Hours”
Slide 20
Slide 20 text
“Training”? Really?!
• How many of you are using one of these three automation
frameworks?
• How many of you are using them to manage at least part of your
production infrastructure?
• How many of you attended “formal” training from one of the
vendors?
Slide 21
Slide 21 text
Learning
• Most people have not been through formal training
• Self-directed learning is the typical path to competency
Slide 22
Slide 22 text
Tale of 3 Automators
• Champion
• Trust Fund Kid
• Developer-to-Operations
Slide 23
Slide 23 text
Champion
• Experienced with configuration desperation
• Start small with the basic tools of the framework
• Leverage community assets
• Layer in more advanced features
Slide 24
Slide 24 text
Trust Fund Kid
• Inherits an infrastructure already using automation framework
• Struggles with the concepts
• Solves a real problem and then things start to “click”
• Lots of trial and error
Slide 25
Slide 25 text
Developer-to-Operations
• Looking for best practices and operations tribal knowledge
• Dig into source code
• Follow existing patterns
Slide 26
Slide 26 text
Improve the Learning Experience
• So, how do we improve the learning experience?
Slide 27
Slide 27 text
Learn from the Community
• Leverage Design Center, Puppet Forge, Community site
• Conferences, MeetUps, and Hack Days
• Read documentation, wikis, and blog posts
• Listen to podcasts
Slide 28
Slide 28 text
Share with the Community
• Share your experiences
• Publish content and code
• Mentor someone
Slide 29
Slide 29 text
Tools
• Vagrant
• Testing Frameworks
• Make it easy for people to experiment
• “hello world”
• make it work
• refactor
Slide 30
Slide 30 text
Learning to Automate
• Classroom training can provide a good foundation for learning
• Experience pain, solve a real problem
• Learn best practices from the community
• Share experiences with the community
Slide 31
Slide 31 text
Tips
• How did YOU learn to automate?
• What tips can you share?
• Tell us your story
Slide 32
Slide 32 text
Thank You
• Diego Zamboni, CFEngine
• Geir Nygård, CFEngine
• Ralph Luchs, PuppetLabs