SlideShare une entreprise Scribd logo
1  sur  100
Andreas Grabner
Your place in DevTOps is not about
finding more bugs, but problem
solutions
That’s why I ended up talking at BTD
The stuff we did
when we were a Start Up
and we All were
Devs, Testers and Ops
Our Goal?
Utmost Goal: Minimize Cycle Time
feature cycle time time
Customer / Market Users
Utmost Goal: Minimize Cycle Time
feature cycle time time
minimize Users
Utmost Goal: Minimize Cycle Time
feature cycle time time
This is when you
create value!
minimize
You
Release
Acceptance
Testing
Unit Testing
Performance
Testing
Coding
Reduce Lead Time
Automate & Improve Process
700 Deployments / Year
50-60 Deployments / Day
10+ Deployments / Day
Every 11.6 seconds
Inside the Amazon Numbers!
75% fewer outages since 2006
90% fewer outage minutes
~0.001% of deployments cause a problem
Instantaneous automatic rollback
Deploying every 11.6s
Challenges?
Deploy Faster!!
Fail Faster!!?
Right Focus?!
Failures happen!!
Nobody likes it when …
Unless you work for
Google or Microsoft 
… or this …
.. as it leads to this …
The “War Room”
Facebook – December 2012
… and potentially to this …
And this isn’t helping either
…
Tester Developer
This ATTITUDE is
the main PROBLEM
as it LEADS to …
80%
$60B
Insufficient Focus on
Quality
20%
80%
Learning from
Others
4 Use Cases:
WHY, HOW
& METRICS
#Push
without a Plan
Mobile Web Site: This SHOULDN’T happen!
434 Resources in total on that page:
230 JPEGs, 75 PNGs, 50 GIFs, …
Total size of ~
20MB
Fifa.com during Worldcup
http://apmblog.compuware.com/2014/05/21/is-the-fifa-world-cup-website-ready-for-the-tournament/
Page Size
Item Size
# Objects
• Developers not using the browser built-in diagnostics tools
• Testers not doing a sanity checks with the same tools
• Some tools for you (Quick Demo)
• Built-in Inspectors via Ctrl-Shift-I in Chrome and Firefox
• YSlow, PageSpeed, SpeedTracer
• Dynatrace
• Level-Up: Automate Testing and Diagnostics Check
Lessons Learned – NO Excuse for …
Not every
Architect makes
good decisions
• Symptoms
• HTML takes between 60 and 120s to render
• High GC Time
• Developer Assumptions
• Bad GC Tuning
• Probably bad Database Performance as rendering was simple
• Result: 2 Years of Finger pointing between Dev and DBA
Project: Online Room Reservation System
Developers built own monitoring
void roomreservationReport(int officeId)
{
long startTime = System.currentTimeMillis();
Object data = loadDataForOffice(officeId);
long dataLoadTime = System.currentTimeMillis() - startTime;
generateReport(data, officeId);
}
Result:
Avg. Data Load Time: 45s!
DB Tool says:
Avg. SQL Query: <1ms!
#1: Loading too much data
24889! Calls to the
Database API!
High CPU and High
Memory Usage to keep all
data in Memory
#2: On individual connections
12444!
individual
connections
Classical N+1
Query Problem
Individual SQL
really <1ms
#3: Putting all data in temp Hashtable
Lots of time
spent in
Hashtable.get
Called from their
Entity Objects
# SQL Executions
# of SAME SQLs
Conn. Acquisition Time
• … you know what code is doing
• Challenge the developers
• Explore Tools that “might seem” out of your league!
• Built-In Database Analysis Tools
• “Logging” options of Frameworks such as Hibernate, …
• JMX, Perf Counters, … of your Application Servers
• Performance Tracing Tools: Dynatrace, NewRelic, AppDynamics,
…
Lessons Learned – Don’t Assume …
“Deployment”
Gone Bad!
Test Environment
Production Environment
8x slower
3x more SQL
Test Environment Production Environment
Hibernate,
Classloading,
XML – The Key
Hotspots
Hibernate,
Classloading, XML
– The Key Hotspots
I/O for Web
Requests doesn’t
even show up!
That’s Normal:
Having I/O for Web
Request as main
contributor
Top Contributor
Class.getInterfaces
Called from Hibernates
FieldInterceptionHelper
These calls all originate
form thousands of calls to
find item by code
Top Methods related to XML
Processing
Classloading is triggered through
CustomMonnkey and the Xalan
Parser
Classloading is triggered through
CustomMonkey and the Xalan
Parser
Time Spent in API
# Calls to API
• Plan enough time for proper testing
• Anticipate changed user behavior during peak load
• Only test what really ends up in Production
Lessons Learned
#No “Agile”
Deployment
Load Spike resulted in Unavailability
Adonair
Alternative: “GoDaddy goes DevOps”
1h before
SuperBowl KickOff
1h after
Game ended
# of Domains
Total Size
• Share your Performance Expertise with Developers
• Implement & Test these “Feature Switch” Scenarios
• Demand Live Production Data for Future Projects
• Read Up & Educate yourself on more stories like this
Lessons Learned
•http://blog.dynatrace.com
•http://www.perfplanet.com/
•http://highscalability.com/
•http://blog.ruxit.com/
More of these Use Cases?
•# Images
•# Redirects
•Size of Resources
•# SQL Executions
•# of SAME SQLs
•# Items per Page
•# AJAX per Page
Remember: New Metrics When Testing Apps
•Time Spent in API
•# Calls into API
•# Functional Errors
•3rd Party calls
•# of Domains
•Total Size
•…
Level-Up Skills
Browser Diagnostics
Wireshark, Fiddler
JBoss, Tomcat, JConsole
IIS, ASP.NET, PerfLib
Oracle, SQL
Garbage Collection Thread Dumps
Architecture
# of Services
# of Databases
# of Servers
# of Calls between Components
Performance
Page Load Time Render Time SQL Query Time Service Call Time
Scalability
Memory Usage per User
# Connections
Cache Utilization
Load Distribution
Component Roundtrips
Collaboration
Automation
Sharing
Measuring
Level-Up Skills
Performance
Scalability
Architecture
4 Pillars of DevOps + Quality Focus
Putting it into Test Automation
12 0 120ms
3 1 68ms
Build 20 testPurchase OK
testSearch OK
Build 17 testPurchase OK
testSearch OK
Build 18 testPurchase FAILED
testSearch OK
Build 19 testPurchase OK
testSearch OK
Build # Test Case Status # SQL # Excep CPU
12 0 120ms
3 1 68ms
12 5 60ms
3 1 68ms
75 0 230ms
3 1 68ms
Test Framework Results Architectural Data
We identified a regresesion
Problem solved
Exceptions probably reason for
failed tests
Problem fixed but now we have an
architectural regression
Problem fixed but now we have an
architectural regressionNow we have the functional and
architectural confidence
Let’s look behind the
scenes
#1: Analyzing each Test
#2: Metrics for each Test
#3: Detecting Regression
based on Measure
#1: Test Status Overview
based on our new Metrics
#2: Lets the build fail
Release
Acceptance
Testing
Unit Testing
Performance
Testing
Monitor Tests
Analyze Results
Quality Gate in your Build Tool
Every 11.6 seconds
Deploy Faster!!
With Better Quality
Andreas Grabner
Your place in DevTOps is not about finding
more bugs, but problem solutions
Slides: slideshare.net/grabnerandi
Get Tools: bit.ly/dttrial
YouTube Tutorials: bit.ly/dttutorials
Contact Me: agrabner@dynatrace.com
Follow Me: @grabnerandi
Read More: blog.dynatrace.com
Incorrect Sizing
of Pools and
Queues
Online Banking: Slow Balance Check
1.69m (=101s!) To
Check Balance!
87% spent in IIS 600! SQL Executions
#1 Time really spent in IIS?
Tip: Elapsed Time tells us WHEN a
Method was executed!
Finding: Thread 32 in IIS waited 87s to
pass control to Thread 30 in ASP.NET
Tip: Thread# gives us insight on
Thread Queues / Switches
#2 What about these SQL Executions?
Finding: EVERY SQL
statement is executed on
ITS OWN Connection!
Tip: Look at
“GetConnection”
#2 SQL Executions! continued …
#1: Same SQL is executed 67! times
#2: NO PREPARATION
because everything
executed on new
Connection
Lessons Learned!
ASP.NET Worker
Thread Pool Sizing!
DB Connection Pools
More Efficient SQL
How to Monitor: Web Server
Idle vs. Busy
Threads
How to Monitor: Application Server
App Server Threads
Idle vs. Busy Threads
# SQLs / Request
# GetConnection
Collaboration
Automation
Sharing
Measuring
4 Pillars of DevOps + Quality Focus

