Top Banner
50

Ember At Scale

Jan 22, 2017

Download

Technology

Chad Hietala
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Ember At Scale
Page 2: Ember At Scale
Page 3: Ember At Scale
Page 4: Ember At Scale

EMBER AT SCALE

Page 5: Ember At Scale

@chadhietala

Page 6: Ember At Scale

THIS IS OUR STORY

Page 7: Ember At Scale

2013

Page 8: Ember At Scale

PRODUCT & TECH BALANCE

Page 9: Ember At Scale
Page 10: Ember At Scale

WHAT YEAR IS IT?

Page 11: Ember At Scale

“If it ain’t broken don’t fix it.”- Someone not in the Javascript community

Page 12: Ember At Scale

2014

Page 13: Ember At Scale

SOFTWARE ROT

Page 14: Ember At Scale

UNIFY & REDUCE COMPLEXITY

Page 15: Ember At Scale
Page 16: Ember At Scale

CONSIDERATIONS

Page 17: Ember At Scale

CENTRALIZED SUPPORT

Page 18: Ember At Scale

LESS IS MORE

Page 19: Ember At Scale

CHANGE IS THE CONSTANT

Page 20: Ember At Scale
Page 21: Ember At Scale

SOLVING PROBLEMS

Page 22: Ember At Scale

INITIAL RENDER

Page 23: Ember At Scale

BASE PAGE RENDERER(BPR)

Page 24: Ember At Scale

BIG PIPE

Page 25: Ember At Scale

Server Server

STORE AND FORWARD CHUNKED ENCODING

NETWORK BOUNDARY

Page 26: Ember At Scale

BPR

Such Web Scale

API ServerEmber App

Browser

Page 27: Ember At Scale

Such Web Scale

API ServerEmber App

linkedin.com/profile/123

BPRAPI ServerEmber App

Browser

Page 28: Ember At Scale

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>LinkedIn : Profile</title> <link href=“app.css” rel=“stylesheet” type=“text/css" /> </head> <body> <script src=“vendor.js”></script> <script src=“app.js”></script>

Such Web Scale

API ServerEmber App

linkedin.com/profile/123

BPRAPI ServerEmber App

Browser

Page 29: Ember At Scale

Such Web Scale

API ServerEmber App

linkedin.com/profile/123

BPRAPI ServerEmber App

Browser

appInstance.visit(‘/profile/123’)

Page 30: Ember At Scale

Such Web Scale

API ServerEmber App

linkedin.com/profile/123

BPRAPI ServerEmber App

Browser

appInstance.visit(‘/profile/123’)

[‘/profile/123’, /config/123’]

Page 31: Ember At Scale

npm install ember-prefetch

Page 32: Ember At Scale

TRADITIONAL EMBER APP

WITH EMBER-PREFETCH

Page 33: Ember At Scale

Such Web Scale

{ data: {…} }API ServerEmber App

linkedin.com/profile/123

BPRAPI ServerEmber App

Browser

appInstance.visit(‘/profile/123’)

Page 34: Ember At Scale

<code id=“bpr-guid-3243243”>{&quot;data&uote;:{…}}</code> <script class=“bpr-response”> _bpr.response({

request: ‘/profile/123’, status: 200, body: ‘bpr-guid-3243243’})

</script>

Such Web Scale

API ServerEmber App

linkedin.com/profile/123

BPRAPI ServerEmber App

Browser

appInstance.visit(‘/profile/123’)

Page 35: Ember At Scale

bit.ly/resource-discovery

Page 36: Ember At Scale

ember fastboot --resource-discovery

Page 37: Ember At Scale

SERVING THE APP

Page 38: Ember At Scale

JVM

Such Web Scale

Base Page Controller

Renderer

Instance

Process Manager

Instance

Channel Channel

Node

API Proxy

Ember Renderer

Ember App

linkedin.com/profile/123

Instance

Page 39: Ember At Scale

JVM

Such Web Scale

Base Page Controller

Renderer

Instance

Process Manager

Instance

Channel Channel

Node

API Proxy

Ember Renderer

Ember App

linkedin.com/profile/123

Instance

Page 40: Ember At Scale

JVM

Such Web Scale

Base Page Controller

Renderer

Instance

Process Manager

Instance

Channel Channel

Node

API Proxy

Ember Renderer

Ember App

linkedin.com/profile/123

Instance

Page 41: Ember At Scale

JVM

Such Web Scale

Base Page Controller

Renderer

Instance

Process Manager

Instance

Channel Channel

Node

API Proxy

Ember Renderer

Ember App

linkedin.com/profile/123

Instance

Page 42: Ember At Scale

JVM

Such Web Scale

Base Page Controller

Renderer

Instance

Process Manager

Instance

Channel Channel

Node

API Proxy

Ember Renderer

Ember App

linkedin.com/profile/123

Instance

Page 43: Ember At Scale

JVM

Such Web Scale

Base Page Controller

Renderer

Instance

Process Manager

Instance

Channel Channel

Node

API Proxy

Ember Renderer

Ember App

linkedin.com/profile/123

Instance

Page 44: Ember At Scale

DEPLOYMENTS

Page 45: Ember At Scale

V8

Page 46: Ember At Scale

npm install chrome-tracing

Page 47: Ember At Scale
Page 48: Ember At Scale

OH YEA

Page 49: Ember At Scale

linkedin.com/m/Sorry, for the “Please Download The App” interim :(

Page 50: Ember At Scale

THANKS

@chadhietala