SlideShare a Scribd company logo
1 of 64
Download to read offline
Insert company logo
UX/Frontend
Web Performance
Die effektivsten Techniken aus der Praxis
Erik Witt
Erik Witt 30.09.2016
Presentation
is loading
Average: 9,3s
Loading…
Why performance matters
Average: 9,3s
Loading…
-1% Revenue
100 ms
Why performance matters
Average: 9,3s
Loading…
-1% Revenue
-9% Visitors
400 ms
Why performance matters
Average: 9,3s
Loading…
-1% Revenue
-9% Visitors
500 ms
-20% Traffic
Why performance matters
Average: 9,3s
Loading…
-1% Revenue
-9% Visitors
-20% Traffic
1s
-7% Conversions
Why performance matters
What should be the goal?
Delay User Perception
0 – 100 ms Instant
100 – 300 ms Small perceptible delay
300 – 1000 ms Machine is working
1+ s Mental context switch
10+ s Taks is abandoned
Stay under 1000 ms to
keep users attention
I. Grigorik, High performance browser networking.
O’Reilly Media, 2013.
Concrete Example
A scalable webshop
at
Expectations:
• 2.7 Million Viewers
• 300.000 Visitors in
30 minutes
• 20.000 Requests
per second
If performance is so important for
Business Success
...what causes slow page load times?
State of the Art
The tree bottlenecks
Network
Backend
Frontend
CSS
Render Tree
Layout
Frontend Performance
The critical rendering path
Paint
Network
JavaScript
CSSOM
DOM
<!doctype html>
<title>Code Talks</title>
<link href=all.css rel=stylesheet />
<script src=app.css ></script>
<div>
<h1>Web Performance</h1>
</div>
div { color: green; }
h1 { padding: 10px; }
<script>
elem.style.width = "50px";
document.write("JS is awesome!");
</script>
HTML DOM
Execution
Frontend Performance
Render and parser blocking
Google Developers, Web Fundamentals
https://developers.google.com/web/fundamentals/performance/critical-rendering-path/analyzing-crp
What to do:
• Inline critical CSS and JS above the fold
• CSS at the top, JS at the bottom
• Load non-critical CSS and JS
asynchronously
• Rendering the page progressively
• Minify, concatenate, compress and
cache CSS, JS and images
Frontend Performance
Tools to improve your page load
PageSpeed Insights
Profiling Minification & Compression
Inlining & Optimization
Google Closure
UglifyJs & cssmin
processhtml
Frontend Performance
Applied in the example
processhtml
Caching
565,9 KB
Size:
767 ms
Load time:
24
Requests:
Network Performance
Break down of a single resource load
DNS Lookup
• Every domain has its own DNS lookup
Initial connection
• TCP makes a three way handshake  2
roundtrips (1 with the new TCP Fast
Open)
• SSL connections have a more complex
handshake  +2 roundtrips (only 1 with
TLS False Start or Session Resumption)
Time to First Byte
• Depends heavily on the distance between client and
the backend
• Includes the time the backend needs to render the
page
 Session lookups, Database Queries, Template
rendering …
Content Download
• Files have a high transfer time on new connections,
since the initial congestion window is small  many
roundtrips
Maximum 6 parallel connections
DNS Lookup Initial Connection
SSL Handshake
Time to First Byte Content Download
https://www.thinks.com/
20 ms0 53 ms 70 ms 90 ms36 ms
Network Performance
The average website
http://httparchive.org/
Transfer Size: 2480 KB
Total Requests: 104
I. Grigorik, High performance browser networking.
O’Reilly Media, 2013.
Network Performance
Network latency impact
Network Performance
Network latency impact
I. Grigorik, High performance browser networking.
O’Reilly Media, 2013.
2× Bandwidth = Same Load Time
½ Latency ≈ ½ Load Time
Network Performance
Common Tuning Knobs
• Persistent connections, if possible HTTP/2
• Avoid redirects
• Explicit caching headers (no heuristic caching)
• Content Delivery Networks
• To reduce the distance between client and server
• To cache images, CSS, JS
• To terminate SSL early and optimized
• Single Page Apps:
• Small initial page that loads additional parts asynchronously
• Cacheable HTML templates + load dynamic data
• Only update sections of the page during navigation
HTTP/2 Performance
Advantages:
• Server Push
• Header Compression
• Request Pipelining
• Multiplexing over 1 TCP
connection (no head-of-line
blocking)
Network Performance
Applied in the example
What we do:
• Heavy browser and CDN Caching
• Avoid Redirects (+ serve from CDN)
• Single Page App functionality
• Persistent Backend Connections
• Gzip Compression
• IP Anycasting to nearest POP
Backend Performance
Overview
• Horizontally scalable
databases (e.g. “NoSQL”)
• Replication
• Sharding
• Failover
Load Balancer Application Server Database
• Load Balancing
• Auto-scaling
• Failover
• Stateless session handling
• Minimize shared state
• Efficient Code & IO
Load Balancer Application Server Database
Content-Delivery-
Network
Polyglot Storage
Backend Performance
Applied in the example
Content-Delivery-
Network
Backend-as-a-Service Middleware:
Caching, Transactions, Schemas,
Invalidation Detection, …
Backend Performance
Applied in the example
Content-Delivery-
Network
Standard HTTP Caching
Backend Performance
Applied in the example
Content-Delivery-
Network
Unified REST API
Backend Performance
Applied in the example
Baqend Architecture
Infrastructure
Content-Delivery-
Network
IaaS-Cloud
on
CDN
on
Performance: State of the Art
Summarized
Frontend Latency Backend
• Doable with the right
set of best practices
• Good support
through build tools
• Caching and CDNs
help, but a
considerable effort
and only for static
content
• Many frameworks
and platforms
• Horizontal scalability
is very difficult
Performance: State of the Art
Summarized
Frontend Latency
Backend
• Easy with the right
set of best practices
• Good support
through build tools
• Caching and CDNs
help, but large effort
and only for static
content
• Many frameworks
and platforms
• Horizontal scalability
is very difficult
Good Resources:
Good Tools:
https://developers.google.com/web/fundamentals/performance/?hl=en
https://www.udacity.com/course/website-performance-optimization--ud884chimera.labs.oreilly.com/
books/1230000000545
shop.oreilly.com/produc
t/0636920033578.do
https://developers.google.com/speed/
pagespeed/
https://gtmetrix.com http://www.webpagetest.org/
Accelerated Mobile Pages
Google‘s Approach for a Faster Web
How AMP works:
• Stripped down HTML + AMP tags
 rendered asynchronously by AMP runtime
