advertisement

LJC: "Chuck Norris Doesn't Do DevOps...but Java developers might benefit"

50 %
50 %
advertisement
Information about LJC: "Chuck Norris Doesn't Do DevOps...but Java developers might benefit"

Published on March 14, 2014

Author: dbryant_uk

Source: slideshare.net

advertisement

Chuck Norris Doesn’t Need DevOps… but Java Developers might benefit Daniel Bryant CTO, Instant Access Technologies d.bryant@iatltd.com @taidevcouk

@taidevcouk14/03/2014

epoints.com 2012/13 Upgrade… @taidevcouk14/03/2014 • Increasing traffic – Scalability being stretched • Increasingly diverse requirements • Our starting point – Developers creating monolithic application – Manual QA – Operations deploying to data center

Core Changes… • Service-Oriented Architecture • Cloud-based deployments • DevOps Culture @taidevcouk14/03/2014

Core Changes… • Service-Oriented Architecture – Twitter’s Story (bit.ly/1j1WbmI) • Cloud-based deployments – “Cloud DHARMA”, 7th May at Skillsmatter • DevOps Culture – Today! @taidevcouk14/03/2014

What is DevOps? • “…a software development method that stresses communication, collaboration and integration between developers and IT professionals.” • “…aims to help an organization rapidly produce software products and services” http://en.wikipedia.org/wiki/DevOps 14/03/2014 @taidevcouk

What’s in a Name? • “Development / Operations” • Increasing cohesion between: – Business – Development – Quality Assurance – Operations “Bu-Dev-Qa-Ops”? 14/03/2014 @taidevcouk

yeah…‘DevOps’ sounds way cooler… 14/03/2014 @taidevcouk

Two Sides of the Same ‘DevOps’ Coin… • Business-driven – ‘Creating organizational alignment’ – Value stream mapping – Waste analysis • Pragmatic Tech – Pushing Agile/XP into QA and Ops – Cross-functional empowerment – Tooling 14/03/2014 @taidevcouk

So, What’s Chuck Norris Doing Here? 14/03/2014 @taidevcouk

Chuck Norris doesn’t need DevOps… …as a one-man army he codes with one hand, tests with the other and deploys with his beard 14/03/2014 @taidevcouk The rest of us… …work in teams to develop software

Software Development Teams • Developers • Quality Assurance • Operations @taidevcouk14/03/2014

Software Development Teams • Developers • Quality Assurance • Operations @taidevcouk14/03/2014

@taidevcouk14/03/2014

Software Development Teams • Developers • Quality Assurance • Operations @taidevcouk14/03/2014

@taidevcouk14/03/2014

Software Development Teams • Developers • Quality Assurance • Operations @taidevcouk14/03/2014

@taidevcouk14/03/2014

This silo mentality has to stop 14/03/2014 @taidevcouk

Culture is Vital • Culture drives behaviour, drives culture… – “Communication, simplicity, feedback, courage” – Everyone is responsible for delivery – Continuous experimentation and learning • Not easy to change culture – The hardest part of DevOps… – …but you will learn new things 14/03/2014 @taidevcouk

Changing Culture • Greenfield – Flickr’s story (slidesha.re/sHpYV) – “Why other people don’t get it” • Sandro Mancuso (slidesha.re/1bcStpe) • Enterprise – “The Pheonix Project” • Gene Kim et al 14/03/2014 @taidevcouk

Changing Culture • Create an effective team… • “Habits of highly effective technical teams” – Martijn Verburg (bit.ly/1aF9SnK) • “Patterns of Effective Teams” – Dan North (vimeo.com/68226771) 14/03/2014 @taidevcouk

Chuck Norris doesn’t do iterative development… …all applications Chuck Norris creates are right first time, every time 14/03/2014 @taidevcouk The rest of us… …need to enable agility (for both the business and technical teams)

We all do Continuous Integration, right? • Continuous Deployment/Delivery – Jez Humble and Dave Farley – Great InfoQ Video (bit.ly/XugWi8) • Create a “build pipeline” – Goal is fast feedback • Continuous Deployment – Production? 14/03/2014 @taidevcouk

