EMBER AT SCALE
@chadhietala
THIS IS OUR STORY
2013
PRODUCT &
TECH BALANCE
WHAT YEAR IS IT?
“If it ain’t broken don’t fix it.”
- Someone not in the Javascript community
2014
SOFTWARE ROT
UNIFY & REDUCE
COMPLEXITY
CONSIDERATIONS
CENTRALIZED SUPPORT
LESS IS MORE
CHANGE IS THE CONSTANT
SOLVING PROBLEMS
INITIAL RENDER
BASE PAGE RENDERER
(BPR)
BIG PIPE
Server Server
STORE AND FORWARD CHUNKED ENCODING
NETWORK BOUNDARY
BPR
Such Web Scale
API Server
Ember App
Browser
Such Web Scale
API Server
Ember App
linkedin.com/profile/123
BPRAPI Server
Ember App
Browser
<!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 Server
Ember App
linkedin.com/profile/123
BPRAPI Server
Ember App
Browser
Such Web Scale
API Server
Ember App
linkedin.com/profile/123
BPRAPI Server
Ember App
Browser
appInstance.visit(‘/profile/123’)
Such Web Scale
API Server
Ember App
linkedin.com/profile/123
BPRAPI Server
Ember App
Browser
appInstance.visit(‘/profile/123’)
[‘/profile/123’, /config/123’]
npm install ember-prefetch
TRADITIONAL EMBER APP
WITH EMBER-PREFETCH
Such Web Scale
{ data: {…} }API Server
Ember App
linkedin.com/profile/123
BPRAPI Server
Ember App
Browser
appInstance.visit(‘/profile/123’)
<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 Server
Ember App
linkedin.com/profile/123
BPRAPI Server
Ember App
Browser
appInstance.visit(‘/profile/123’)
bit.ly/resource-discovery
ember fastboot --resource-discovery
SERVING THE APP
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
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
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
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
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
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
DEPLOYMENTS
V8
npm install chrome-tracing
OH YEA
linkedin.com/m/
Sorry, for the “Please Download The App” interim :(
THANKS
@chadhietala

Ember At Scale