• All CSS must be inlined
• All JS must be async
• Static sizes (e.g. iframes)  no repaints
• Cached in Google CDN, as long as it is crawled
the next time (no invalidation)
 only suited for static media, e.g. news
How to apply the same
techniques for any website?
https://www.ampproject.org
/docs/reference/spec.html
Goal: Low-Latency for Dynamic Content
By Serving Data from Ubiquitous Web Caches
Low Latency
Less Processing
6 Years
Research & Development
New Algorithms
Solve Consistency Problem
Innovation
Problem: changes cause stale data
6 Years
Research & Development
New Algorithms
Solve Consistency Problem
Innovation
Problem: changes cause stale data
6 Years
Research & Development
New Algorithms
Solve Consistency Problem
Stale
Data
Innovation
Problem: changes cause stale data
Innovation
Solution: Baqend proactively revalidates data
Bloom filter
updateIs still fresh? 1 0 11 0 0 10 1 1
6 Years
Research & Development
New Algorithms
Solve Consistency Problem
Innovation
Solution: Baqend proactively revalidates data
Bloom filter
updateIs still fresh? 1 0 11 0 0 10 1 1
6 Years
Research & Development
New Algorithms
Solve Consistency Problem
<
F. Gessert, F. Bücklers, und N. Ritter, „ORESTES: a Scalable Database-as-a-Service
Architecture for Low Latency“, in CloudDB 2014, 2014.
F. Gessert und F. Bücklers, „ORESTES: ein System für horizontal skalierbaren Zugriff auf
Cloud-Datenbanken“, in Informatiktage 2013, 2013.
F. Gessert, S. Friedrich, W. Wingerath, M. Schaarschmidt, und N. Ritter,
„Towards a Scalable and Unified REST API for Cloud Data Stores“, in 44.
Jahrestagung der GI, Bd. 232, S. 723–734.
F. Gessert, M. Schaarschmidt, W. Wingerath, S. Friedrich, und N. Ritter, „The
Cache Sketch: Revisiting Expiration-based Caching in the Age of Cloud Data
Management“, in BTW 2015.
F. Gessert und F. Bücklers, Performanz- und Reaktivitätssteigerung von OODBMS
vermittels der Web-Caching-Hierarchie. Bachelorarbeit, 2010.
F. Gessert und F. Bücklers, Kohärentes Web-Caching von Datenbankobjekten im
Cloud Computing. Masterarbeit 2012.
W. Wingerath, S. Friedrich, und F. Gessert, „Who Watches the Watchmen? On
the Lack of Validation in NoSQL Benchmarking“, in BTW 2015.
M. Schaarschmidt, F. Gessert, und N. Ritter, „Towards Automated Polyglot
Persistence“, in BTW 2015.
S. Friedrich, W. Wingerath, F. Gessert, und N. Ritter, „NoSQL OLTP Benchmarking: A
Survey“, in 44. Jahrestagung der Gesellschaft für Informatik, 2014, Bd. 232, S. 693–
704.
F. Gessert, „Skalierbare NoSQL- und Cloud-Datenbanken in Forschung und
Praxis“, BTW 2015
F. Gessert, N. Ritter „Scalable Data Management: NoSQL Data Stores in
Research and Practice“, 32nd IEEE International Conference on Data
Engineering, ICDE, 2016
W. Wingerath, F. Gessert, S. Friedrich, N. Ritter „Real-time stream processing for Big
Data“, Big Data Analytics it - Information Technology, 2016
F. Gessert, W. Wingerath, S. Friedrich, N. Ritter “NoSQL Database Systems: A Survey
and Decision Guidance”, Computer Science - Research and Development, 2016
F. Gessert, N. Ritter „Polyglot Persistence“, Datenbank Spektrum, 2016.
1 4 020
Browser
Cache
CDN
• Clients load the Cache Sketch at connection
• Every non-stale cached record can be reused
without degraded consistency
Faster Page Loads1
1 4 020
Browser
Cache
CDN
• Clients load the Cache Sketch at connection
• Every non-stale cached record can be reused
without degraded consistency
Faster Page Loads1
1 4 020
Browser
Cache
CDN
• Clients load the Cache Sketch at connection
• Every non-stale cached record can be reused
without degraded consistency
Faster Page Loads1
1 4 020
Browser
Cache
CDN
• Clients load the Cache Sketch at connection
• Every non-stale cached record can be reused
without degraded consistency
Faster Page Loads1
1 4 020
purge(obj)
hashB(oid)hashA(oid)
3
Browser
Cache
CDN
1
• Clients load the Cache Sketch at connection
• Every non-stale cached record can be reused
without degraded consistency
Faster Page Loads1
1 4 020 31 1 110
Flat(Counting Bloomfilter)
Browser
Cache
CDN
1
• Clients load the Cache Sketch at connection
• Every non-stale cached record can be reused
without degraded consistency
Faster Page Loads1
1 4 020 31 1 110
hashB(oid)hashA(oid)
Browser
Cache
CDN
1
• Clients load the Cache Sketch at connection
• Every non-stale cached record can be reused
without degraded consistency
Faster Page Loads1
1 4 020 31 1 110
hashB(oid)hashA(oid)
Browser
Cache
CDN
1
• Clients load the Cache Sketch at connection
• Every non-stale cached record can be reused
without degraded consistency
Faster Page Loads1
1 4 020 31 1 110
Browser
Cache
CDN
1
• Clients load the Cache Sketch at connection
• Every non-stale cached record can be reused
without degraded consistency
Faster Page Loads1
1 4 020
hashB(oid)hashA(oid)
1 1 110
Browser
Cache
CDN
• Clients load the Cache Sketch at connection
• Every non-stale cached record can be reused
without degraded consistency
Faster Page Loads1
1 4 020
hashB(oid)hashA(oid)
1 1 110
Browser
Cache
CDN
• Clients load the Cache Sketch at connection
• Every non-stale cached record can be reused
without degraded consistency
Faster Page Loads1
𝑓 ≈ 1 − 𝑒−
𝑘𝑛
𝑚
𝑘
𝑘 = ln 2 ⋅ (
𝑛
𝑚
)
False-Positive
Rate:
Hash-
Functions:
With 20.000 distinct updates and 5% error rate: 11 KByte
1 4 020
hashB(oid)hashA(oid)
1 1 110
Browser
Cache
CDN
• Clients load the Cache Sketch at connection
• Every non-stale cached record can be reused
without degraded consistency
Faster Page Loads1
Continuous Query Matching
Generalizing the Cache Sketch to query results
Main challenge: when to invalidate?
◦ Objects: for every update and delete
◦ Queries: as soon as the query result changes
How to detect query result
changes in real-time?
2
Query Caching
Example
 Add, Change, Remove all entail an invalidation and
