DevOps for Developers - Friedrichsen

291 views

Published on

Slides from Uwe Friedrichsen talk @ codemotion roma 2014

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
291
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
9
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

DevOps for Developers - Friedrichsen

  1. 1. ROME 11-12 april 2014ROME 11-12 april 2014 DevOps for Developers or how to put a smile on your admin’s face uwe.friedrichsen@codecentric.de - codecentric AG Uwe Friedrichsen
  2. 2. ROME 11-12 april 2014 - Speaker’s name All slides of this presentation are available under a Creative Commons licence “http://creativecommons.org/licenses/by-nc-sa/3.0/”
  3. 3. @ufried Uwe Friedrichsen | uwe.friedrichsen@codecentric.de | http://slideshare.net/ufried | http://ufried.tumblr.com
  4. 4. DevOps
  5. 5. DevOps DevQA DevPO DevRE DevPM DevDev DevDevPO DevDevDev
  6. 6. It‘s all about production!
  7. 7. Operations Developers Point of View
  8. 8. Admin Developers Point of View
  9. 9. Admin Closer to Reality Point of View
  10. 10. Top 5 Needs of an Admin 1.  Give me my peace and quiet! 2.  Don‘t make me think! 3.  Let me see that everything is fine! 4.  Show me the problem – now! 5.  Tell me what to do!
  11. 11. Top 5 Needs of an Admin (translated) 1.  Give me my peace and quiet!
 (The application should just run smoothly) 2.  Don‘t make me think!
 (Rollout, setup and operation of the application should be easy) 3.  Let me see that everything is fine!
 (The application should show its state) 4.  Show me the problem – now!
 (The application should provide concise error messages and enable easy root cause drilldown) 5.  Tell me what to do!
 (The application should be documented properly – including error handling instructions)
  12. 12. Top 3 Dev Challenges 1.  Manageability 2.  Resilience 3.  Transparency 4.  Documentation
  13. 13. 11 Design Principles for DevOps-ready Applications •  Manageability (4) •  Resilience (5) •  Transparency (2)
  14. 14. Manageability
  15. 15. Deployment (Manageability)
  16. 16. •  One-click deployment •  Preserve settings •  Provide rollbacks (or roll-forward)
  17. 17. Configuration (Manageability)
  18. 18. •  Avoid multiple configuration procedures •  Define default value handling •  Organize change traceability •  Notification about new parameters
  19. 19. Configuration Parameter Types (Manageability)
  20. 20. •  Context-related parameters
 Do not stage – managed by stage admin •  Application-related parameters
 Must be staged – managed by application admin •  Business-related parameters
 Must be staged – managed by business admin
  21. 21. Backup (Manageability)
  22. 22. •  Think about backup purpose •  Define backup strategy •  Provide tooling
  23. 23. Resilience
  24. 24. Bulkheads (Resilience)
  25. 25. •  Divide system in failure units •  Isolate failure units •  Define fallback strategy
  26. 26. Redundancy (Resilience)
  27. 27. •  Elaborate use case
 Minimize MTTR / scale transactions / handle response errors / … •  Define routing & balancing strategy
 Round robin / master-slave / fan-out & quickest one wins / … •  Consider admin involvement
 Automatic vs. manual / notification – monitoring / …
  28. 28. Loose Coupling (Resilience)
  29. 29. •  Isolate failure units (complements bulkheads) •  Go asynchronous wherever possible •  Use timeouts & circuit breakers •  Make actions idempotent
  30. 30. Fallbacks (Resilience)
  31. 31. •  What will you do if a request fails? •  Consider failure handling from the very beginning •  Supplement with general failure handling strategies
  32. 32. Scalability (Resilience)
  33. 33. •  Define scaling strategy •  Think full stack •  Apply D-I-D rule •  Design for elasticity
  34. 34. Transparency
  35. 35. Monitoring (Transparency)
  36. 36. •  Think about required metrics •  Design hook or event mechanism •  Plan for changing metrics •  Consider event sourcing
  37. 37. Logging (Transparency)
  38. 38. •  Consider log message structure
 All required information / human readable / machine readable •  Define logging policy
 Debug and less: developers perspective / Info and more: operations perspective
  39. 39. 11 Design Principles •  Manageability •  Deployment •  Configuration •  Configuration Parameter Types •  Backup •  Resilience •  Bulkheads •  Redundancy •  Loose Coupling •  Fallbacks •  Scalability •  Transparency •  Monitoring •  Logging
  40. 40. Wrap-up •  It’s all about production! •  Know the needs of an admin •  Face the challenges for a developer •  Apply the design principles … and then you‘re ready for DevOps
  41. 41. @ufried Uwe Friedrichsen | uwe.friedrichsen@codecentric.de | http://slideshare.net/ufried | http://ufried.tumblr.com

×