Contenu connexe

Tendances

Nginx performance monitoring with Dynatrace
Nginx performance monitoring with DynatraceNginx performance monitoring with Dynatrace
Nginx performance monitoring with Dynatrace
Harald Zeitlhofer
 

Tendances (20)

HSPS 2015 - SharePoint Performance Santiy Checks
HSPS 2015 - SharePoint Performance Santiy ChecksHSPS 2015 - SharePoint Performance Santiy Checks
HSPS 2015 - SharePoint Performance Santiy Checks
 
Four Practices to Fix Your Top .NET Performance Problems
Four Practices to Fix Your Top .NET Performance ProblemsFour Practices to Fix Your Top .NET Performance Problems
Four Practices to Fix Your Top .NET Performance Problems
 
Top Java Performance Problems and Metrics To Check in Your Pipeline
Top Java Performance Problems and Metrics To Check in Your PipelineTop Java Performance Problems and Metrics To Check in Your Pipeline
Top Java Performance Problems and Metrics To Check in Your Pipeline
 
(R)evolutionize APM
(R)evolutionize APM(R)evolutionize APM
(R)evolutionize APM
 
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 PotsdamFrom Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
 
OOP 2016 - Building Software That Eats The World
OOP 2016 - Building Software That Eats The WorldOOP 2016 - Building Software That Eats The World
OOP 2016 - Building Software That Eats The World
 