addition to the cache sketch
SELECT * FROM posts
WHERE tags CONTAINS 'b'
Query Predicate P
Cached Query Result Q
𝑜𝑏𝑗1 ∈ 𝐐
𝑜𝑏𝑗2 ∈ 𝐐
Change
Add
Remove
2
InvaliDB
Architecture
BAQEND
Create
Update
Delete
Pub-Sub Pub-Sub
1 0 11 0 0 10 1 1
Fresh Cache Sketch
Continuous
Queries
(Websockets)
Fresh Caches
Polyglot Views
Felix Gessert, Michael Schaarschmidt, Wolfram Wingerath, Steffen Friedrich, Norbert Ritter:
Quaestor: Scalable and Fresh Query Caching on the Web's Infrastructure. Under Submission.
2
Scalable ACID Transcations
• Solution: Conflict-Avoidant Optimistic Transactions
• Cache Sketch fetched with transaction begin
• Cached reads → Shorter transaction duration → less aborts
3
Cache
Cache
Cache
REST-Server
REST-Server
REST-Server
DB
Coordinator
Client
Begin Transaction
Bloom Filter
1
validation 4
5Writes (Public)
Read all
prevent conflicting
validations
Committed OR aborted + stale objects
Commit: readset versions & writeset
3
Reads
2
Scalable ACID Transcations
• Novelty: ACID transactions on sharded DBs like MongoDB
• Current Work: DESY and dCache building a scalable namespace
for their file system on this
3
With Caching
Without
Caching
BaqendParse Kinvey
0.3 s2.6 s 3.9 s
Competitive Advantage
What impact does Baqend have in practice?
Competitive Advantage
What impact does Baqend have in practice?
Competitive Advantage
What impact does Baqend have in practice?
0,7s
1,8s
2,8s
3,6s
3,4s
CALIFORNIA
0,5s
1,8s
2,9s
1,5s
1,3s
FRANKFURT
0,6s
3,0s
7,2s
5,0s
5,7s
SYDNEY
0,5s
2,4s
4,0s
5,7s
4,7s
TOKYO
Competitive Advantage
What impact does Baqend have in practice?
0,7s
1,8s
2,8s
3,6s
3,4s
CALIFORNIA
0,5s
1,8s
2,9s
1,5s
1,3s
FRANKFURT
0,6s
3,0s
7,2s
5,0s
5,7s
SYDNEY
0,5s
2,4s
4,0s
5,7s
4,7s
TOKYO
+156%
0,5s
1,3s
FRANKFURT
Summary
0 1 0 0 1
0 1 0 1 1
1 1 0 0 0
0 0 0 1 1
HTTP
Caching
Cache Sketch TTL
Estimation
RT Query
Matching
Invali-dations
Frontend
Shop
Simultaneous
Users
< 1 second
Page Load
Time
7.8%
Conversion
Rate
3%
Server
Usage
Ziel mit InnoRampUpOur Vision for Baqend:
„A web without load times“
www.baqend.com
@Baqendcom

More Related Content

What's hot

Data Modeling Basics for the Cloud with DataStax
Data Modeling Basics for the Cloud with DataStaxData Modeling Basics for the Cloud with DataStax
Data Modeling Basics for the Cloud with DataStaxDataStax
 
How Thermo Fisher is Reducing Data Analysis Times from Days to Minutes with M...
How Thermo Fisher is Reducing Data Analysis Times from Days to Minutes with M...How Thermo Fisher is Reducing Data Analysis Times from Days to Minutes with M...
How Thermo Fisher is Reducing Data Analysis Times from Days to Minutes with M...MongoDB
 
Data Analytics and Processing at Snap - Druid Meetup LA - September 2018
Data Analytics and Processing at Snap - Druid Meetup LA - September 2018Data Analytics and Processing at Snap - Druid Meetup LA - September 2018
Data Analytics and Processing at Snap - Druid Meetup LA - September 2018Charles Allen
 
NoSQL on MySQL - MySQL Document Store by Vadim Tkachenko
NoSQL on MySQL - MySQL Document Store by Vadim TkachenkoNoSQL on MySQL - MySQL Document Store by Vadim Tkachenko
NoSQL on MySQL - MySQL Document Store by Vadim TkachenkoData Con LA
 
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...DataStax
 
MongoDB .local Bengaluru 2019: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local Bengaluru 2019: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local Bengaluru 2019: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local Bengaluru 2019: MongoDB Atlas Data Lake Technical Deep DiveMongoDB
 
NoSQL and MongoDB Introdction
NoSQL and MongoDB IntrodctionNoSQL and MongoDB Introdction
NoSQL and MongoDB IntrodctionBrian Enochson
 
Private Cloud Self-Service at Scale
Private Cloud Self-Service at Scale Private Cloud Self-Service at Scale
Private Cloud Self-Service at Scale MongoDB
 
Migrating from MySQL to MongoDB at Wordnik
Migrating from MySQL to MongoDB at WordnikMigrating from MySQL to MongoDB at Wordnik
Migrating from MySQL to MongoDB at WordnikTony Tam
 
Webinar: Choosing the Right Shard Key for High Performance and Scale
Webinar: Choosing the Right Shard Key for High Performance and ScaleWebinar: Choosing the Right Shard Key for High Performance and Scale
Webinar: Choosing the Right Shard Key for High Performance and ScaleMongoDB
 
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...MongoDB
 
Going native with Apache Cassandra
Going native with Apache CassandraGoing native with Apache Cassandra
Going native with Apache CassandraJohnny Miller
 
Querying NoSQL with SQL: HAVING Your JSON Cake and SELECTing it too
Querying NoSQL with SQL: HAVING Your JSON Cake and SELECTing it tooQuerying NoSQL with SQL: HAVING Your JSON Cake and SELECTing it too
Querying NoSQL with SQL: HAVING Your JSON Cake and SELECTing it tooAll Things Open
 
Unifying Events and Logs into the Cloud
Unifying Events and Logs into the CloudUnifying Events and Logs into the Cloud
Unifying Events and Logs into the CloudEduardo Silva Pereira
 
Meetup Google BigQuery powered by ai
Meetup Google BigQuery powered by aiMeetup Google BigQuery powered by ai
Meetup Google BigQuery powered by aiIdo Volff
 
