oop 2016 - building software that eats the world

67
1 @Dynatrace Andreas Grabner - @grabnerandi http://bit.ly/dttutorials Building Software that EATS the World!

Upload: andreas-grabner

Post on 15-Apr-2017

1.561 views

Category:

Software


2 download

TRANSCRIPT

Page 1: OOP 2016 - Building Software That Eats The World

1 @Dynatrace

Andreas Grabner - @grabnerandihttp://bit.ly/dttutorials

Building Software that EATS the World!

Page 2: OOP 2016 - Building Software That Eats The World
Page 3: OOP 2016 - Building Software That Eats The World

Sep 1, 2000

Page 4: OOP 2016 - Building Software That Eats The World

June 29, 2007

Page 5: OOP 2016 - Building Software That Eats The World
Page 6: OOP 2016 - Building Software That Eats The World

Vatican, 2005

Page 7: OOP 2016 - Building Software That Eats The World

Vatican, 2013

Page 9: OOP 2016 - Building Software That Eats The World

2011“In Short,

Software is eating the

world!”https://en.wikipedia.org/wiki/Marc_Andreessen

Page 10: OOP 2016 - Building Software That Eats The World

2015

Page 11: OOP 2016 - Building Software That Eats The World
Page 12: OOP 2016 - Building Software That Eats The World
Page 13: OOP 2016 - Building Software That Eats The World
Page 14: OOP 2016 - Building Software That Eats The World
Page 15: OOP 2016 - Building Software That Eats The World
Page 16: OOP 2016 - Building Software That Eats The World
Page 17: OOP 2016 - Building Software That Eats The World
Page 18: OOP 2016 - Building Software That Eats The World
Page 19: OOP 2016 - Building Software That Eats The World
Page 20: OOP 2016 - Building Software That Eats The World
Page 21: OOP 2016 - Building Software That Eats The World

60%

rate performance/response time as #1 mobile app expectation ahead of features

and functionality(Forrester, Nov 2014)

Page 22: OOP 2016 - Building Software That Eats The World

> 2015

Page 23: OOP 2016 - Building Software That Eats The World
Page 24: OOP 2016 - Building Software That Eats The World

Smart Appliances

Page 25: OOP 2016 - Building Software That Eats The World

Smart Roofs

Page 26: OOP 2016 - Building Software That Eats The World
Page 27: OOP 2016 - Building Software That Eats The World
Page 28: OOP 2016 - Building Software That Eats The World
Page 29: OOP 2016 - Building Software That Eats The World

Disrupting Digital Business – R „Ray“ Wang

Page 30: OOP 2016 - Building Software That Eats The World
Page 31: OOP 2016 - Building Software That Eats The World
Page 32: OOP 2016 - Building Software That Eats The World
Page 33: OOP 2016 - Building Software That Eats The World

700 deployments / year

10 + deployments / day

50 – 60 deployments / day

Every 11.6 seconds

Page 34: OOP 2016 - Building Software That Eats The World
Page 35: OOP 2016 - Building Software That Eats The World

It‘s not about blind automation of pushing more bad code on new stacks through a pipeline

Page 36: OOP 2016 - Building Software That Eats The World

It‘s not about blindly giving everyone Ops powerto deploy changes only tested locally

Page 37: OOP 2016 - Building Software That Eats The World
Page 38: OOP 2016 - Building Software That Eats The World

Monolith ASP.NET

Can‘t scale vertically endlessly!

2.68s Load Time

94.09% CPU Bound

Page 39: OOP 2016 - Building Software That Eats The World

Service Approach!

Frontendto Cloud

Scale Backendin Containers!

Page 40: OOP 2016 - Building Software That Eats The World

7:00 a.m.Low Load and Service runningon minimum redundancy

12:00 p.m.Scaled up service during peak loadwith failover of problematic node

7:00 p.m.Scaled down again to lower loadand move to different geo location

Testing the Backend Service alone scales well …

Page 41: OOP 2016 - Building Software That Eats The World

Go Live - 7am

Page 42: OOP 2016 - Building Software That Eats The World

Go Live - 12pm

Page 43: OOP 2016 - Building Software That Eats The World

What Went Wrong?

Page 44: OOP 2016 - Building Software That Eats The World

26.7s Load Time5kB Payload

33! Service Calls