Sydney Continuous Delivery Meetup May 2014
Sydney Continuous Delivery Meetup May 2014Sydney Continuous Delivery Meetup May 2014
Sydney Continuous Delivery Meetup May 2014
 
How to keep you out of the News: Web and End-to-End Performance Tips
How to keep you out of the News: Web and End-to-End Performance TipsHow to keep you out of the News: Web and End-to-End Performance Tips
How to keep you out of the News: Web and End-to-End Performance Tips
 
Deploy Faster Without Failing Faster - Metrics-Driven - Dynatrace User Groups...
Deploy Faster Without Failing Faster - Metrics-Driven - Dynatrace User Groups...Deploy Faster Without Failing Faster - Metrics-Driven - Dynatrace User Groups...
Deploy Faster Without Failing Faster - Metrics-Driven - Dynatrace User Groups...
 
JavaOne 2015: Top Performance Patterns Deep Dive
JavaOne 2015: Top Performance Patterns Deep DiveJavaOne 2015: Top Performance Patterns Deep Dive
JavaOne 2015: Top Performance Patterns Deep Dive
 
Boston DevOps Days 2016: Implementing Metrics Driven DevOps - Why and How
Boston DevOps Days 2016: Implementing Metrics Driven DevOps - Why and HowBoston DevOps Days 2016: Implementing Metrics Driven DevOps - Why and How
Boston DevOps Days 2016: Implementing Metrics Driven DevOps - Why and How
 
How to explain DevOps to your mom
How to explain DevOps to your momHow to explain DevOps to your mom
How to explain DevOps to your mom
 
DevOps Pipelines and Metrics Driven Feedback Loops
DevOps Pipelines and Metrics Driven Feedback LoopsDevOps Pipelines and Metrics Driven Feedback Loops
DevOps Pipelines and Metrics Driven Feedback Loops
 
Metrics-Driven Devops: Delivering High Quality Software Faster!
Metrics-Driven Devops: Delivering High Quality Software Faster! Metrics-Driven Devops: Delivering High Quality Software Faster!
Metrics-Driven Devops: Delivering High Quality Software Faster!
 
Metrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
Metrics Driven DevOps - Automate Scalability and Performance Into your PipelineMetrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
Metrics Driven DevOps - Automate Scalability and Performance Into your Pipeline
 
JavaOne - Performance Focused DevOps to Improve Cont Delivery
JavaOne - Performance Focused DevOps to Improve Cont DeliveryJavaOne - Performance Focused DevOps to Improve Cont Delivery
JavaOne - Performance Focused DevOps to Improve Cont Delivery
 
StarWest 2013 Performance is not an afterthought – make it a part of your Agi...
StarWest 2013 Performance is not an afterthought – make it a part of your Agi...StarWest 2013 Performance is not an afterthought – make it a part of your Agi...
StarWest 2013 Performance is not an afterthought – make it a part of your Agi...
 
Nginx performance monitoring with Dynatrace
Nginx performance monitoring with DynatraceNginx performance monitoring with Dynatrace
Nginx performance monitoring with Dynatrace
 
Continuous Deployment: The Dirty Details
Continuous Deployment: The Dirty DetailsContinuous Deployment: The Dirty Details
Continuous Deployment: The Dirty Details
 
JUG Poznan - 2017.01.31
JUG Poznan - 2017.01.31 JUG Poznan - 2017.01.31
JUG Poznan - 2017.01.31
 

En vedette

ProcessView RPA Example Outbrief
ProcessView RPA Example OutbriefProcessView RPA Example Outbrief
ProcessView RPA Example Outbrief
bluespringsw
 
Eerste sessie ondernemersforum Unizo 21 01-2014
Eerste sessie ondernemersforum Unizo 21 01-2014Eerste sessie ondernemersforum Unizo 21 01-2014
Eerste sessie ondernemersforum Unizo 21 01-2014
Paul Verwilt
 
Using GEOBIA to assess crown diameter classes of Acacia tortilis in Bou-Hedma...
Using GEOBIA to assess crown diameter classes of Acacia tortilis in Bou-Hedma...Using GEOBIA to assess crown diameter classes of Acacia tortilis in Bou-Hedma...
Using GEOBIA to assess crown diameter classes of Acacia tortilis in Bou-Hedma...
kdlaplac
 
Penghitungan Produk Domestik Bruto
Penghitungan Produk Domestik BrutoPenghitungan Produk Domestik Bruto
Penghitungan Produk Domestik Bruto
Beemz Chocochips
 
Aserl cfdp 2011 11_2
Aserl cfdp 2011 11_2Aserl cfdp 2011 11_2
Aserl cfdp 2011 11_2
ccole-bennett
 

En vedette (20)

Using Open Source technologies to create Enterprise Level Cloud System
Using Open Source technologies to create Enterprise Level Cloud SystemUsing Open Source technologies to create Enterprise Level Cloud System
Using Open Source technologies to create Enterprise Level Cloud System
 
You Give Us The Fire We'll Give'em Hell!
You Give Us The Fire We'll Give'em Hell!You Give Us The Fire We'll Give'em Hell!
You Give Us The Fire We'll Give'em Hell!
 
Vinci Services Products
Vinci Services ProductsVinci Services Products
Vinci Services Products
 
ProcessView RPA Example Outbrief
ProcessView RPA Example OutbriefProcessView RPA Example Outbrief
ProcessView RPA Example Outbrief
 
希望新聞特別版のご紹介
希望新聞特別版のご紹介希望新聞特別版のご紹介
希望新聞特別版のご紹介
 
Eerste sessie ondernemersforum Unizo 21 01-2014
Eerste sessie ondernemersforum Unizo 21 01-2014Eerste sessie ondernemersforum Unizo 21 01-2014
Eerste sessie ondernemersforum Unizo 21 01-2014
 
initLab
initLabinitLab
initLab
 
Spring Day | Spring 3.1 in a Nutshell | Sam Brannen
Spring Day | Spring 3.1 in a Nutshell | Sam BrannenSpring Day | Spring 3.1 in a Nutshell | Sam Brannen
Spring Day | Spring 3.1 in a Nutshell | Sam Brannen
 
Alberti Center Slideshow
Alberti Center SlideshowAlberti Center Slideshow
Alberti Center Slideshow
 