Building a Real-Time Gaming Analytics Service with Apache Druid
Building a Real-Time Gaming Analytics Service with Apache DruidBuilding a Real-Time Gaming Analytics Service with Apache Druid
Building a Real-Time Gaming Analytics Service with Apache DruidImply
 
Data Platform in the Cloud
Data Platform in the CloudData Platform in the Cloud
Data Platform in the CloudAmihay Zer-Kavod
 

What's hot (20)

Data Modeling Basics for the Cloud with DataStax
Data Modeling Basics for the Cloud with DataStaxData Modeling Basics for the Cloud with DataStax
Data Modeling Basics for the Cloud with DataStax
 
How Thermo Fisher is Reducing Data Analysis Times from Days to Minutes with M...
How Thermo Fisher is Reducing Data Analysis Times from Days to Minutes with M...How Thermo Fisher is Reducing Data Analysis Times from Days to Minutes with M...
How Thermo Fisher is Reducing Data Analysis Times from Days to Minutes with M...
 
Data Analytics and Processing at Snap - Druid Meetup LA - September 2018
Data Analytics and Processing at Snap - Druid Meetup LA - September 2018Data Analytics and Processing at Snap - Druid Meetup LA - September 2018
Data Analytics and Processing at Snap - Druid Meetup LA - September 2018
 
Cassandra 2.0 (Introduction)
Cassandra 2.0 (Introduction)Cassandra 2.0 (Introduction)
Cassandra 2.0 (Introduction)
 
NoSQL on MySQL - MySQL Document Store by Vadim Tkachenko
NoSQL on MySQL - MySQL Document Store by Vadim TkachenkoNoSQL on MySQL - MySQL Document Store by Vadim Tkachenko
NoSQL on MySQL - MySQL Document Store by Vadim Tkachenko
 
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
 
MongoDB .local Bengaluru 2019: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local Bengaluru 2019: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local Bengaluru 2019: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local Bengaluru 2019: MongoDB Atlas Data Lake Technical Deep Dive
 
NoSQL and MongoDB Introdction
NoSQL and MongoDB IntrodctionNoSQL and MongoDB Introdction
NoSQL and MongoDB Introdction
 
NOSQL in the Cloud
NOSQL in the CloudNOSQL in the Cloud
NOSQL in the Cloud
 
Private Cloud Self-Service at Scale
Private Cloud Self-Service at Scale Private Cloud Self-Service at Scale
Private Cloud Self-Service at Scale
 
Migrating from MySQL to MongoDB at Wordnik
Migrating from MySQL to MongoDB at WordnikMigrating from MySQL to MongoDB at Wordnik
Migrating from MySQL to MongoDB at Wordnik
 
Webinar: Choosing the Right Shard Key for High Performance and Scale
Webinar: Choosing the Right Shard Key for High Performance and ScaleWebinar: Choosing the Right Shard Key for High Performance and Scale
Webinar: Choosing the Right Shard Key for High Performance and Scale
 
MongoDB on Azure
MongoDB on AzureMongoDB on Azure
MongoDB on Azure
 
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...
 
Going native with Apache Cassandra
Going native with Apache CassandraGoing native with Apache Cassandra
Going native with Apache Cassandra
 
Querying NoSQL with SQL: HAVING Your JSON Cake and SELECTing it too
Querying NoSQL with SQL: HAVING Your JSON Cake and SELECTing it tooQuerying NoSQL with SQL: HAVING Your JSON Cake and SELECTing it too
Querying NoSQL with SQL: HAVING Your JSON Cake and SELECTing it too
 
Unifying Events and Logs into the Cloud
Unifying Events and Logs into the CloudUnifying Events and Logs into the Cloud
Unifying Events and Logs into the Cloud
 
Meetup Google BigQuery powered by ai
Meetup Google BigQuery powered by aiMeetup Google BigQuery powered by ai
Meetup Google BigQuery powered by ai
 
Building a Real-Time Gaming Analytics Service with Apache Druid
Building a Real-Time Gaming Analytics Service with Apache DruidBuilding a Real-Time Gaming Analytics Service with Apache Druid
Building a Real-Time Gaming Analytics Service with Apache Druid
 
Data Platform in the Cloud
Data Platform in the CloudData Platform in the Cloud
Data Platform in the Cloud
 

Viewers also liked

Building an Angular 2 App
Building an Angular 2 AppBuilding an Angular 2 App
Building an Angular 2 AppFelix Gessert
 
Building a Global-Scale Multi-Tenant Cloud Platform on AWS and Docker: Lesson...
Building a Global-Scale Multi-Tenant Cloud Platform on AWS and Docker: Lesson...Building a Global-Scale Multi-Tenant Cloud Platform on AWS and Docker: Lesson...
Building a Global-Scale Multi-Tenant Cloud Platform on AWS and Docker: Lesson...Felix Gessert
 
Pitch auf den Hamburger IT-Strategietagen
Pitch auf den Hamburger IT-StrategietagenPitch auf den Hamburger IT-Strategietagen
Pitch auf den Hamburger IT-StrategietagenFelix Gessert
 
Clinton Gormley – Elasticsearch Query DSL – Not just for wizards…- NoSQL matt...
Clinton Gormley – Elasticsearch Query DSL – Not just for wizards…- NoSQL matt...Clinton Gormley – Elasticsearch Query DSL – Not just for wizards…- NoSQL matt...
Clinton Gormley – Elasticsearch Query DSL – Not just for wizards…- NoSQL matt...NoSQLmatters
 
Trusted Analytics as a Service (BDT209) | AWS re:Invent 2013
Trusted Analytics as a Service (BDT209) | AWS re:Invent 2013Trusted Analytics as a Service (BDT209) | AWS re:Invent 2013
Trusted Analytics as a Service (BDT209) | AWS re:Invent 2013Amazon Web Services
 
Enabling Innovative Business Opportunities Through Secure Cloud Adoption - Se...
Enabling Innovative Business Opportunities Through Secure Cloud Adoption - Se...Enabling Innovative Business Opportunities Through Secure Cloud Adoption - Se...
Enabling Innovative Business Opportunities Through Secure Cloud Adoption - Se...Amazon Web Services
 
Evaluating lessons
Evaluating lessons  Evaluating lessons
Evaluating lessons mehro08
 
Apache Hadoop YARN, NameNode HA, HDFS Federation
Apache Hadoop YARN, NameNode HA, HDFS FederationApache Hadoop YARN, NameNode HA, HDFS Federation
Apache Hadoop YARN, NameNode HA, HDFS FederationAdam Kawa
 

