![Page 1: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/1.jpg)
1 @Dynatrace
Andreas Grabner - @grabnerandihttp://bit.ly/dttutorials
Building Software that EATS the World!
![Page 2: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/2.jpg)
![Page 3: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/3.jpg)
Sep 1, 2000
![Page 4: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/4.jpg)
June 29, 2007
![Page 5: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/5.jpg)
![Page 6: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/6.jpg)
Vatican, 2005
![Page 7: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/7.jpg)
Vatican, 2013
![Page 9: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/9.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/10.jpg)
2015
![Page 11: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/11.jpg)
![Page 12: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/12.jpg)
![Page 13: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/13.jpg)
![Page 14: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/14.jpg)
![Page 15: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/15.jpg)
![Page 16: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/16.jpg)
![Page 17: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/17.jpg)
![Page 18: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/18.jpg)
![Page 19: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/19.jpg)
![Page 20: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/20.jpg)
![Page 21: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/21.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/22.jpg)
> 2015
![Page 23: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/23.jpg)
![Page 24: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/24.jpg)
Smart Appliances
![Page 25: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/25.jpg)
Smart Roofs
![Page 26: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/26.jpg)
![Page 27: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/27.jpg)
![Page 28: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/28.jpg)
![Page 29: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/29.jpg)
Disrupting Digital Business – R „Ray“ Wang
![Page 30: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/30.jpg)
![Page 31: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/31.jpg)
![Page 32: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/32.jpg)
![Page 33: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/33.jpg)
700 deployments / year
10 + deployments / day
50 – 60 deployments / day
Every 11.6 seconds
![Page 34: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/34.jpg)
![Page 35: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/35.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/36.jpg)
It‘s not about blindly giving everyone Ops powerto deploy changes only tested locally
![Page 37: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/37.jpg)
![Page 38: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/38.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/39.jpg)
Service Approach!
Frontendto Cloud
Scale Backendin Containers!
![Page 40: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/40.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/41.jpg)
Go Live - 7am
![Page 42: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/42.jpg)
Go Live - 12pm
![Page 43: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/43.jpg)
What Went Wrong?
![Page 44: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/44.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/45.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/46.jpg)
![Page 47: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/47.jpg)
![Page 48: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/48.jpg)
You measure it! From Dev(to)Ops
![Page 49: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/49.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/50.jpg)
#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](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/51.jpg)
#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](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/52.jpg)
Build & Deliver Apps that can eat the world!
With a Metrics-Driven Pipeline!
![Page 53: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/53.jpg)
12am – 11:59pm
![Page 54: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/54.jpg)
![Page 55: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/55.jpg)
Unicorns 2.0
![Page 56: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/56.jpg)
• 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](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/57.jpg)
![Page 58: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/58.jpg)
Business Debt
Organizational Rust
Technical Debt
Automation & Virtualization
![Page 59: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/59.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/60.jpg)
“(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](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/61.jpg)
![Page 62: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/62.jpg)
![Page 63: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/63.jpg)
![Page 64: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/64.jpg)
![Page 65: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/65.jpg)
#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](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/66.jpg)
Andreas GrabnerDynatrace Developer Advocate@grabnerandihttp://blog.dynatrace.comhttp://bit.ly/dtpersonalhttp://www.ruxit.com
![Page 67: OOP 2016 - Building Software That Eats The World](https://reader036.vdocument.in/reader036/viewer/2022062904/587854c11a28ab68198b702d/html5/thumbnails/67.jpg)