Tsahim 3
Tsahim 3Tsahim 3
Tsahim 3
 
Using GEOBIA to assess crown diameter classes of Acacia tortilis in Bou-Hedma...
Using GEOBIA to assess crown diameter classes of Acacia tortilis in Bou-Hedma...Using GEOBIA to assess crown diameter classes of Acacia tortilis in Bou-Hedma...
Using GEOBIA to assess crown diameter classes of Acacia tortilis in Bou-Hedma...
 
Hirsch rv lpm
Hirsch rv lpmHirsch rv lpm
Hirsch rv lpm
 
Warm up
Warm upWarm up
Warm up
 
2010 Fall Newsletter
2010 Fall Newsletter2010 Fall Newsletter
2010 Fall Newsletter
 
Mobilys - Mobile Apps Development
Mobilys - Mobile Apps DevelopmentMobilys - Mobile Apps Development
Mobilys - Mobile Apps Development
 
いつものことご紹介
いつものことご紹介いつものことご紹介
いつものことご紹介
 
Woningbouw: van groei naar kwaliteit
Woningbouw: van groei naar kwaliteitWoningbouw: van groei naar kwaliteit
Woningbouw: van groei naar kwaliteit
 
Tsahim 1
Tsahim 1Tsahim 1
Tsahim 1
 
Penghitungan Produk Domestik Bruto
Penghitungan Produk Domestik BrutoPenghitungan Produk Domestik Bruto
Penghitungan Produk Domestik Bruto
 
Aserl cfdp 2011 11_2
Aserl cfdp 2011 11_2Aserl cfdp 2011 11_2
Aserl cfdp 2011 11_2
 

Similaire à BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!

London web perfug_performancefocused_devops_feb2014
London web perfug_performancefocused_devops_feb2014London web perfug_performancefocused_devops_feb2014
London web perfug_performancefocused_devops_feb2014
Andreas Grabner
 

Similaire à BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs! (20)

DevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More DefectsDevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More Defects
 
London web perfug_performancefocused_devops_feb2014
London web perfug_performancefocused_devops_feb2014London web perfug_performancefocused_devops_feb2014
London web perfug_performancefocused_devops_feb2014
 
Performance Metrics for your Build Pipeline - presented at Vienna WebPerf Oct...
Performance Metrics for your Build Pipeline - presented at Vienna WebPerf Oct...Performance Metrics for your Build Pipeline - presented at Vienna WebPerf Oct...
Performance Metrics for your Build Pipeline - presented at Vienna WebPerf Oct...
 
Tec314f
Tec314fTec314f
Tec314f
 
Industry Keynote at Large Scale Testing Workshop 2015
Industry Keynote at Large Scale Testing Workshop 2015Industry Keynote at Large Scale Testing Workshop 2015
Industry Keynote at Large Scale Testing Workshop 2015
 
How to Build a Metrics-optimized Software Delivery Pipeline
How to Build a Metrics-optimized Software Delivery PipelineHow to Build a Metrics-optimized Software Delivery Pipeline
How to Build a Metrics-optimized Software Delivery Pipeline
 
Apex triggers i
Apex triggers iApex triggers i
Apex triggers i
 
Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...
Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...
Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...
 
STP 2014 - Lets Learn from the Top Performance Mistakes in 2013
STP 2014 - Lets Learn from the Top Performance Mistakes in 2013STP 2014 - Lets Learn from the Top Performance Mistakes in 2013
STP 2014 - Lets Learn from the Top Performance Mistakes in 2013
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013
 
Ship code like a keptn
Ship code like a keptnShip code like a keptn
Ship code like a keptn
 
Reliable mobile test automation
Reliable mobile test automationReliable mobile test automation
Reliable mobile test automation
 
Continuous Testing
Continuous TestingContinuous Testing
Continuous Testing
 
Continuous Testing 2016
Continuous Testing 2016Continuous Testing 2016
Continuous Testing 2016
 
Accelerating Your Test Execution Pipeline
Accelerating Your Test Execution PipelineAccelerating Your Test Execution Pipeline
Accelerating Your Test Execution Pipeline
 