Viewers also liked (10)

Building an Angular 2 App
Building an Angular 2 AppBuilding an Angular 2 App
Building an Angular 2 App
 
Building a Global-Scale Multi-Tenant Cloud Platform on AWS and Docker: Lesson...
Building a Global-Scale Multi-Tenant Cloud Platform on AWS and Docker: Lesson...Building a Global-Scale Multi-Tenant Cloud Platform on AWS and Docker: Lesson...
Building a Global-Scale Multi-Tenant Cloud Platform on AWS and Docker: Lesson...
 
Intro to Baqend
Intro to BaqendIntro to Baqend
Intro to Baqend
 
Pitch auf den Hamburger IT-Strategietagen
Pitch auf den Hamburger IT-StrategietagenPitch auf den Hamburger IT-Strategietagen
Pitch auf den Hamburger IT-Strategietagen
 
Clinton Gormley – Elasticsearch Query DSL – Not just for wizards…- NoSQL matt...
Clinton Gormley – Elasticsearch Query DSL – Not just for wizards…- NoSQL matt...Clinton Gormley – Elasticsearch Query DSL – Not just for wizards…- NoSQL matt...
Clinton Gormley – Elasticsearch Query DSL – Not just for wizards…- NoSQL matt...
 
Trusted Analytics as a Service (BDT209) | AWS re:Invent 2013
Trusted Analytics as a Service (BDT209) | AWS re:Invent 2013Trusted Analytics as a Service (BDT209) | AWS re:Invent 2013
Trusted Analytics as a Service (BDT209) | AWS re:Invent 2013
 
Cloud-Powered Social Gaming
Cloud-Powered Social GamingCloud-Powered Social Gaming
Cloud-Powered Social Gaming
 
Enabling Innovative Business Opportunities Through Secure Cloud Adoption - Se...
Enabling Innovative Business Opportunities Through Secure Cloud Adoption - Se...Enabling Innovative Business Opportunities Through Secure Cloud Adoption - Se...
Enabling Innovative Business Opportunities Through Secure Cloud Adoption - Se...
 
Evaluating lessons
Evaluating lessons  Evaluating lessons
Evaluating lessons
 
Apache Hadoop YARN, NameNode HA, HDFS Federation
Apache Hadoop YARN, NameNode HA, HDFS FederationApache Hadoop YARN, NameNode HA, HDFS Federation
Apache Hadoop YARN, NameNode HA, HDFS Federation
 

Similar to Web Performance – die effektivsten Techniken aus der Praxis

VoltDB and HPE Vertica Present: Building an IoT Architecture for Fast + Big Data
VoltDB and HPE Vertica Present: Building an IoT Architecture for Fast + Big DataVoltDB and HPE Vertica Present: Building an IoT Architecture for Fast + Big Data
VoltDB and HPE Vertica Present: Building an IoT Architecture for Fast + Big DataVoltDB
 
Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...
Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...
Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...DataStax
 
Creating a Modern Data Architecture for Digital Transformation
Creating a Modern Data Architecture for Digital TransformationCreating a Modern Data Architecture for Digital Transformation
Creating a Modern Data Architecture for Digital TransformationMongoDB
 
AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...
AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...
AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...Amazon Web Services
 
High-performance database technology for rock-solid IoT solutions
High-performance database technology for rock-solid IoT solutionsHigh-performance database technology for rock-solid IoT solutions
High-performance database technology for rock-solid IoT solutionsClusterpoint
 
NGINX for Application Delivery & Acceleration
NGINX for Application Delivery & AccelerationNGINX for Application Delivery & Acceleration
NGINX for Application Delivery & AccelerationNGINX, Inc.
 
DEVNET-1140 InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
DEVNET-1140	InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...DEVNET-1140	InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
DEVNET-1140 InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...Cisco DevNet
 
Cloud Experience: Data-driven Applications Made Simple and Fast
Cloud Experience: Data-driven Applications Made Simple and FastCloud Experience: Data-driven Applications Made Simple and Fast
Cloud Experience: Data-driven Applications Made Simple and FastDatabricks
 
So Long Computer Overlords
So Long Computer OverlordsSo Long Computer Overlords
So Long Computer OverlordsIan Foster
 
Five ways database modernization simplifies your data life
Five ways database modernization simplifies your data lifeFive ways database modernization simplifies your data life
Five ways database modernization simplifies your data lifeSingleStore
 
Rpi talk foster september 2011
Rpi talk foster september 2011Rpi talk foster september 2011
Rpi talk foster september 2011Ian Foster
 
Delivering High Performance Websites with NGINX
Delivering High Performance Websites with NGINXDelivering High Performance Websites with NGINX
Delivering High Performance Websites with NGINXNGINX, Inc.
 
Data Virtualization: An Introduction
Data Virtualization: An IntroductionData Virtualization: An Introduction
Data Virtualization: An IntroductionDenodo
 
Data Streaming with Apache Kafka & MongoDB - EMEA
Data Streaming with Apache Kafka & MongoDB - EMEAData Streaming with Apache Kafka & MongoDB - EMEA
Data Streaming with Apache Kafka & MongoDB - EMEAAndrew Morgan
 
Webinar: Data Streaming with Apache Kafka & MongoDB
Webinar: Data Streaming with Apache Kafka & MongoDBWebinar: Data Streaming with Apache Kafka & MongoDB
Webinar: Data Streaming with Apache Kafka & MongoDBMongoDB
 
MongoDB Days Silicon Valley: Jumpstart: The Right and Wrong Use Cases for Mon...
MongoDB Days Silicon Valley: Jumpstart: The Right and Wrong Use Cases for Mon...MongoDB Days Silicon Valley: Jumpstart: The Right and Wrong Use Cases for Mon...
MongoDB Days Silicon Valley: Jumpstart: The Right and Wrong Use Cases for Mon...MongoDB
 
MongoDB Breakfast Milan - Mainframe Offloading Strategies
MongoDB Breakfast Milan -  Mainframe Offloading StrategiesMongoDB Breakfast Milan -  Mainframe Offloading Strategies
MongoDB Breakfast Milan - Mainframe Offloading StrategiesMongoDB
 
Introduction to Stream Processing
Introduction to Stream ProcessingIntroduction to Stream Processing
Introduction to Stream ProcessingGuido Schmutz
 
Streaming Visualization
Streaming VisualizationStreaming Visualization
Streaming VisualizationGuido Schmutz
 

