Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

LJC 2015 "The Crafty Consultants Guide to DevOps"

7,368 views

Published on

Come along and learn how the Crafty Consultant makes his money by consulting craftily in DevOps. We'll see how silos can be broken down by introducing more independent and isolated team, how only idiots automate everything, and why monitoring only provides actionable insight that simply confuses your clients...

...and then we'll look at the real world implementation of DevOps :-) The primary aims of this talk are to introduce the concepts behind the DevOps movement, and we'll do this by debunking all of the Crafty Consultant's advice. We'll cover the drivers of breaking down silos (in business and in tech), the benefits of automation (especially with provisioning and configuring infrastructure), and the power that monitoring provides (particularly when deploying to the cloud, or implementing a microservice architecture).

Published in: Technology
  • Be the first to comment

LJC 2015 "The Crafty Consultants Guide to DevOps"

  1. 1. The Crafty Consultant’s Guide to … Craftily Consulting in DevOps Daniel Bryant Principal Consultant, OpenCredo daniel.bryant@opencredo.com @danielbryantuk
  2. 2. Tonight • A tale of two parts… • The Crafty Consultant’s take on DevOps – Disclaimer – this is not how I actually consult! • DevOps in real world! – An overview 27/02/2015 @danielbryantuk
  3. 3. Who Am I? • London Java Community Associate • Adopt OpenJDK and JSR • InfoQ Editor and DZone MVB 27/02/2015 @danielbryantuk • Principal Consultant at OpenCredo  Agile transformations  DevOps methodologies  Microservices and Cloud
  4. 4. The Crafty Consulting Guide to Craftily Consulting in DevOps Crafty Consulting Ltd. - Not a genuine company! - - A satirical guide to DevOps -
  5. 5. Crafty slides hidden… (as I’m going to reuse them!)
  6. 6. End of Part One… …now let’s look at the real world of DevOps 27/02/2015 @danielbryantuk
  7. 7. DevOps: The Motivations • Improve flow • Build, measure, learn • Accelerate development • Automate QA • Empower Operations • Visibility • Antifragility Jfokus 2015: 21st Century Software Delivery (bit.ly/1JzlY6d) 27/02/2015 @danielbryantuk
  8. 8. Breaking Down Silos Dev QA Ops Hand-off delaysHand-off delays Slow feedback Slow feedback Lack of cohesion, shared understanding and joint accountability 27/02/2015 @danielbryantuk Being agile is a prerequisite…
  9. 9. Organisational Challenges • Delivering value continuously – Fear of failure • Ownership and accountability – The DevOps team antipattern? – Culture, support, innovation • Complex systems – Failure should lead to enquiry, not blame 27/02/2015 @danielbryantuk
  10. 10. That’s the organisation… …what about the tech? 27/02/2015 @danielbryantuk
  11. 11. Continuous Integration • Goals – Remove integration problems – Avoid back-tracking – Automated repeatable build • Approach – Determine branching strategy – Create and follow processes – Create a build pipeline 27/02/2015 @danielbryantuk
  12. 12. Build Pipeline 27/02/2015 @danielbryantuk
  13. 13. Example Build Pipeline • Component Build – Compile – Unit Tests (surefire) – Integration Tests (failsafe) • Deployment onto QA Cloud – Python Scripts + Chef to provision – Verify success using Python 27/02/2015 @danielbryantuk
  14. 14. Example Build Pipeline • Acceptance Tests – Cucumber (and Selenium) • Performance Tests – Jmeter + Jenkins performance plugin – Make sure environment is realistic!! • Live Deployment? 27/02/2015 @danielbryantuk
  15. 15. Diving into the details… 27/02/2015 @danielbryantuk
  16. 16. Local Development 27/02/2015 @danielbryantuk
  17. 17. 27/02/2015 @danielbryantuk
  18. 18. Local Development • Goals – ‘One click’ setup – Dev/Prod parity – Easy testing (pre-canned data, service virtualisation) • Tools – Sprout, Boxen, Homebrew, provisioning – VMs (Vagrant), Docker (Fig) – DbUnit, VCR, Wiremock 27/02/2015 @danielbryantuk
  19. 19. Provisioning • Goals – Automated reliable environment build – Treat servers as cattle, not pets – Immutable infrastructure • Tools – Puppet, chef, SaltStack, Ansible – Packer.io, Veewee, Aminator – Terraform, AWS Cloudformation 27/02/2015 @danielbryantuk
  20. 20. Testing 27/02/2015 @danielbryantuk
  21. 21. 27/02/2015 @danielbryantuk
  22. 22. Testing • Goals – Automated reliable testing – Functional, cross-functional (NFR) covered – Free QA team for exploratory/requirements • Tools – Serenity BDD, Cucumber, JBehave, Spock – Saboteur/Wiremock (bit.ly/1tU6wZj) – JMeter, Gatling (bit.ly/1JIvOCI) 27/02/2015 @danielbryantuk
  23. 23. Serenity BDD 27/02/2015 @danielbryantuk
  24. 24. Serenity BDD 27/02/2015 @danielbryantuk
  25. 25. Visibility 27/02/2015 @danielbryantuk
  26. 26. Logging • Goals – Audit system/application processes – Assist debugging – Single point of reference (centralised) • Tools – Logstash, fluentd, flume – Kibana (ELK Stack) 27/02/2015 @danielbryantuk
  27. 27. Kibana 27/02/2015 @danielbryantuk
  28. 28. Monitoring • Goals – Application/system-level metrics – ‘Birds eye view’ dashboards • Tools – Codahale Metrics, Netflix Servo – Graphite, InfluxDB, OpenTSDB – Grafana, dashing.io 27/02/2015 @danielbryantuk
  29. 29. 27/02/2015 @danielbryantuk
  30. 30. 27/02/2015 @danielbryantuk
  31. 31. 27/02/2015 @danielbryantuk
  32. 32. Alerting • Goals – You know of problems before users – Don’t turn a crisis into a drama • Tools – Nagios, Zabbix, Sensu, Pagerduty • Process – Have one, follow it, retrospect (root cause) 27/02/2015 @danielbryantuk
  33. 33. Putting it all Together… 27/02/2015 @danielbryantuk
  34. 34. Releases • Goals – Deterministic deployment – Reliable rollout and rollback (or fix-forward) – Separate release from deployment • Processes – Deploy with rolling upgrade, blue/green, canary – Release with feature flags – Two phase data migrations 27/02/2015 @danielbryantuk
  35. 35. Debugging DevOps • Goals – Core skills throughout team – Appropriate tools – Document (and follow) processes • Tools – grep, top, vmstat, netstat, tcpdump – jps, jstat, jmap, jhat 27/02/2015 @danielbryantuk
  36. 36. The Future • Portable application deployment – Docker and Rocket • The operating system reinvented – CoreOS, Project Atomic, Ubuntu Snappy • Modern cluster management – Providing a kernel for the data center – Mesos, Kubernetes, Fleet, fabric8 27/02/2015 @danielbryantuk
  37. 37. The Future is Layered… 27/02/2015 @danielbryantuk twitter.com/gabrtv/status/539805332432637952
  38. 38. In Summary… 27/02/2015 @danielbryantuk
  39. 39. DevOps: The Motivations • Improve flow • Build, measure, learn • Accelerate development • Automate QA • Empower Operations • Visibility • Antifragility Jfokus 2015: 21st Century Software Delivery (bit.ly/1JzlY6d) 27/02/2015 @danielbryantuk
  40. 40. Bu-Dev-QA-Ops… 27/02/2015 @danielbryantuk
  41. 41. Thanks for Listening! Comments and feedback are welcomed… daniel.bryant@opencredo.com @danielbryantuk Thanks: 27/02/2015 @danielbryantuk
  42. 42. Devoxx UK Conference • 2014 “Moving to a DevOps Mode” bit.ly/1wdkh8K – Daniel Bryant, Steve Poole • Great DevOps content • Get your tickets! www.devoxx.co.uk – Tracks and content for every interest! 27/02/2015 @danielbryantuk
  43. 43. Further Inspiration #shamlesspromotion • Cloud news – www.infoq.com/author/Daniel-Bryant • Code and opinion – java.dzone.com/users/daniel-bryant-uk • Microservices – www.voxxed.com/blog/author/danielbryantuk 27/02/2015 @danielbryantuk

×