SlideShare a Scribd company logo
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

More Related Content

PPTX
JavaOne 2014: Cloud Developer's DHARMA: Redefining 'done' for Cloud applications
PPTX
LJC 05/14 "Cloud Developer's DHARMA"
PDF
DevoxxUK 2014 "Moving to a DevOps Mode: Easy, Hard, or Just Plain Terrifying?"
PPTX
LJCConf 2013 "Chuck Norris Doesn't Need DevOps"
PPTX
LSCC 2014 "Crafting DevOps: Applying Software Craftsmanship to DevOps"
PPTX
LJC 2015 "The Crafty Consultants Guide to DevOps"
PPTX
LJC Mashup "Building Java Microservices for the Cloud && Chuck Norris Doesn't...
PDF
vJUG24 2016 "Seven (More) Deadly Sins of Microservice"
JavaOne 2014: Cloud Developer's DHARMA: Redefining 'done' for Cloud applications
LJC 05/14 "Cloud Developer's DHARMA"
DevoxxUK 2014 "Moving to a DevOps Mode: Easy, Hard, or Just Plain Terrifying?"
LJCConf 2013 "Chuck Norris Doesn't Need DevOps"
LSCC 2014 "Crafting DevOps: Applying Software Craftsmanship to DevOps"
LJC 2015 "The Crafty Consultants Guide to DevOps"
LJC Mashup "Building Java Microservices for the Cloud && Chuck Norris Doesn't...
vJUG24 2016 "Seven (More) Deadly Sins of Microservice"

What's hot (20)

PPTX
muCon 2014 "Building Java Microservices for the Cloud"
PDF
muCon 2016: "Seven (More) Deadly Sins of Microservices"
PPTX
JavaOne 2016 "Java, Microservices, Cloud and Containers"
PPTX
OReilly SACON 2016 "A Practical Guide for Continuous Delivery with Containers"
PPTX
O'Reilly/Nginx 2016: "Continuous Delivery with Containers: The Trials and Tri...
PDF
Microservices: The Organizational and People Impact
PDF
Microservices Practitioner Summit Jan '15 - Microservice Ecosystems At Scale ...
PDF
Microservices - Scaling Development and Service
PDF
Building effective Java applications for the Cloud: The DHARMA principles - D...
PDF
Turning Human Capital into High Performance Organizational Capital
PDF
Devoxx US 2017 "The Seven (More) Deadly Sins of Microservices"
PDF
Dockercon USA 2016 - Immutable Awesomeness
PDF
Immutable Service Delivery Shenzhen 2016
PPTX
DockerCon EU 2018 "Continuous Delivery with Docker and Java"
PPTX
DevOps game lego
PDF
Devoxx 2014 michael_neale
PPTX
All about that reactive ui
PDF
Create great cncf user base from lessons learned from other open source com...
PDF
All daydevops 2016 - Turning Human Capital into High Performance Organizati...
PDF
DevOps Note 20120224
muCon 2014 "Building Java Microservices for the Cloud"
muCon 2016: "Seven (More) Deadly Sins of Microservices"
JavaOne 2016 "Java, Microservices, Cloud and Containers"
OReilly SACON 2016 "A Practical Guide for Continuous Delivery with Containers"
O'Reilly/Nginx 2016: "Continuous Delivery with Containers: The Trials and Tri...
Microservices: The Organizational and People Impact
Microservices Practitioner Summit Jan '15 - Microservice Ecosystems At Scale ...
Microservices - Scaling Development and Service
Building effective Java applications for the Cloud: The DHARMA principles - D...
Turning Human Capital into High Performance Organizational Capital
Devoxx US 2017 "The Seven (More) Deadly Sins of Microservices"
Dockercon USA 2016 - Immutable Awesomeness
Immutable Service Delivery Shenzhen 2016
DockerCon EU 2018 "Continuous Delivery with Docker and Java"
DevOps game lego
Devoxx 2014 michael_neale
All about that reactive ui
Create great cncf user base from lessons learned from other open source com...
All daydevops 2016 - Turning Human Capital into High Performance Organizati...
DevOps Note 20120224
Ad

Viewers also liked (11)

PPT
Black Swan Events and Fake Alpha Presentation
PDF
Black Swan Theory
PPT
JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session
PPTX
Software Development: Thinking, Fast and Slow
PDF
How to get your talk accepted at Devoxx UK
PPTX
LJC 2014 "Professional Software Development: Thinking Fast and Slow"
PPT
The Black Swan Theory
PPTX
Jfokus 2015 "Thinking Fast and Slow with Software Development"
PDF
LMSUG 2015 "The Business Behind Microservices: Organisational, Architectural ...
PDF
EVRYTHNG: Concepts, technologies and applications for connecting physical obj...
PDF
5 Years of Web of Things Workshops
Black Swan Events and Fake Alpha Presentation
Black Swan Theory
JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session
Software Development: Thinking, Fast and Slow
How to get your talk accepted at Devoxx UK
LJC 2014 "Professional Software Development: Thinking Fast and Slow"
The Black Swan Theory
Jfokus 2015 "Thinking Fast and Slow with Software Development"
LMSUG 2015 "The Business Behind Microservices: Organisational, Architectural ...
EVRYTHNG: Concepts, technologies and applications for connecting physical obj...
5 Years of Web of Things Workshops
Ad

