devops for developers - friedrichsen

42
ROME 11-12 april 2014 ROME 11-12 april 2014 DevOps for Developers or how to put a smile on your admin’s face [email protected] - codecentric AG Uwe Friedrichsen

Upload: codemotion

Post on 14-Jan-2015

134 views

Category:

Technology


8 download

DESCRIPTION

Slides from Uwe Friedrichsen talk @ codemotion roma 2014

TRANSCRIPT

Page 1: DevOps for Developers - Friedrichsen

ROME 11-12 april 2014 ROME 11-12 april 2014

DevOps for Developers or how to put a smile on your admin’s face

[email protected] - codecentric AG

Uwe Friedrichsen

Page 2: DevOps for Developers - Friedrichsen

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/”

Page 3: DevOps for Developers - Friedrichsen

@ufried Uwe Friedrichsen | [email protected] | http://slideshare.net/ufried | http://ufried.tumblr.com

Page 4: DevOps for Developers - Friedrichsen

DevOps

Page 5: DevOps for Developers - Friedrichsen

DevOps DevQA DevPO DevRE

DevPM

DevDev DevDevPO

DevDevDev

Page 6: DevOps for Developers - Friedrichsen

It‘s all about production!

Page 7: DevOps for Developers - Friedrichsen

Operations Developers Point of View

Page 8: DevOps for Developers - Friedrichsen

Admin Developers Point of View

Page 9: DevOps for Developers - Friedrichsen

Admin Closer to Reality Point of View

Page 10: DevOps for Developers - Friedrichsen

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!

Page 11: DevOps for Developers - Friedrichsen

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)

Page 12: DevOps for Developers - Friedrichsen

Top 3 Dev Challenges 1.  Manageability

2.  Resilience

3.  Transparency

4.  Documentation

Page 13: DevOps for Developers - Friedrichsen

11 Design Principles

for DevOps-ready Applications

•  Manageability (4)

•  Resilience (5)

•  Transparency (2)

Page 14: DevOps for Developers - Friedrichsen

Manageability

Page 15: DevOps for Developers - Friedrichsen

Deployment

(Manageability)

Page 16: DevOps for Developers - Friedrichsen

•  One-click deployment

•  Preserve settings

•  Provide rollbacks (or roll-forward)

Page 17: DevOps for Developers - Friedrichsen

Configuration

(Manageability)

Page 18: DevOps for Developers - Friedrichsen

•  Avoid multiple configuration procedures

•  Define default value handling

•  Organize change traceability

•  Notification about new parameters

Page 19: DevOps for Developers - Friedrichsen

Configuration Parameter Types

(Manageability)

Page 20: DevOps for Developers - Friedrichsen

•  Context-related parameters Do not stage – managed by stage admin

•  Application-related parameters Must be staged – managed by application admin

•  Business-related parametersMust be staged – managed by business admin

Page 21: DevOps for Developers - Friedrichsen

Backup

(Manageability)

Page 22: DevOps for Developers - Friedrichsen

•  Think about backup purpose

•  Define backup strategy

•  Provide tooling

Page 23: DevOps for Developers - Friedrichsen

Resilience

Page 24: DevOps for Developers - Friedrichsen

Bulkheads

(Resilience)

Page 25: DevOps for Developers - Friedrichsen

•  Divide system in failure units

•  Isolate failure units

•  Define fallback strategy

Page 26: DevOps for Developers - Friedrichsen

Redundancy

(Resilience)

Page 27: DevOps for Developers - Friedrichsen

•  Elaborate use caseMinimize MTTR / scale transactions / handle response errors / …

•  Define routing & balancing strategy Round robin / master-slave / fan-out & quickest one wins / …

•  Consider admin involvementAutomatic vs. manual / notification – monitoring / …

Page 28: DevOps for Developers - Friedrichsen

Loose Coupling

(Resilience)

Page 29: DevOps for Developers - Friedrichsen

•  Isolate failure units (complements bulkheads)

•  Go asynchronous wherever possible

•  Use timeouts & circuit breakers

•  Make actions idempotent

Page 30: DevOps for Developers - Friedrichsen

Fallbacks

(Resilience)

Page 31: DevOps for Developers - Friedrichsen

•  What will you do if a request fails?

•  Consider failure handling from the very beginning

•  Supplement with general failure handling strategies

Page 32: DevOps for Developers - Friedrichsen

Scalability

(Resilience)

Page 33: DevOps for Developers - Friedrichsen

•  Define scaling strategy

•  Think full stack

•  Apply D-I-D rule

•  Design for elasticity

Page 34: DevOps for Developers - Friedrichsen

Transparency

Page 35: DevOps for Developers - Friedrichsen

Monitoring

(Transparency)

Page 36: DevOps for Developers - Friedrichsen

•  Think about required metrics

•  Design hook or event mechanism

•  Plan for changing metrics

•  Consider event sourcing

Page 37: DevOps for Developers - Friedrichsen

Logging

(Transparency)

Page 38: DevOps for Developers - Friedrichsen

•  Consider log message structureAll required information / human readable / machine readable

•  Define logging policy Debug and less: developers perspective / Info and more: operations perspective

Page 39: DevOps for Developers - Friedrichsen

11 Design Principles •  Manageability

•  Deployment •  Configuration •  Configuration Parameter Types •  Backup

•  Resilience •  Bulkheads •  Redundancy •  Loose Coupling •  Fallbacks •  Scalability

•  Transparency •  Monitoring •  Logging

Page 40: DevOps for Developers - Friedrichsen

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

Page 41: DevOps for Developers - Friedrichsen

@ufried Uwe Friedrichsen | [email protected] | http://slideshare.net/ufried | http://ufried.tumblr.com

Page 42: DevOps for Developers - Friedrichsen