Your SlideShare is downloading. ×
Devops for Developers
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Devops for Developers

2,883
views

Published on

Many developers think DevOps is nice and valuable but consider it a SEP (Somebody Else's Problem) - not because they do not care but simply because they do not know enough about Ops to relate it to …

Many developers think DevOps is nice and valuable but consider it a SEP (Somebody Else's Problem) - not because they do not care but simply because they do not know enough about Ops to relate it to their daily work. This presentation tries to fill the gap a bit, clarifies some common misunderstandings and explains the typical needs of an Ops admin. Then a set of design principles is shown that address the needs of an admin and help to build applications ready for Ops - because in the end it's all about production! As always lots of the information of this presentation is on the voice track but yet I think that you can find some helpful pointers in this deck.

Published in: Technology, Business

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,883
On Slideshare
0
From Embeds
0
Number of Embeds
18
Actions
Shares
0
Downloads
37
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Devops for Developers How Dev can write applications ready for Ops Uwe Friedrichsen, codecentric AG, 2013-2014
  • 2. @ufried Uwe Friedrichsen | uwe.friedrichsen@codecentric.de | http://slideshare.net/ufried | http://ufried.tumblr.com
  • 3. DevOps
  • 4. DevOps DevQA DevPO DevRE DevPM DevDev DevDevPO DevDevDev
  • 5. It‘s all about production!
  • 6. Operations Developers Point of View
  • 7. Admin Developers Point of View
  • 8. Admin Closer to Reality Point of View
  • 9. 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!
  • 10. 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)
  • 11. Top 3 Dev Challenges 1.  Manageability 2.  Resilience 3.  Transparency 4.  Documentation
  • 12. 11 Design Principles for DevOps-ready Applications •  Manageability (4) •  Resilience (5) •  Transparency (2)
  • 13. Manageability
  • 14. Deployment (Manageability)
  • 15. •  One-click deployment •  Preserve settings •  Provide rollbacks (or roll-forward)
  • 16. Configuration (Manageability)
  • 17. •  Avoid multiple configuration procedures •  Define default value handling •  Organize change traceability •  Notification about new parameters
  • 18. Configuration Parameter Types (Manageability)
  • 19. •  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
  • 20. Backup (Manageability)
  • 21. •  Think about backup purpose •  Define backup strategy •  Provide tooling
  • 22. Resilience
  • 23. Bulkheads (Resilience)
  • 24. •  Divide system in failure units •  Isolate failure units •  Define fallback strategy
  • 25. Redundancy (Resilience)
  • 26. •  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 / …
  • 27. Loose Coupling (Resilience)
  • 28. •  Isolate failure units (complements bulkheads) •  Go asynchronous wherever possible •  Use timeouts & circuit breakers •  Make actions idempotent
  • 29. Fallbacks (Resilience)
  • 30. •  What will you do if a request fails? •  Consider failure handling from the very beginning •  Supplement with general failure handling strategies
  • 31. Scalability (Resilience)
  • 32. •  Define scaling strategy •  Think full stack •  Apply D-I-D rule •  Design for elasticity
  • 33. Transparency
  • 34. Monitoring (Transparency)
  • 35. •  Think about required metrics •  Design hook or event mechanism •  Plan for changing metrics •  Consider event sourcing
  • 36. Logging (Transparency)
  • 37. •  Consider log message structure
 All required information / machine readable / human readable •  Define logging policy
 Debug and less: developers perspective / Info and more: operations perspective
  • 38. 11 Design Principles •  Manageability •  Deployment •  Configuration •  Configuration Parameter Types •  Backup •  Resilience •  Bulkheads •  Redundancy •  Loose Coupling •  Fallbacks •  Scalability •  Transparency •  Monitoring •  Logging
  • 39. Wrap-up •  Dev often does not know Ops •  Know the needs of an admin •  Face the challenges for a developer •  Apply the design principles … and then you‘re ready for DevOps
  • 40. @ufried Uwe Friedrichsen | uwe.friedrichsen@codecentric.de | http://slideshare.net/ufried | http://ufried.tumblr.com