Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Learning to Automate

Nathen Harvey
February 02, 2013

Learning to Automate

The slides used during our discussion at FOSDEM about learning to automate.

Nathen Harvey

February 02, 2013
Tweet

More Decks by Nathen Harvey

Other Decks in Technology

Transcript

  1. Learning to Automate
    Nathen Harvey
    @nathenharvey
    FOSDEM 2013

    View Slide

  2. Hello!
    • Technical Community Manager, Opscode
    • Co-host of the Food Fight Show Podcast

    View Slide

  3. Learning to Automate
    • Automation
    • Formal Training
    • Learning Experiences
    • Tips

    View Slide

  4. Why Automate?
    • Deliver value to customers and stakeholders
    • Make IT Professionals happy

    View Slide

  5. Business Drivers
    • Scale-out
    • Continuous Delivery
    • Compliance

    View Slide

  6. IT Professional Happiness
    • Eliminate mundane and repetitive tasks
    • Reduce errors and incidents
    • Get to the Pub on time

    View Slide

  7. 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

    View Slide

  8. Automation Framework
    • Open-source
    • Corporate and community backed
    • Skills in the marketplace

    View Slide

  9. Learning Curve
    • New terminology
    • New programming language
    • Think about infrastructure in new ways

    View Slide

  10. Challenges for Educators
    • Snowflake infrastructure
    • Deployment options
    • Varying background
    • Motivations for automation
    • Rate of innovation

    View Slide

  11. 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

    View Slide

  12. Approach to Training - Puppet Labs
    • Fundamentals
    • Best Practices
    • Get up-and-running with Puppet
    • Finish with a capstone lab

    View Slide

  13. Approach to Training - Opscode
    • Concepts and terminology
    • Configure workstations
    • Demonstrate capabilities
    • Lots of hands on and repetition

    View Slide

  14. Training Infrastructure
    • CFEngine
    • VMs on student machines
    • Puppet
    • VMs on student and instructor machines
    • Chef
    • Hosted Chef & EC2 nodes
    • Linux containers in training lab

    View Slide

  15. Students
    • CFEngine
    • Experienced Sysadmins
    • Puppet
    • At least Jr. Sysadmin Level
    • Chef
    • Sysadmins
    • Application Developers

    View Slide

  16. Public vs. Private
    • Public
    • Generic
    • Student motivation is usually high
    • Private
    • More specific
    • Student motivation is more variable

    View Slide

  17. 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

    View Slide

  18. 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

    View Slide

  19. The Afterclass
    • Documentation
    • On-line resources
    • “Office Hours”

    View Slide

  20. “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?

    View Slide

  21. Learning
    • Most people have not been through formal training
    • Self-directed learning is the typical path to competency

    View Slide

  22. Tale of 3 Automators
    • Champion
    • Trust Fund Kid
    • Developer-to-Operations

    View Slide

  23. Champion
    • Experienced with configuration desperation
    • Start small with the basic tools of the framework
    • Leverage community assets
    • Layer in more advanced features

    View Slide

  24. 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

    View Slide

  25. Developer-to-Operations
    • Looking for best practices and operations tribal knowledge
    • Dig into source code
    • Follow existing patterns

    View Slide

  26. Improve the Learning Experience
    • So, how do we improve the learning experience?

    View Slide

  27. 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

    View Slide

  28. Share with the Community
    • Share your experiences
    • Publish content and code
    • Mentor someone

    View Slide

  29. Tools
    • Vagrant
    • Testing Frameworks
    • Make it easy for people to experiment
    • “hello world”
    • make it work
    • refactor

    View Slide

  30. 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

    View Slide

  31. Tips
    • How did YOU learn to automate?
    • What tips can you share?
    • Tell us your story

    View Slide

  32. Thank You
    • Diego Zamboni, CFEngine
    • Geir Nygård, CFEngine
    • Ralph Luchs, PuppetLabs

    View Slide

  33. Thank You!
    Nathen Harvey
    @nathenharvey
    FOSDEM 2013

    View Slide