Agile DevOps: Environment Automation

310
-1

Published on

Agile DevOps: Environment Automation
with Ben Tomasini, Software Developer, Agile Coach

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
310
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
19
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Agile DevOps: Environment Automation

  1. 1. Agile DevOps: Environment Automation Ben Tomasini Software Developer, Agile Coach
  2. 2. First Principles Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. http://agilemanifesto.org Software Environment
  3. 3. Necessary Focus Developers must also support the operational use of their software — a combination that’s become known as “devops.” This further motivates writing good code and testing it thoroughly. Developers’ personal stake in keeping the system running smoothly complements the engineering procedures and lets the system maintain quality at scale. Methodologies and tools aren’t enough by themselves because they can always be misused. Thus, a culture of personal responsibility is critical. Kent Beck - Facebook - https://www.facebook.com/publications/514128035341603
  4. 4. Environmental Impediments • • • • • • Ubiquitous in Agile initiatives Common impediment at stand-ups at this moment Unavailable environments Costly to spin up another test environment Inconsistent and stale configurations - system failures Communication barriers between development and operations
  5. 5. Agile Continuous Delivery Short Cycle Times Focus on Quality Low Technical Debt Individuals and Interactions Dev Ops Delivery and maintenance of the software product Delivery and maintenance of the systems on which the software product runs How can we apply Agile practices to both?
  6. 6. Complementary Delivery Pipelines
  7. 7. A Deeper Vertical Slice? UI Business Logic Data Access Server Environment << User Stories
  8. 8. It’s all software now ... • • Virtualization has revolutionized system operations • Let’s apply known practices to both application development and system development • Let’s develop our systems - using build automation,TDD, and CI We have historically run our software on systems, now lets use software to build those systems
  9. 9. Three reasons why this won’t work :) • Reason 1: System provisioning is much more variable than building software • • Reason 2: Systems are more heavyweight than software artifacts Reason 3: Doing this involves possibly unfamiliar tools and skills • Operations write software? That’s for developers. • Developers manage systems? That’s for operations.
  10. 10. Too variable ? • Traditional system provisioning involves • • • • Many steps Specialized knowledge Manual input One solution: make provisioning deterministic
  11. 11. Deterministic Process Inputs Process (closed system) The inputs guarantee the outputs No “hidden” inputs Only automate a deterministic system Use tests to assert outputs Outputs
  12. 12. Opscode Chef • • • • • Environment automation solution Cook up servers with recipes Free and Open Source Vibrant Community Influenced by Puppet, which was influenced by CFEngine
  13. 13. Too heavyweight ? • Solution: lightweight virtualization tools • • Abstract away the hardware Command line integrates with build system
  14. 14. http://dev.devops1.solutionsiq.com
  15. 15. Too unfamiliar? • Explore new areas: • • • • Developers - Learn sysamin stuff - bash, init.d scripts, managing public keys, vi instead of Eclipse System engineers - Dig into software development - Ruby, Java, TDD Embrace new tools Dev/Ops collaboration - pairing, post release retrospectives
  16. 16. Questions?
  17. 17. Thank You Ben Tomasini btomasini@solutionsiq.com www.solutionsiq.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×