Udvid din test portefølje med coded ui test og cloud load test
Udvid din test portefølje med coded ui test og cloud load testUdvid din test portefølje med coded ui test og cloud load test
Udvid din test portefølje med coded ui test og cloud load test
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle Management
 
Keynote AST 2016
Keynote AST 2016Keynote AST 2016
Keynote AST 2016
 
A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5
 
Andreas Grabner - Performance as Code, Let's Make It a Standard
Andreas Grabner - Performance as Code, Let's Make It a StandardAndreas Grabner - Performance as Code, Let's Make It a Standard
Andreas Grabner - Performance as Code, Let's Make It a Standard
 

Plus de Andreas Grabner

DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code DeploysDevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
Andreas Grabner
 

Plus de Andreas Grabner (17)

KCD Munich - Cloud Native Platform Dilemma - Turning it into an Opportunity
KCD Munich - Cloud Native Platform Dilemma - Turning it into an OpportunityKCD Munich - Cloud Native Platform Dilemma - Turning it into an Opportunity
KCD Munich - Cloud Native Platform Dilemma - Turning it into an Opportunity
 
OpenTelemetry For GitOps: Tracing Deployments from Git Commit to Production
OpenTelemetry For GitOps: Tracing Deployments from Git Commit to ProductionOpenTelemetry For GitOps: Tracing Deployments from Git Commit to Production
OpenTelemetry For GitOps: Tracing Deployments from Git Commit to Production
 
Don't Deploy Into the Dark: DORA Metrics for your K8s GitOps Deployments
Don't Deploy Into the Dark: DORA Metrics for your K8s GitOps DeploymentsDon't Deploy Into the Dark: DORA Metrics for your K8s GitOps Deployments
Don't Deploy Into the Dark: DORA Metrics for your K8s GitOps Deployments
 
Observability and Orchestration of your GitOps Deployments with Keptn
Observability and Orchestration of your GitOps Deployments with KeptnObservability and Orchestration of your GitOps Deployments with Keptn
Observability and Orchestration of your GitOps Deployments with Keptn
 
Release Readiness Validation with Keptn for Austrian Online Banking Software
Release Readiness Validation with Keptn for Austrian Online Banking SoftwareRelease Readiness Validation with Keptn for Austrian Online Banking Software
Release Readiness Validation with Keptn for Austrian Online Banking Software
 
Adding Security to your SLO-based Release Validation with Keptn
Adding Security to your SLO-based Release Validation with KeptnAdding Security to your SLO-based Release Validation with Keptn
Adding Security to your SLO-based Release Validation with Keptn
 
A Guide to Event-Driven SRE-inspired DevOps
A Guide to Event-Driven SRE-inspired DevOpsA Guide to Event-Driven SRE-inspired DevOps
A Guide to Event-Driven SRE-inspired DevOps
 
Jenkins Online Meetup - Automated SLI based Build Validation with Keptn
Jenkins Online Meetup - Automated SLI based Build Validation with KeptnJenkins Online Meetup - Automated SLI based Build Validation with Keptn
Jenkins Online Meetup - Automated SLI based Build Validation with Keptn
 
Continuous Delivery and Automated Operations on k8s with keptn
Continuous Delivery and Automated Operations on k8s with keptnContinuous Delivery and Automated Operations on k8s with keptn
Continuous Delivery and Automated Operations on k8s with keptn
 
Keptn - Automated Operations & Continuous Delivery for k8s
Keptn - Automated Operations & Continuous Delivery for k8sKeptn - Automated Operations & Continuous Delivery for k8s
Keptn - Automated Operations & Continuous Delivery for k8s
 
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8sShipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
 
Top Performance Problems in Distributed Architectures
Top Performance Problems in Distributed ArchitecturesTop Performance Problems in Distributed Architectures
Top Performance Problems in Distributed Architectures
 
Applying AI to Performance Engineering: Shift-Left, Shift-Right, Self-Healing
Applying AI to Performance Engineering: Shift-Left, Shift-Right, Self-HealingApplying AI to Performance Engineering: Shift-Left, Shift-Right, Self-Healing
Applying AI to Performance Engineering: Shift-Left, Shift-Right, Self-Healing
 
