$30 off During Our Annual Pro Sale. View Details »

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

  2. Hello! • Technical Community Manager, Opscode • Co-host of the

    Food Fight Show Podcast
  3. Learning to Automate • Automation • Formal Training • Learning

    Experiences • Tips
  4. Why Automate? • Deliver value to customers and stakeholders •

    Make IT Professionals happy
  5. Business Drivers • Scale-out • Continuous Delivery • Compliance

  6. IT Professional Happiness • Eliminate mundane and repetitive tasks •

    Reduce errors and incidents • Get to the Pub on time
  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
  8. Automation Framework • Open-source • Corporate and community backed •

    Skills in the marketplace
  9. Learning Curve • New terminology • New programming language •

    Think about infrastructure in new ways
  10. Challenges for Educators • Snowflake infrastructure • Deployment options •

    Varying background • Motivations for automation • Rate of innovation
  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
  12. Approach to Training - Puppet Labs • Fundamentals • Best

    Practices • Get up-and-running with Puppet • Finish with a capstone lab
  13. Approach to Training - Opscode • Concepts and terminology •

    Configure workstations • Demonstrate capabilities • Lots of hands on and repetition
  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
  15. Students • CFEngine • Experienced Sysadmins • Puppet • At

    least Jr. Sysadmin Level • Chef • Sysadmins • Application Developers
  16. Public vs. Private • Public • Generic • Student motivation

    is usually high • Private • More specific • Student motivation is more variable
  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
  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
  19. The Afterclass • Documentation • On-line resources • “Office Hours”

  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?
  21. Learning • Most people have not been through formal training

    • Self-directed learning is the typical path to competency
  22. Tale of 3 Automators • Champion • Trust Fund Kid

    • Developer-to-Operations
  23. Champion • Experienced with configuration desperation • Start small with

    the basic tools of the framework • Leverage community assets • Layer in more advanced features
  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
  25. Developer-to-Operations • Looking for best practices and operations tribal knowledge

    • Dig into source code • Follow existing patterns
  26. Improve the Learning Experience • So, how do we improve

    the learning experience?
  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
  28. Share with the Community • Share your experiences • Publish

    content and code • Mentor someone
  29. Tools • Vagrant • Testing Frameworks • Make it easy

    for people to experiment • “hello world” • make it work • refactor
  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
  31. Tips • How did YOU learn to automate? • What

    tips can you share? • Tell us your story
  32. Thank You • Diego Zamboni, CFEngine • Geir Nygård, CFEngine

    • Ralph Luchs, PuppetLabs
  33. Thank You! Nathen Harvey @nathenharvey FOSDEM 2013