Our Build Pipeline Jenkins, with plugins… • Build Pipeline – wiki.jenkins-ci.org/display/JENKINS/Build+Pipeline+Plugin • Parameterized build – wiki.jenkins-ci.org/display/JENKINS/Parameterized+Build • Promoted Builds Plugin – wiki.jenkins-ci.org/display/JENKINS/Promoted+Builds+Plugin • Chuck Norris plugin… – wiki.jenkins-ci.org/display/JENKINS/ChuckNorris+Plugin 14/03/2014 @taidevcouk

Our Build Pipeline • Component Build – Compile – Unit Tests (surefire) – Integration Tests (failsafe) • Deployment onto QA Cloud – Python Scripts + Chef to provision – Verify success using Python 14/03/2014 @taidevcouk

Our Build Pipeline • Acceptance Tests – Cucumber and Selenium – Work in progress… • Performance Tests – Jmeter – Jenkins Jmeter performance plugin • Staging / Live Deployment – Human-based conditional operation 14/03/2014 @taidevcouk

Gotchas • Managing dependencies in SOA is hard, very hard • Branching – Gitflow, Branch Per Feature, or Mainline • Migrating data can be challenging – Liquibase / Flyway – MongoDB / Solr Schema versions in data – Wooga case study (bit.ly/1egArDC) – Shout out to Daniel Josefsson @ Shazam for tips! 14/03/2014 @taidevcouk

Chuck Norris doesn’t do QA… …Chuck Norris can test an entire application with a single assert (and get 110% code coverage) 14/03/2014 @taidevcouk The rest of us… …need high-quality automated QA

Automating QA • Unit testing is essential • Intra-component integration testing – Spock is awesome (code.google.com/p/spock) – Utilise embedded datastore/middleware • Inter-component integration testing – The hardest part of SOA… 14/03/2014 @taidevcouk

Automating QA • Consumer-based Testing – Brandon Byars (bit.ly/1lmcoaD) • Performance – JMeter + plugins (jmeter-plugins.org) – BlazeMeter • Website – Selenium (www.seleniumhq.org) – Geb (www.gebish.org) 14/03/2014 @taidevcouk

Automating QA • Make it easy for everyone to execute • Include within the build pipeline • Make people care – fail the build! • “Agile Testing” by Lisa Crispin, Janet Gregory 14/03/2014 @taidevcouk

Chuck Norris doesn’t need an OS… …his keyboard has two keys, 0 and 1 14/03/2014 @taidevcouk The rest of us… …need to provision bare metal, and also be comfortable with the OS

Say No To Snowflakes! • Infrastructure as Code – Version control everything • Automate all provisioning – Chef, Puppet, SaltStack, Python, AWS CLI • Play with Vagrant (www.vagrantup.com) – “providers” are super cool 14/03/2014 @taidevcouk

Thinking/Acting Like A Sysadmin • Learn Linux fundamentals • Diagnostic skills – top, iotop, iostat, netstat, vmstat – Java utils: jps, jstat, jmap, jhat – “DevOps Troubleshooting” by K. Rankin • Maybe grow a beard… 14/03/2014 @taidevcouk

Chuck Norris doesn’t fail… …he just finds a new way in which reality is broken 14/03/2014 @taidevcouk The rest of us… …should plan for failure

Failure “Everything fails all the time [in the cloud]” Werner Vogels, CTO, Amazon.com • 21st Century Application Architecture – www.skillsmatter.com (bit.ly/10jAdSV) 14/03/2014 @taidevcouk

Black Swan Theory “…is a metaphor that describes an event that comes as a surprise, has a major effect, and is often inappropriately rationalized after the fact with the benefit of hindsight” Nassim Nicholas Taleb, The Black Swan http://amzn.to/1gaIqxz 14/03/2014 @taidevcouk

Failure Pre-Cloud we designed for success… and handled failure. With Cloud we design for failure… and handle success. Credit to John Bassil for inspiration here! (@johnbassil) 14/03/2014 @taidevcouk

Design for Failure • Design patterns – Asynchronous communication – Timeouts / retries – Bulkheads / circuit-breakers • Inspiration – Chris Richardson (slidesha.re/1ft3vsg) – Netflix (bit.ly/1h5GMid) 14/03/2014 @taidevcouk

14/03/2014 @taidevcouk

Antifragile • The opposite of fragile? – Robust… – Antifragile… • Netflix are best-in-class – bit.ly/1gs5n3q • System must be robust first! 14/03/2014 @taidevcouk

All arrays Chuck Norris creates are of infinite size… …as Chuck Norris knows no bounds 14/03/2014 @taidevcouk The rest of us… …should manage our resources and cultivate ‘mechanical sympathy’