Similar to Web Performance – die effektivsten Techniken aus der Praxis (20)

VoltDB and HPE Vertica Present: Building an IoT Architecture for Fast + Big Data
VoltDB and HPE Vertica Present: Building an IoT Architecture for Fast + Big DataVoltDB and HPE Vertica Present: Building an IoT Architecture for Fast + Big Data
VoltDB and HPE Vertica Present: Building an IoT Architecture for Fast + Big Data
 
Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...
Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...
Webinar: ROI on Big Data - RDBMS, NoSQL or Both? A Simple Guide for Knowing H...
 
Creating a Modern Data Architecture for Digital Transformation
Creating a Modern Data Architecture for Digital TransformationCreating a Modern Data Architecture for Digital Transformation
Creating a Modern Data Architecture for Digital Transformation
 
AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...
AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...
AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...
 
High-performance database technology for rock-solid IoT solutions
High-performance database technology for rock-solid IoT solutionsHigh-performance database technology for rock-solid IoT solutions
High-performance database technology for rock-solid IoT solutions
 
NGINX for Application Delivery & Acceleration
NGINX for Application Delivery & AccelerationNGINX for Application Delivery & Acceleration
NGINX for Application Delivery & Acceleration
 
DEVNET-1140 InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
DEVNET-1140	InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...DEVNET-1140	InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
DEVNET-1140 InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
 
Cloud Experience: Data-driven Applications Made Simple and Fast
Cloud Experience: Data-driven Applications Made Simple and FastCloud Experience: Data-driven Applications Made Simple and Fast
Cloud Experience: Data-driven Applications Made Simple and Fast
 
So Long Computer Overlords
So Long Computer OverlordsSo Long Computer Overlords
So Long Computer Overlords
 
Five ways database modernization simplifies your data life
Five ways database modernization simplifies your data lifeFive ways database modernization simplifies your data life
Five ways database modernization simplifies your data life
 
Rpi talk foster september 2011
Rpi talk foster september 2011Rpi talk foster september 2011
Rpi talk foster september 2011
 
Delivering High Performance Websites with NGINX
Delivering High Performance Websites with NGINXDelivering High Performance Websites with NGINX
Delivering High Performance Websites with NGINX
 
Data Virtualization: An Introduction
Data Virtualization: An IntroductionData Virtualization: An Introduction
Data Virtualization: An Introduction
 
Data Streaming with Apache Kafka & MongoDB - EMEA
Data Streaming with Apache Kafka & MongoDB - EMEAData Streaming with Apache Kafka & MongoDB - EMEA
Data Streaming with Apache Kafka & MongoDB - EMEA
 
Webinar: Data Streaming with Apache Kafka & MongoDB
Webinar: Data Streaming with Apache Kafka & MongoDBWebinar: Data Streaming with Apache Kafka & MongoDB
Webinar: Data Streaming with Apache Kafka & MongoDB
 
MongoDB Days Silicon Valley: Jumpstart: The Right and Wrong Use Cases for Mon...
MongoDB Days Silicon Valley: Jumpstart: The Right and Wrong Use Cases for Mon...MongoDB Days Silicon Valley: Jumpstart: The Right and Wrong Use Cases for Mon...
MongoDB Days Silicon Valley: Jumpstart: The Right and Wrong Use Cases for Mon...
 
MongoDB Breakfast Milan - Mainframe Offloading Strategies
MongoDB Breakfast Milan -  Mainframe Offloading StrategiesMongoDB Breakfast Milan -  Mainframe Offloading Strategies
MongoDB Breakfast Milan - Mainframe Offloading Strategies
 
Introduction to Stream Processing
Introduction to Stream ProcessingIntroduction to Stream Processing
Introduction to Stream Processing
 
Shikha fdp 62_14july2017
Shikha fdp 62_14july2017Shikha fdp 62_14july2017
Shikha fdp 62_14july2017
 
Streaming Visualization
Streaming VisualizationStreaming Visualization
Streaming Visualization
 

Recently uploaded

Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 

Recently uploaded (20)

Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 

