software that eats the world! - performday brussels
TRANSCRIPT
Software that eats the
world!Klaus Enzenhofer @kenzenhofer
2011“In Short,
Software is eating the
world!”https://en.wikipedia.org/wiki/Marc_Andreessen
Largest companies in the world by Market Cap
Rank 2011 2012 2016 (Q3)#1 Exxon Mobil Apple Apple#2 Petro China Exxon Mobil Alphabet (Google)#3 Apple Inc. Petro China Microsoft#4 ICBC Microsoft Amazon#5 Pertobras IBM Facebook
3 Things to cover Today!
Let‘s start withyou!
The „I get paid at the end of th
e month“- dashboard
3 Things to cover Today!
Cloud
WHY?Cost Savings
Flexible EASY
Maintenance
We need to go cloud!
Anyone Failed?Anyone had an issue?
Do NOT trust the cloud!
Lesson learned #1:
Constantly test the APIs and their responses
DBDB
CLOUD Based ApplicationsWeb
Web
AppServer A
AppServer B
DB
AppServer A is going down!
Thanks for telling me a week too late!*****
vCPU != physical CPU
Lesson learned #2:
actually 1 vCPU = ½ physical Core
vCPU != physical CPU
test your sizing in the cloud!
Hybrid deployments are complex
Lesson learned #3:
Data Center ApplicationsWeb
Legacy
CRM
AppServerAppServer
AppServerAppServer
AppServerAppServer
DB
MF
3rd Party
WebWeb
AppServerAppServer
AppServer
DBDB
DB
CLOUD Based ApplicationsWeb
Web
AppServer
AppServer
DB
Data Center Applications
Web AppServer DB
CLOUD
Server Server Server Server
Data Center Applications
Web AppServer DB……
I cannot handle domain names!Give me an IP
Work with your provider!
Lesson learned #4:
Microservices+
3 Things to cover Today!
Let‘s finish withyou!
Who is doing SLA Monitoring?
Any one a salary depending on it?
Any changes lately?
Google - Mobile Friendliness Campaign?!
Contract SLA: Average Response Time < 3
sec
User
on Desktop + Mobile
Good idea?!
4.5 sec 15 sec
UserDeveloper Operator
Let‘s take a look at the timings!Navigation Start: 0 ms
Domain Lookup End: 269 ms
Connect End: 330 ms
Response Start: 517 ms
Response End:518 ms
Dom Loading: 519 ms
Dom Interactive: 519 ms
DomContentLoaded Event End: 520 ms
Dom Complete: 520 ms
Load Event End:522 ms
0.5 sec 0.5 sec
Developer
User Operator
User
DNS Lookup
Initial connection
TTFB
(HTML)Download
Life of an URL request
Starting here, we are able to control …
<script src=“angular.js”> blocking!
<script src=“angular.js”> blocking!<script src=“main.js”> blocking!
<script src=“angular.js”> blocking!<script src=“main.js”> blocking!
start render
<script src=“angular.js”> blocking!<script src=“main.js”> blocking!
start renderresponse time
Server-side rendering for SPA
Brow
ser
App
Serv
ing
asse
tsAP
I Ser
ver
GET /app
JavaScript payload
GET /api/users
JSON payload
GET /api/posts
GET /api/pages
JSON payload
JSON payload
Send index.html
Request JS application
Brow
ser
App
Uni
vers
al re
nder
ing
API S
erve
r
GET /app
JavaScript payload
GET /api/users
JSON payload
GET /api/posts
GET /api/pages
JSON payload
JSON payload
Initial render HTML + CSS
Request JS application
4.5 sec 6 sec
UserDeveloper Operator
Operator
The CDN bill exploded!
285 Resources for an initial Page Load
151 CSS and 121 JavaScript files
~200 Resources had larger Header than Body
User
Mobile Data is expensive
https
://w
hatd
oesm
ysite
cost
.com
http://cdn.shopify.com/s/files/1/1462/9702/articles/26_cangoroo_1024x1024.jpg?v=1473016235
Back Home
Back Home
HTTP Archive – Transfer Size Trend
http://httparchive.org/trends.php
Average Size ~2 500 KB By 1.6 € per 100 KB
40 € to get started!!!!
2. Page weight
There’s lots of ways to reduce the payload
Reduce styles
Tree-Shaking to reduce JS
2 sec 2.5 sec
UserDeveloper Operator
QuestionsSlides: slideshare.net/kenzenhoferGet Tools: bit.ly/dtpersonalYouTube Tutorials: bit.ly/dttutorialsContact Me: [email protected] Me: @kenzenhoferRead More: blog.dynatrace.com
Klaus EnzenhoferDirector Technology Strategy@kenzenhoferhttp://blog.dynatrace.com