73
Software that eats the world! Klaus Enzenhofer @kenzenhofer

Software that eats the world! - PerformDay Brussels

Embed Size (px)

Citation preview

Page 1: Software that eats the world! - PerformDay Brussels

Software that eats the

world!Klaus Enzenhofer @kenzenhofer

Page 2: Software that eats the world! - PerformDay Brussels

2011“In Short,

Software is eating the

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

Page 3: Software that eats the world! - PerformDay Brussels

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

Page 4: Software that eats the world! - PerformDay Brussels

3 Things to cover Today!

Page 5: Software that eats the world! - PerformDay Brussels

Let‘s start withyou!

Page 6: Software that eats the world! - PerformDay Brussels

The „I get paid at the end of th

e month“- dashboard

Page 7: Software that eats the world! - PerformDay Brussels
Page 8: Software that eats the world! - PerformDay Brussels

3 Things to cover Today!

Page 9: Software that eats the world! - PerformDay Brussels

Cloud

Page 10: Software that eats the world! - PerformDay Brussels

WHY?Cost Savings

Flexible EASY

Maintenance

Page 11: Software that eats the world! - PerformDay Brussels

We need to go cloud!

Page 12: Software that eats the world! - PerformDay Brussels

Anyone Failed?Anyone had an issue?

Page 13: Software that eats the world! - PerformDay Brussels
Page 14: Software that eats the world! - PerformDay Brussels

Do NOT trust the cloud!

Lesson learned #1:

Page 15: Software that eats the world! - PerformDay Brussels

Constantly test the APIs and their responses

Page 16: Software that eats the world! - PerformDay Brussels

DBDB

CLOUD Based ApplicationsWeb

Web

AppServer A

AppServer B

DB

AppServer A is going down!

Thanks for telling me a week too late!*****

Page 17: Software that eats the world! - PerformDay Brussels

vCPU != physical CPU

Lesson learned #2:

Page 18: Software that eats the world! - PerformDay Brussels

actually 1 vCPU = ½ physical Core

vCPU != physical CPU

test your sizing in the cloud!

Page 19: Software that eats the world! - PerformDay Brussels

Hybrid deployments are complex

Lesson learned #3:

Page 20: Software that eats the world! - PerformDay Brussels

Data Center ApplicationsWeb

Legacy

CRM

AppServerAppServer

AppServerAppServer

AppServerAppServer

DB

MF

3rd Party

WebWeb

AppServerAppServer

AppServer

DBDB

DB

CLOUD Based ApplicationsWeb

Web

AppServer

AppServer

DB

Page 21: Software that eats the world! - PerformDay Brussels

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

Page 22: Software that eats the world! - PerformDay Brussels

Work with your provider!

Lesson learned #4:

Page 23: Software that eats the world! - PerformDay Brussels

Microservices+

Page 24: Software that eats the world! - PerformDay Brussels
Page 25: Software that eats the world! - PerformDay Brussels
Page 26: Software that eats the world! - PerformDay Brussels

3 Things to cover Today!

Page 27: Software that eats the world! - PerformDay Brussels

Let‘s finish withyou!

Page 28: Software that eats the world! - PerformDay Brussels

Who is doing SLA Monitoring?

Page 29: Software that eats the world! - PerformDay Brussels

Any one a salary depending on it?

Page 30: Software that eats the world! - PerformDay Brussels

Any changes lately?

Page 31: Software that eats the world! - PerformDay Brussels

Google - Mobile Friendliness Campaign?!

Page 32: Software that eats the world! - PerformDay Brussels

Contract SLA: Average Response Time < 3

sec

User

on Desktop + Mobile

Page 33: Software that eats the world! - PerformDay Brussels

Good idea?!

Page 34: Software that eats the world! - PerformDay Brussels

4.5 sec 15 sec

UserDeveloper Operator

Page 35: Software that eats the world! - PerformDay Brussels
Page 36: Software that eats the world! - PerformDay Brussels

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

Page 37: Software that eats the world! - PerformDay Brussels

0.5 sec 0.5 sec

Developer

Page 38: Software that eats the world! - PerformDay Brussels

User Operator

Page 39: Software that eats the world! - PerformDay Brussels

User

Page 40: Software that eats the world! - PerformDay Brussels
Page 41: Software that eats the world! - PerformDay Brussels

DNS Lookup

Initial connection

TTFB

(HTML)Download

Life of an URL request

Page 42: Software that eats the world! - PerformDay Brussels

Starting here, we are able to control …

Page 43: Software that eats the world! - PerformDay Brussels

<script src=“angular.js”> blocking!

Page 44: Software that eats the world! - PerformDay Brussels

<script src=“angular.js”> blocking!<script src=“main.js”> blocking!

Page 45: Software that eats the world! - PerformDay Brussels

<script src=“angular.js”> blocking!<script src=“main.js”> blocking!

start render

Page 46: Software that eats the world! - PerformDay Brussels

<script src=“angular.js”> blocking!<script src=“main.js”> blocking!

start renderresponse time

Page 47: Software that eats the world! - PerformDay Brussels

Server-side rendering for SPA

Page 48: Software that eats the world! - PerformDay Brussels

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

Page 49: Software that eats the world! - PerformDay Brussels

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

Page 50: Software that eats the world! - PerformDay Brussels
Page 51: Software that eats the world! - PerformDay Brussels
Page 52: Software that eats the world! - PerformDay Brussels
Page 53: Software that eats the world! - PerformDay Brussels

4.5 sec 6 sec

UserDeveloper Operator

Page 54: Software that eats the world! - PerformDay Brussels

Operator

Page 55: Software that eats the world! - PerformDay Brussels

The CDN bill exploded!

Page 56: Software that eats the world! - PerformDay Brussels

285 Resources for an initial Page Load

151 CSS and 121 JavaScript files

Page 57: Software that eats the world! - PerformDay Brussels

~200 Resources had larger Header than Body

Page 58: Software that eats the world! - PerformDay Brussels

User

Page 59: Software that eats the world! - PerformDay Brussels

Mobile Data is expensive

Page 60: Software that eats the world! - PerformDay Brussels

https

://w

hatd

oesm

ysite

cost

.com

Page 61: Software that eats the world! - PerformDay Brussels
Page 62: Software that eats the world! - PerformDay Brussels

http://cdn.shopify.com/s/files/1/1462/9702/articles/26_cangoroo_1024x1024.jpg?v=1473016235

Page 63: Software that eats the world! - PerformDay Brussels

Back Home

Page 64: Software that eats the world! - PerformDay Brussels

Back Home

Page 65: Software that eats the world! - PerformDay Brussels

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!!!!

Page 66: Software that eats the world! - PerformDay Brussels

2. Page weight

Page 67: Software that eats the world! - PerformDay Brussels

There’s lots of ways to reduce the payload

Page 68: Software that eats the world! - PerformDay Brussels
Page 69: Software that eats the world! - PerformDay Brussels

Reduce styles

Page 70: Software that eats the world! - PerformDay Brussels

Tree-Shaking to reduce JS

Page 71: Software that eats the world! - PerformDay Brussels

2 sec 2.5 sec

UserDeveloper Operator

Page 72: Software that eats the world! - PerformDay Brussels

QuestionsSlides: slideshare.net/kenzenhoferGet Tools: bit.ly/dtpersonalYouTube Tutorials: bit.ly/dttutorialsContact Me: [email protected] Me: @kenzenhoferRead More: blog.dynatrace.com

Page 73: Software that eats the world! - PerformDay Brussels

Klaus EnzenhoferDirector Technology Strategy@kenzenhoferhttp://blog.dynatrace.com