Similar to LJC: "Chuck Norris Doesn't Do DevOps...but Java developers might benefit" (20)

PDF
BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"
PDF
QCon NY 2016: "The Seven (More) Deadly Sins of Microservices"
PPTX
JAX London 2014 "Building Java Applications for the Cloud: The DHARMA princip...
PDF
OOP/MM 2017: "Seven (More) Deadly Sins of Microservices"
PDF
OSCON EU 2016 "Seven (More) Deadly Sins of Microservices"
PDF
Micro Manchester Meetup: "The Seven (More) Deadly Sins of Microservices"
PDF
GOTO Chicago/CraftConf 2017 "The Seven (More) Deadly Sins of Microservices"
PDF
JAXDevOps 2017 "The Seven (More) Deadly Sins of Microservices
PPTX
OWASP Poland Day 2018 - Andrzej Dyjak - Zero Trust Theorem
PDF
"In love with Open Source : Past, Present and Future" : Keynote OSDConf 2014
PDF
CTOs in London "The Challenges of Evaluating Development Technology Within th...
PDF
BCS 2016 "Intro to Microservices (and the Seven Deadly Sins)"
PDF
OISC 2019 - The OWASP Top 10 & AppSec Primer
PDF
A call to JS Developers - Let’s stop trying to impress each other and start b...
PDF
EVE Microservices Platform
PDF
Lisbon DevOps: "Seven (More) Deadly Sins of Microservices"
PDF
Overboard.js - where are we going with with jsconfasia / devfestasia
PDF
AppSec & OWASP Top 10 Primer
PPTX
#DevOps in a windows world - @DevOpsGuys
PDF
NodeJS security - still unsafe at most speeds - v1.0
BETA: "Cloud Developers DHARMA: Redefining 'done' for Cloud applications"
QCon NY 2016: "The Seven (More) Deadly Sins of Microservices"
JAX London 2014 "Building Java Applications for the Cloud: The DHARMA princip...
OOP/MM 2017: "Seven (More) Deadly Sins of Microservices"
OSCON EU 2016 "Seven (More) Deadly Sins of Microservices"
Micro Manchester Meetup: "The Seven (More) Deadly Sins of Microservices"
GOTO Chicago/CraftConf 2017 "The Seven (More) Deadly Sins of Microservices"
JAXDevOps 2017 "The Seven (More) Deadly Sins of Microservices
OWASP Poland Day 2018 - Andrzej Dyjak - Zero Trust Theorem
"In love with Open Source : Past, Present and Future" : Keynote OSDConf 2014
CTOs in London "The Challenges of Evaluating Development Technology Within th...
BCS 2016 "Intro to Microservices (and the Seven Deadly Sins)"
OISC 2019 - The OWASP Top 10 & AppSec Primer
A call to JS Developers - Let’s stop trying to impress each other and start b...
EVE Microservices Platform
Lisbon DevOps: "Seven (More) Deadly Sins of Microservices"
Overboard.js - where are we going with with jsconfasia / devfestasia
AppSec & OWASP Top 10 Primer
#DevOps in a windows world - @DevOpsGuys
NodeJS security - still unsafe at most speeds - v1.0

More from Daniel Bryant (20)

PDF
ITKonekt 2023: The Busy Platform Engineers Guide to API Gateways
PDF
CraftConf 2023 "Microservice Testing Techniques: Mocks vs Service Virtualizat...
PDF
PlatformCon 23: "The Busy Platform Engineers Guide to API Gateways"
PDF
Java Meetup 23: 'Debugging Microservices "Remocally" in Kubernetes with Telep...
PPTX
DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"
PDF
Fall 22: "From Kubernetes to PaaS to... err, what's next"
PDF
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
PDF
KubeCrash 22: Debugging Microservices "Remocally" in Kubernetes with Telepres...
PDF
JAX London 22: Debugging Microservices "Remocally" in Kubernetes with Telepre...
PDF
CloudBuilders 2022: "The Past, Present, and Future of Cloud Native API Gateways"
PDF
KubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
PDF
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
PDF
DevXDay KubeCon NA 2021: "From Kubernetes to PaaS to Developer Control Planes"
PDF
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
PDF
Container Days: Easy Debugging of Microservices Running on Kubernetes with Te...
PDF
Canadian CNCF: "Emissary-ingress 101: An introduction to the CNCF incubation-...
PDF
MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"
PDF
LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...
PDF
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
PPTX
HashiCorp Webinar: "Getting started with Ambassador and Consul on Kubernetes ...
ITKonekt 2023: The Busy Platform Engineers Guide to API Gateways
CraftConf 2023 "Microservice Testing Techniques: Mocks vs Service Virtualizat...
PlatformCon 23: "The Busy Platform Engineers Guide to API Gateways"
Java Meetup 23: 'Debugging Microservices "Remocally" in Kubernetes with Telep...
DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"
Fall 22: "From Kubernetes to PaaS to... err, what's next"
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
KubeCrash 22: Debugging Microservices "Remocally" in Kubernetes with Telepres...
JAX London 22: Debugging Microservices "Remocally" in Kubernetes with Telepre...
CloudBuilders 2022: "The Past, Present, and Future of Cloud Native API Gateways"
KubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
DevXDay KubeCon NA 2021: "From Kubernetes to PaaS to Developer Control Planes"
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
Container Days: Easy Debugging of Microservices Running on Kubernetes with Te...
Canadian CNCF: "Emissary-ingress 101: An introduction to the CNCF incubation-...
MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"
LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
HashiCorp Webinar: "Getting started with Ambassador and Consul on Kubernetes ...