Monitoring as a Self-Service in Atlassian DevOps Toolchain
Monitoring as a Self-Service in Atlassian DevOps ToolchainMonitoring as a Self-Service in Atlassian DevOps Toolchain
Monitoring as a Self-Service in Atlassian DevOps Toolchain
 
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code DeploysDevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
 
AWS Summit - Trends in Advanced Monitoring for AWS environments
AWS Summit - Trends in Advanced Monitoring for AWS environmentsAWS Summit - Trends in Advanced Monitoring for AWS environments
AWS Summit - Trends in Advanced Monitoring for AWS environments
 
DevOps Transformation at Dynatrace and with Dynatrace
DevOps Transformation at Dynatrace and with DynatraceDevOps Transformation at Dynatrace and with Dynatrace
DevOps Transformation at Dynatrace and with Dynatrace
 

BTD2015 - Your Place In DevTOps is Finding Solutions - Not Just Bugs!

Notes de l'éditeur

  1. And that’s my professional background
  2. Its not a hoax or hype – DevOps is a real thing. Especially driven by the release of books like “The Phoenix Project”, Velocity conference with a shift in focus to DevOps and many companies that jumped on the bandwaggon to build tools and offer services around DevOps
  3. So – some call it DevOps - …
  4. Some say it is simply the natural evolution of software engineering where we push stuff principles of Lean, Agile and Continuous Integration further to production
  5. And here is my definition of DevOps
  6. The other trend is the DevOps movements that tries to help us here. Heavily promoted and pushed by several people, organizations, books and conferences If you havent read the phoenix project please do so. Also make sure you are getting up to speed with concepts such as Continuous Delivery and doing this in an efficient way – as this is what we need to do in order to comply with the rapidly changing requirements
  7. Cycle time is the most relevant metric in the software delivery process. “How long would it take your organization to deploy a change that involves just one single line of code?” Mary Poppendieck
  8. Cycle time is the most relevant metric in the software delivery process. “How long would it take your organization to deploy a change that involves just one single line of code?” Mary Poppendieck
  9. Cycle time is the most relevant metric in the software delivery process. “How long would it take your organization to deploy a change that involves just one single line of code?” Mary Poppendieck
  10. The key goal that people want to achieve is to Reduce Lead Time. An automated build pipeline plays a huge role in it as we get rid of a lot of manual tasks that otherwise hold up the process When pushing out features faster it is important to also close the feedback loop to constantly improve the process and quality of the developed software
  11. Several companies changed their way they develop and deploy software over the years. Here are some examples (numbers from 2011 – 2014) Cars: from 2 deployments to 700 Flicks: 10+ per Day Etsy: lets every new employee on their first day of employment make a code change and push it through the pipeline in production: THAT’S the right approach towards required culture change Amazon: every 11.6s Remember: these are very small changes – which is also a key goal of continuous delivery. The smaller the change the easier it is to deploy, the less risk it has, the easier it is to test and the easier is it to take it out in case it has a problem.
  12. So – our goal is to deploy new features faster to get it in front of our paying end users or employees
  13. For many companies that tried this it may also meant that they fail faster
  14. Its also very important to keep the focus right – building and fixing those things that matter.
  15. Your app that you are responsible for crashes …
  16. The Fifa World Cup App one week before the worldcup. Crashed for the majority of Android users when refreshing the news section of the app caused by a memory leak introduced by an outdated library they used
  17. The classical war room – this is where most of the engineers trying to figure out what is wrong for hours or even days instead of building new stuff
  18. Bad press! Something you don’t like either if you want to sell your software or service
  19. Bad comments on the Google Play store for the Fifa App. If you invest a lot of time & money this is not going to help you harvest the investment as many people will probably just download an app from the competition
  20. But Why does this really happen?
  21. A lot of time developers and testers see the world from a DIFFERENT POINT of View as well as having different priorities: Developers want to build features and not fix bug that keeps them from bulding new features. Testers need to find bugs because that’s what they are measured on – so – this is a natural conflict in common goals. Also – the – “It works on my machine” attitude comes up a lot. Devs e.g: don’t trust the Testing Tools Same is true for Operations and Developers, Operations and Testers, Business and Operations, …. – there are always conflicts in interests and goals and there is always a trust issue with the tools used and the data captured
  22. As tester it often feels like you are the lonely ranger that is not scared of these bugs but the rest of the organization is as it jeopardizes the release schedule
  23. The close we get to release it seems like developers are really chased by testers. But they try to escape to finish the last user stories they committed to – which his also more fun than fixing bugs
  24. At release date – with not all bugs fixed it just happens that people simply deploy and let end users do the testing in production
  25. This attitude doesn’t help either
  26. Based on a recent study: 80% of Dev Team overall is spent in Bugfixing instead of building new cool features $60B annual costs of bad software instead of investing it in new cool features to spearhead competition
  27. We need to leave that status quo. And there are two numbers that tell us that it is not as hard to do as it may seem
  28. Based on my experience 80% of the problems are only caused by 20% problem patterns. And focusing on 20% of potential problems that take away 80% of the pain is a very good starting point
  29. Sounds super nice on paper – so – how do we get there?
  30. Now we are talking about several real life use cases from applications that crashed when deployed into production. For each use case we are looking into Why the app failed -> technical root cause which metrics to look at to identify the actual architectural, performance or scalability problem How you can level up to identify these problems and also automate that along the delivery pipeline
  31. So – we have seen a lot of metrics. The goal now is that you start with one metric. Pick a single metric and take it back to your engineering team (Dev, Test, Ops and Business). Sit down and agree on what this metric means for everyone, how to measure it and also how to report it Also remember that for most of these use cases discussed and metrics derived from it we only need a single user test. Even though we can identify performance, scalability and architectural issues – in most cases we don’t need a load test. Single user tests or unit tests are good enough
  32. Level-Up Skills by talking and exchanging ideas for your piers: developers, ops, business It is important that both sides start understanding the challenges of the other side. It is important that they speak the same language, e.g: what does this metric mean to you? How do you measure it? Sit down and level-up skills for everybody and agree on a common set of tools and metrics But what types of metrics?
  33. Metrics around Architecture, e.g: how many web service calls does it take to implement this new feature? How many AJAX calls do we make when people logon to our site? Is that smart?
  34. How fast is that piece of code? Is it efficient in its usage of CPU, Memory, Disk and Network?
  35. Is the application also going to scale? Which components perform better or worse with increasing load? Where is the breaking point? Where is the API that is the issue? Whats the architectural decision behind the app not scaling?
  36. If we add these 4 quality areas we convert DevOps into DevTOps We change testers from creating bugs to help finding solutions as a team!
  37. Once we figured out how to get these measures it is time to automate the capturing but also automate quality alerting in case these metrics are showing us that we ran into one of these well known use cases.
  38. Here is how we do this. In addition to looking at functional and unit test results which only tell us how functionality is we also look into these backed metrics for every test. With that we can immediately identify whether code changes result in any performance, scalability or architectural regressions. Knowing this allows us to stop that build early
  39. This is how this can look like in a real life example. Analyzing Key Performance, Scalability and Architectural Metrics for every single test
  40. This is how this could look like in Jenkins
  41. Now as we know which metrics we need to look at and how to automate the capturing and detect regressions from build to build we simply add it to the continuous delivery pipeline by letting these metrics act as quality gateways. We do not let a build move forward if we already know that it has a well known problem. Here are all the benefits Only good code reaches production We eliminate time spent in later stages if we already identify problems earlier We all level up our skills and become a better team We produce better software faster -> we don’t crash the car
  42. The problem is that there is not enough focus on code quality which leads lots of bugs ending up in production. We also know that it is more expensive and time consuming to fix a bug in production rather than earlier in the lifecycle This is exactly what leads to the costs and time spent in fixing issues
  43. So – if we focus on these well known problems early – if we even automated this process– we eliminate A lot of wasted time with testing of bad code that was now already eliminated earlier Better overall quality in production Fewer Bugs overall that have side-effects and a better general understanding of quality leads to lower costs on fixing bugs
  44. We start with CAMS – which is the base foundation of the initial Definition of DevOps But we add new areas around Quality Focus