Mechanical Sympathy • Be aware of deployment platform properties • …especially if in the cloud – Block Storage IOPS (100 vs 49k) – 1Gbps Network ( < 125MB/s vs > 400MB/s) – “Noisy neighbours” • Monitor everything (more on this later) 14/03/2014 @taidevcouk

When Chuck Norris throws Exceptions… …everybody knows about it because they land outside of the data center 14/03/2014 @taidevcouk The rest of us… …should log all errors (and other vital information for diagnostic purposes)

Logging • Log pretty much everything – Use appropriate levels • Make comments searchable/machine readable – Good tips (bit.ly/hweqm4) • Use centralised logging – Especially if in the cloud – Logstash, Loggly, Papertrail 14/03/2014 @taidevcouk

Chuck Norris doesn’t worry about application downtime… …Chuck Norris’ production servers are so scared they constantly ping him 14/03/2014 @taidevcouk The rest of us… …should monitor everything

Monitor All The Things! • Infrastructure monitoring – Nagios – Zabbix – Splunk – AppDynamics 14/03/2014 @taidevcouk

Metrics 14/03/2014 @taidevcouk • Dropwizard’s Metrics – metrics.codahale.com • Netflix’s Servo – github.com/Netflix/servo • Etsy’s StatsD – github.com/etsy/statsd/wiki

Health Checks 14/03/2014 @taidevcouk

Gauges, Counters, Meters, Timers… 14/03/2014 @taidevcouk

14/03/2014 @taidevcouk

14/03/2014 @taidevcouk

Inspirational Metrics Companies • Several trail-blazers – Etsy (www.codeascraft.com) – Netflix (techblog.netflix.com) 14/03/2014 @taidevcouk

In Summary… • DevOps is driving Agile/XP into QA and Ops • Faster, leaner and more effective software – The ability to rapidly experiment is awesome! • There are some real benefits behind the buzz • Now is the time to step-up as a developer 14/03/2014 @taidevcouk

The Developer’s DevOps Action Plan • Think about your company culture • Explore continuous delivery • Learn Linux basics • Automate provisioning • Design for failure • Cultivate mechanical sympathy • Improve logging/metrics 14/03/2014 @taidevcouk

Thanks For Listening • Massive thanks to all the IAT team – DevOps gurus, Jamie Clarkson and Anjani Phuyal • Questions / comments? – d.bryant@iatltd.com – @taidevcouk • Devoxx UK 12-13th June – www.devoxx.co.uk 14/03/2014 @taidevcouk

Add a comment

Related pages

LJC: "Chuck Norris Doesn't Do DevOps...but Java developers ...

×Close Share LJC: "Chuck Norris Doesn't Do DevOps...but Java developers might benefit"
Read more

LJC Event “Chuck Norris doesn’t Do DevOps… but Java ...

LJC Event “Chuck Norris doesn’t Do DevOps… but Java developers might benefit!” As usual, I had a great time presenting at a London Java ...
Read more

Photos - LJC - London Java Community (London, England ...

The London Java Community (LJC) ... Chuck Norris Doesn't Do DevOps... but Java Developers might benefit! 1 of 2 Play slideshow; All sizes; Move Choose album.
Read more

The Crafty Consultant's Guide to... Devops - DZone DevOps

On Thursday I once again had the pleasure of presenting at the London Java Community (LJC) meetup. This time I presented a new talk “The Crafty ...
Read more

All Photo Albums - LJC - London Java Community (London ...

Chuck Norris Doesn't Do DevOps... but Java Developers might benefit! ... Java Community Conference, in collaboration with the LJC 12/13 Jun 14 SkillsMatter
Read more

The Crafty Consultant’s Guide to… DevOps | The Tai-Dev ...

The Crafty Consultant’s Guide ... LJC Unconference, and also combines some of my thoughts from my earlier “Chuck Norris doesn’t do DevOps ...
Read more

The Crafty Consultant's Guide to... Devops - DZone DevOps

On Thursday I once again had the pleasure of presenting at the London Java Community (LJC) meetup. This time I presented a new talk “The Crafty ...
Read more

Chuck Norris Facebook Status Updates - Documents

A collection of Facebook status updates from Chuck Norris. Download Chuck Norris Facebook Status Updates. Transcript
Read more