Recently uploaded (20)

PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
cuic standard and advanced reporting.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Approach and Philosophy of On baking technology
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
KodekX | Application Modernization Development
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
Cloud computing and distributed systems.
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Empathic Computing: Creating Shared Understanding
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
A Presentation on Artificial Intelligence
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
MYSQL Presentation for SQL database connectivity
Understanding_Digital_Forensics_Presentation.pptx
cuic standard and advanced reporting.pdf
Electronic commerce courselecture one. Pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Approach and Philosophy of On baking technology
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
“AI and Expert System Decision Support & Business Intelligence Systems”
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
KodekX | Application Modernization Development
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Cloud computing and distributed systems.
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
NewMind AI Weekly Chronicles - August'25 Week I
Empathic Computing: Creating Shared Understanding
Chapter 3 Spatial Domain Image Processing.pdf
A Presentation on Artificial Intelligence

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

  • 1. Chuck Norris Doesn’t Need DevOps… but Java Developers might benefit Daniel Bryant CTO, Instant Access Technologies d.bryant@iatltd.com @taidevcouk
  • 3. 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
  • 4. Core Changes… • Service-Oriented Architecture • Cloud-based deployments • DevOps Culture @taidevcouk14/03/2014
  • 5. 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
  • 6. 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
  • 7. What’s in a Name? • “Development / Operations” • Increasing cohesion between: – Business – Development – Quality Assurance – Operations “Bu-Dev-Qa-Ops”? 14/03/2014 @taidevcouk
  • 8. yeah…‘DevOps’ sounds way cooler… 14/03/2014 @taidevcouk
  • 9. 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
  • 10. So, What’s Chuck Norris Doing Here? 14/03/2014 @taidevcouk
  • 11. 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
  • 12. Software Development Teams • Developers • Quality Assurance • Operations @taidevcouk14/03/2014
  • 13. Software Development Teams • Developers • Quality Assurance • Operations @taidevcouk14/03/2014
  • 15. Software Development Teams • Developers • Quality Assurance • Operations @taidevcouk14/03/2014
  • 17. Software Development Teams • Developers • Quality Assurance • Operations @taidevcouk14/03/2014
  • 19. This silo mentality has to stop 14/03/2014 @taidevcouk
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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)
  • 24. 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
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. 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
  • 31. 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
  • 32. 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
  • 33. 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
  • 34. 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
  • 35. 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
  • 36. 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
  • 37. 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
  • 38. 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
  • 39. 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
  • 40. 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
  • 42. Antifragile • The opposite of fragile? – Robust… – Antifragile… • Netflix are best-in-class – bit.ly/1gs5n3q • System must be robust first! 14/03/2014 @taidevcouk
  • 43. 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’
  • 44. 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
  • 45. 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)
  • 46. 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
  • 47. 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
  • 48. Monitor All The Things! • Infrastructure monitoring – Nagios – Zabbix – Splunk – AppDynamics 14/03/2014 @taidevcouk
  • 49. 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
  • 51. Gauges, Counters, Meters, Timers… 14/03/2014 @taidevcouk
  • 54. Inspirational Metrics Companies • Several trail-blazers – Etsy (www.codeascraft.com) – Netflix (techblog.netflix.com) 14/03/2014 @taidevcouk
  • 55. 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
  • 56. 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
  • 57. 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

Editor's Notes

  • #21: organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizationsFocus on flow: translate business ideas to a working service efficiently by examining how fast artifacts and work flows through the development lifecycleAmplify feedback loops: quickly learn about the system by seeing through fast feedback on what happens to results of changes
  • #31: James Gough’s “The benefits are more than just the tests”Mash Badar’s “TDD at Scale” (slidesha.re/19P7kzS)
  • #45: Jackie Stewart, 3 times F1 world champion, coined the phrase “Mechanical Sympathy” as a term for the driver and the machine working together in harmony. This can be summarised in that a driver does not need to know how to build an engine but they need to know the fundamentals of how one works to get the best out of it.