99kB - 3kB for each call!

171! Total SQL Count

Architecture ViolationDirect access to DB from frontend service

Single Search Query End-to-End

Page 45: OOP 2016 - Building Software That Eats The World

The Fixed End-to-End Use Case

“Re-Architect” vs “Migrate” to Service-Orientation

2.5s (vs 26.7) 5kB Payload

1! (vs 33!) Service Call

5kB (vs 99) Payload!

3! (vs 177) Total SQL Count

Page 46: OOP 2016 - Building Software That Eats The World
Page 47: OOP 2016 - Building Software That Eats The World
Page 48: OOP 2016 - Building Software That Eats The World

You measure it! From Dev(to)Ops

Page 49: OOP 2016 - Building Software That Eats The World

Build 17 testNewsAlert OKtestSearch OK

Build # Use Case Stat # API Calls # SQL Payload CPU

1 5 2kb 70ms1 3 5kb 120ms

Use Case Tests and Monitors Service & App Metrics

Build 19 testNewsAlert OKtestSearch OK

Build 18 testNewsAlert OKtestSearch OK

1 4 1kb 60ms34 171 104kb 550ms

Ops#ServInst Usage RT

1 0.5% 7.2s

1 63% 5.2s

1 4 1kb 60ms2 3 10kb 150ms

1 0.2% 5.2s

5 75% 2.5s

Build 25 testNewsAlert -testSearch OK

- - - -2 3 10kb 150ms

- - -

8 80% 2.0s

Metrics from and for Dev(to)Ops

Page 50: OOP 2016 - Building Software That Eats The World

#1: Analyzing every Unit, Integration & REST API test

#2: Key Architectural Metrics for each test

#3: Detecting regression based on measure per Checkin

#1: Stop Bad Builds in CI

Page 51: OOP 2016 - Building Software That Eats The World

#2: Metrics per Service in Ops

# SQLs per Search

# RESTs per SearchSpot bad Deployment?

Payload per Search

Page 52: OOP 2016 - Building Software That Eats The World

Build & Deliver Apps that can eat the world!

With a Metrics-Driven Pipeline!

Page 53: OOP 2016 - Building Software That Eats The World

12am – 11:59pm

Page 54: OOP 2016 - Building Software That Eats The World
Page 55: OOP 2016 - Building Software That Eats The World

Unicorns 2.0

Page 56: OOP 2016 - Building Software That Eats The World

• Waterfall agile: 3 years• 220 Apps - 1 deployment per month• “EVERY manual tester does Automation”• Virtualized vs Physical• “We don’t log bugs. We fix them.”

• Measures are built in & Visible to everyone• API Teams vs Application Teams• Promote your wins! Educate your peers.

Page 57: OOP 2016 - Building Software That Eats The World
Page 58: OOP 2016 - Building Software That Eats The World

Business Debt

Organizational Rust

Technical Debt

Automation & Virtualization

Page 59: OOP 2016 - Building Software That Eats The World

Some Verizon Achievements since 2012

456 Apps Eliminated

Consolidated from 13 to 5 Data Centers

Virtual Server Footprint from 38% to 75%

Software Renewal Cost slashed by 8M

Hardware Footprint down by 25%

Page 60: OOP 2016 - Building Software That Eats The World

“(Micro)Services” Environments are virtual/cloud and usually 20 times larger

https://www.youtube.com/watch?v=smEuX-Hq6RI - Monitoring Micro Services, Adrian Cockcroft Keynote O’Reilly Software Architecture Conference

Monitoring becomes a Platform Feature

Page 61: OOP 2016 - Building Software That Eats The World
Page 62: OOP 2016 - Building Software That Eats The World
Page 63: OOP 2016 - Building Software That Eats The World
Page 64: OOP 2016 - Building Software That Eats The World
Page 65: OOP 2016 - Building Software That Eats The World

#3 You Automate/Virtualize

#2 You Measure Dev(to)Ops

#1 You Build It, You Run It!

#4 You API vs You App#5 You Eat the World

Page 66: OOP 2016 - Building Software That Eats The World

Andreas GrabnerDynatrace Developer Advocate@grabnerandihttp://blog.dynatrace.comhttp://bit.ly/dtpersonalhttp://www.ruxit.com

Page 67: OOP 2016 - Building Software That Eats The World