Web Performance – die effektivsten Techniken aus der Praxis

  • 1. Insert company logo UX/Frontend Web Performance Die effektivsten Techniken aus der Praxis Erik Witt Erik Witt 30.09.2016
  • 4. Average: 9,3s Loading… -1% Revenue 100 ms Why performance matters
  • 5. Average: 9,3s Loading… -1% Revenue -9% Visitors 400 ms Why performance matters
  • 6. Average: 9,3s Loading… -1% Revenue -9% Visitors 500 ms -20% Traffic Why performance matters
  • 7. Average: 9,3s Loading… -1% Revenue -9% Visitors -20% Traffic 1s -7% Conversions Why performance matters
  • 8. What should be the goal? Delay User Perception 0 – 100 ms Instant 100 – 300 ms Small perceptible delay 300 – 1000 ms Machine is working 1+ s Mental context switch 10+ s Taks is abandoned Stay under 1000 ms to keep users attention I. Grigorik, High performance browser networking. O’Reilly Media, 2013.
  • 9.
  • 10. Concrete Example A scalable webshop at Expectations: • 2.7 Million Viewers • 300.000 Visitors in 30 minutes • 20.000 Requests per second
  • 11. If performance is so important for Business Success ...what causes slow page load times?
  • 12. State of the Art The tree bottlenecks Network Backend Frontend
  • 13. CSS Render Tree Layout Frontend Performance The critical rendering path Paint Network JavaScript CSSOM DOM <!doctype html> <title>Code Talks</title> <link href=all.css rel=stylesheet /> <script src=app.css ></script> <div> <h1>Web Performance</h1> </div> div { color: green; } h1 { padding: 10px; } <script> elem.style.width = "50px"; document.write("JS is awesome!"); </script> HTML DOM Execution
  • 14. Frontend Performance Render and parser blocking Google Developers, Web Fundamentals https://developers.google.com/web/fundamentals/performance/critical-rendering-path/analyzing-crp What to do: • Inline critical CSS and JS above the fold • CSS at the top, JS at the bottom • Load non-critical CSS and JS asynchronously • Rendering the page progressively • Minify, concatenate, compress and cache CSS, JS and images
  • 15. Frontend Performance Tools to improve your page load PageSpeed Insights Profiling Minification & Compression Inlining & Optimization Google Closure UglifyJs & cssmin processhtml
  • 16. Frontend Performance Applied in the example processhtml Caching 565,9 KB Size: 767 ms Load time: 24 Requests:
  • 17. Network Performance Break down of a single resource load DNS Lookup • Every domain has its own DNS lookup Initial connection • TCP makes a three way handshake  2 roundtrips (1 with the new TCP Fast Open) • SSL connections have a more complex handshake  +2 roundtrips (only 1 with TLS False Start or Session Resumption) Time to First Byte • Depends heavily on the distance between client and the backend • Includes the time the backend needs to render the page  Session lookups, Database Queries, Template rendering … Content Download • Files have a high transfer time on new connections, since the initial congestion window is small  many roundtrips Maximum 6 parallel connections DNS Lookup Initial Connection SSL Handshake Time to First Byte Content Download https://www.thinks.com/ 20 ms0 53 ms 70 ms 90 ms36 ms
  • 18. Network Performance The average website http://httparchive.org/ Transfer Size: 2480 KB Total Requests: 104
  • 19. I. Grigorik, High performance browser networking. O’Reilly Media, 2013. Network Performance Network latency impact
  • 20. Network Performance Network latency impact I. Grigorik, High performance browser networking. O’Reilly Media, 2013. 2× Bandwidth = Same Load Time ½ Latency ≈ ½ Load Time
  • 21. Network Performance Common Tuning Knobs • Persistent connections, if possible HTTP/2 • Avoid redirects • Explicit caching headers (no heuristic caching) • Content Delivery Networks • To reduce the distance between client and server • To cache images, CSS, JS • To terminate SSL early and optimized • Single Page Apps: • Small initial page that loads additional parts asynchronously • Cacheable HTML templates + load dynamic data • Only update sections of the page during navigation HTTP/2 Performance Advantages: • Server Push • Header Compression • Request Pipelining • Multiplexing over 1 TCP connection (no head-of-line blocking)
  • 22. Network Performance Applied in the example What we do: • Heavy browser and CDN Caching • Avoid Redirects (+ serve from CDN) • Single Page App functionality • Persistent Backend Connections • Gzip Compression • IP Anycasting to nearest POP
  • 23. Backend Performance Overview • Horizontally scalable databases (e.g. “NoSQL”) • Replication • Sharding • Failover Load Balancer Application Server Database • Load Balancing • Auto-scaling • Failover • Stateless session handling • Minimize shared state • Efficient Code & IO Load Balancer Application Server Database
  • 25. Content-Delivery- Network Backend-as-a-Service Middleware: Caching, Transactions, Schemas, Invalidation Detection, … Backend Performance Applied in the example
  • 26. Content-Delivery- Network Standard HTTP Caching Backend Performance Applied in the example
  • 27. Content-Delivery- Network Unified REST API Backend Performance Applied in the example
  • 29. Performance: State of the Art Summarized Frontend Latency Backend • Doable with the right set of best practices • Good support through build tools • Caching and CDNs help, but a considerable effort and only for static content • Many frameworks and platforms • Horizontal scalability is very difficult
  • 30. Performance: State of the Art Summarized Frontend Latency Backend • Easy with the right set of best practices • Good support through build tools • Caching and CDNs help, but large effort and only for static content • Many frameworks and platforms • Horizontal scalability is very difficult Good Resources: Good Tools: https://developers.google.com/web/fundamentals/performance/?hl=en https://www.udacity.com/course/website-performance-optimization--ud884chimera.labs.oreilly.com/ books/1230000000545 shop.oreilly.com/produc t/0636920033578.do https://developers.google.com/speed/ pagespeed/ https://gtmetrix.com http://www.webpagetest.org/
  • 31. Accelerated Mobile Pages Google‘s Approach for a Faster Web How AMP works: • Stripped down HTML + AMP tags  rendered asynchronously by AMP runtime • All CSS must be inlined • All JS must be async • Static sizes (e.g. iframes)  no repaints • Cached in Google CDN, as long as it is crawled the next time (no invalidation)  only suited for static media, e.g. news How to apply the same techniques for any website? https://www.ampproject.org /docs/reference/spec.html
  • 32. Goal: Low-Latency for Dynamic Content By Serving Data from Ubiquitous Web Caches Low Latency Less Processing
  • 33. 6 Years Research & Development New Algorithms Solve Consistency Problem Innovation Problem: changes cause stale data
  • 34. 6 Years Research & Development New Algorithms Solve Consistency Problem Innovation Problem: changes cause stale data
  • 35. 6 Years Research & Development New Algorithms Solve Consistency Problem Stale Data Innovation Problem: changes cause stale data
  • 36. Innovation Solution: Baqend proactively revalidates data Bloom filter updateIs still fresh? 1 0 11 0 0 10 1 1 6 Years Research & Development New Algorithms Solve Consistency Problem
  • 37. Innovation Solution: Baqend proactively revalidates data Bloom filter updateIs still fresh? 1 0 11 0 0 10 1 1 6 Years Research & Development New Algorithms Solve Consistency Problem < F. Gessert, F. Bücklers, und N. Ritter, „ORESTES: a Scalable Database-as-a-Service Architecture for Low Latency“, in CloudDB 2014, 2014. F. Gessert und F. Bücklers, „ORESTES: ein System für horizontal skalierbaren Zugriff auf Cloud-Datenbanken“, in Informatiktage 2013, 2013. F. Gessert, S. Friedrich, W. Wingerath, M. Schaarschmidt, und N. Ritter, „Towards a Scalable and Unified REST API for Cloud Data Stores“, in 44. Jahrestagung der GI, Bd. 232, S. 723–734. F. Gessert, M. Schaarschmidt, W. Wingerath, S. Friedrich, und N. Ritter, „The Cache Sketch: Revisiting Expiration-based Caching in the Age of Cloud Data Management“, in BTW 2015. F. Gessert und F. Bücklers, Performanz- und Reaktivitätssteigerung von OODBMS vermittels der Web-Caching-Hierarchie. Bachelorarbeit, 2010. F. Gessert und F. Bücklers, Kohärentes Web-Caching von Datenbankobjekten im Cloud Computing. Masterarbeit 2012. W. Wingerath, S. Friedrich, und F. Gessert, „Who Watches the Watchmen? On the Lack of Validation in NoSQL Benchmarking“, in BTW 2015. M. Schaarschmidt, F. Gessert, und N. Ritter, „Towards Automated Polyglot Persistence“, in BTW 2015. S. Friedrich, W. Wingerath, F. Gessert, und N. Ritter, „NoSQL OLTP Benchmarking: A Survey“, in 44. Jahrestagung der Gesellschaft für Informatik, 2014, Bd. 232, S. 693– 704. F. Gessert, „Skalierbare NoSQL- und Cloud-Datenbanken in Forschung und Praxis“, BTW 2015 F. Gessert, N. Ritter „Scalable Data Management: NoSQL Data Stores in Research and Practice“, 32nd IEEE International Conference on Data Engineering, ICDE, 2016 W. Wingerath, F. Gessert, S. Friedrich, N. Ritter „Real-time stream processing for Big Data“, Big Data Analytics it - Information Technology, 2016 F. Gessert, W. Wingerath, S. Friedrich, N. Ritter “NoSQL Database Systems: A Survey and Decision Guidance”, Computer Science - Research and Development, 2016 F. Gessert, N. Ritter „Polyglot Persistence“, Datenbank Spektrum, 2016.
  • 38. 1 4 020 Browser Cache CDN • Clients load the Cache Sketch at connection • Every non-stale cached record can be reused without degraded consistency Faster Page Loads1
  • 39. 1 4 020 Browser Cache CDN • Clients load the Cache Sketch at connection • Every non-stale cached record can be reused without degraded consistency Faster Page Loads1
  • 40. 1 4 020 Browser Cache CDN • Clients load the Cache Sketch at connection • Every non-stale cached record can be reused without degraded consistency Faster Page Loads1
  • 41. 1 4 020 Browser Cache CDN • Clients load the Cache Sketch at connection • Every non-stale cached record can be reused without degraded consistency Faster Page Loads1
  • 42. 1 4 020 purge(obj) hashB(oid)hashA(oid) 3 Browser Cache CDN 1 • Clients load the Cache Sketch at connection • Every non-stale cached record can be reused without degraded consistency Faster Page Loads1
  • 43. 1 4 020 31 1 110 Flat(Counting Bloomfilter) Browser Cache CDN 1 • Clients load the Cache Sketch at connection • Every non-stale cached record can be reused without degraded consistency Faster Page Loads1
  • 44. 1 4 020 31 1 110 hashB(oid)hashA(oid) Browser Cache CDN 1 • Clients load the Cache Sketch at connection • Every non-stale cached record can be reused without degraded consistency Faster Page Loads1
  • 45. 1 4 020 31 1 110 hashB(oid)hashA(oid) Browser Cache CDN 1 • Clients load the Cache Sketch at connection • Every non-stale cached record can be reused without degraded consistency Faster Page Loads1
  • 46. 1 4 020 31 1 110 Browser Cache CDN 1 • Clients load the Cache Sketch at connection • Every non-stale cached record can be reused without degraded consistency Faster Page Loads1
  • 47. 1 4 020 hashB(oid)hashA(oid) 1 1 110 Browser Cache CDN • Clients load the Cache Sketch at connection • Every non-stale cached record can be reused without degraded consistency Faster Page Loads1
  • 48. 1 4 020 hashB(oid)hashA(oid) 1 1 110 Browser Cache CDN • Clients load the Cache Sketch at connection • Every non-stale cached record can be reused without degraded consistency Faster Page Loads1 𝑓 ≈ 1 − 𝑒− 𝑘𝑛 𝑚 𝑘 𝑘 = ln 2 ⋅ ( 𝑛 𝑚 ) False-Positive Rate: Hash- Functions: With 20.000 distinct updates and 5% error rate: 11 KByte
  • 49. 1 4 020 hashB(oid)hashA(oid) 1 1 110 Browser Cache CDN • Clients load the Cache Sketch at connection • Every non-stale cached record can be reused without degraded consistency Faster Page Loads1
  • 50. Continuous Query Matching Generalizing the Cache Sketch to query results Main challenge: when to invalidate? ◦ Objects: for every update and delete ◦ Queries: as soon as the query result changes How to detect query result changes in real-time? 2
  • 51. Query Caching Example  Add, Change, Remove all entail an invalidation and addition to the cache sketch SELECT * FROM posts WHERE tags CONTAINS 'b' Query Predicate P Cached Query Result Q 𝑜𝑏𝑗1 ∈ 𝐐 𝑜𝑏𝑗2 ∈ 𝐐 Change Add Remove 2
  • 52. InvaliDB Architecture BAQEND Create Update Delete Pub-Sub Pub-Sub 1 0 11 0 0 10 1 1 Fresh Cache Sketch Continuous Queries (Websockets) Fresh Caches Polyglot Views Felix Gessert, Michael Schaarschmidt, Wolfram Wingerath, Steffen Friedrich, Norbert Ritter: Quaestor: Scalable and Fresh Query Caching on the Web's Infrastructure. Under Submission. 2
  • 53. Scalable ACID Transcations • Solution: Conflict-Avoidant Optimistic Transactions • Cache Sketch fetched with transaction begin • Cached reads → Shorter transaction duration → less aborts 3 Cache Cache Cache REST-Server REST-Server REST-Server DB Coordinator Client Begin Transaction Bloom Filter 1 validation 4 5Writes (Public) Read all prevent conflicting validations Committed OR aborted + stale objects Commit: readset versions & writeset 3 Reads 2
  • 54. Scalable ACID Transcations • Novelty: ACID transactions on sharded DBs like MongoDB • Current Work: DESY and dCache building a scalable namespace for their file system on this 3 With Caching Without Caching
  • 55.
  • 57. Competitive Advantage What impact does Baqend have in practice?
  • 58. Competitive Advantage What impact does Baqend have in practice?
  • 59. Competitive Advantage What impact does Baqend have in practice? 0,7s 1,8s 2,8s 3,6s 3,4s CALIFORNIA 0,5s 1,8s 2,9s 1,5s 1,3s FRANKFURT 0,6s 3,0s 7,2s 5,0s 5,7s SYDNEY 0,5s 2,4s 4,0s 5,7s 4,7s TOKYO
  • 60. Competitive Advantage What impact does Baqend have in practice? 0,7s 1,8s 2,8s 3,6s 3,4s CALIFORNIA 0,5s 1,8s 2,9s 1,5s 1,3s FRANKFURT 0,6s 3,0s 7,2s 5,0s 5,7s SYDNEY 0,5s 2,4s 4,0s 5,7s 4,7s TOKYO +156% 0,5s 1,3s FRANKFURT
  • 61. Summary 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 0 0 0 1 1 HTTP Caching Cache Sketch TTL Estimation RT Query Matching Invali-dations Frontend
  • 62.
  • 63. Shop Simultaneous Users < 1 second Page Load Time 7.8% Conversion Rate 3% Server Usage
  • 64. Ziel mit InnoRampUpOur Vision for Baqend: „A web without load times“ www.baqend.com @Baqendcom