27
Supercharge application delivery to satisfy users Owen Garrett Nginx, Inc.

Supercharge Application Delivery to Satisfy Users

Embed Size (px)

DESCRIPTION

Users expect websites and applications to be quick and reliable. A slow user experience can have a significant impact on your business. Join us for this webinar where we will show you a number of ways you can use NGINX and other tools and techniques to supercharge your application delivery, including: - Client Caching - Content Delivery Networks (CDN) - OCSP stapling - Dynamic Content Caching View full webinar on demand at http://bit.ly/nginxsupercharge

Citation preview

Page 1: Supercharge Application Delivery to Satisfy Users

Supercharge application delivery to satisfy users

Owen Garrett

Nginx, Inc.

Page 2: Supercharge Application Delivery to Satisfy Users

About this webinar

Users expect websites and web apps to be quick and reliable. Yet, the rapid pace of technology and the growing number of device types can present challenges for developers. The good news is that there are a number of tools and techniques you can use to supercharge application delivery to satisfy your users. Join this webinar to learn about the impact of slow application delivery on user experience and business. Then see ways that NGINX can help, including: Ways to improve application load times, how to absorb flash floods of web traffic, when and how to take advantage of load balancing, and more.

Page 3: Supercharge Application Delivery to Satisfy Users

Who are you? Who am I?

• Introductions and poll

• Please use the Q&A for questions and comments

Owen GarrettHead ofProductsNginx, Inc.

Who?What?Where?

Page 4: Supercharge Application Delivery to Satisfy Users

First steps at Application Delivery

• Igor Sysoev

• Systems Administrator at Rambler.ru

– Apache admin and module developer

• Addressing the ‘C10K’ problem

– Developed front-end accelerator

– NGINX 0.1.0, released October 4th 2004

Page 5: Supercharge Application Delivery to Satisfy Users

WEB PERFORMANCE MATTERS

Page 6: Supercharge Application Delivery to Satisfy Users

Your users are in chargeYou may own the content and features, but your users are the ones in charge

They alone decide:

If you can’t provide your users with what they need, when they need it, they will go elsewhere.

If you page has not loaded within 3 seconds, up to 40% of your users will give up on you.

Which sites they visit The apps they needThe performance

they’ll tolerateWhen to give up

Page 7: Supercharge Application Delivery to Satisfy Users

Every user counts…

• It does not matter how busy your site is…

– Flash Crowd

– HTTP Post Attack, Slow Read Attack

… they don’t know or care!

“We want you to be able to flick from one page to another as quickly as you can flick a page on a book. So we’re really aiming very, very high here… at something like 100 milliseconds.”

Urs Hölzle, Senior VP Operations, Google

Page 8: Supercharge Application Delivery to Satisfy Users

What can you do?

Page 9: Supercharge Application Delivery to Satisfy Users
Page 10: Supercharge Application Delivery to Satisfy Users

Internet

4 opportunities to optimize

PythonRubynode.jsJava

Client Device Network Application Stack Code

Page 11: Supercharge Application Delivery to Satisfy Users

Improve performance on Client Device

• Reduce HTTP GETs and bandwidth:– Merge and reduce resources

– Smart control of client caching

• Rearrange resources to speed up rendering

• Your options:– Preprocess in Asset Pipeline

– In-app (Google Pagespeed)

– As-a-Service

Page 12: Supercharge Application Delivery to Satisfy Users

Improve performance on the Network

• Faster resource downloads:– Content Delivery Network

– Google SPDY

– OCSP stapling

• Your options:– Use a CDN

– Use NGINX+

Page 13: Supercharge Application Delivery to Satisfy Users

Improve performance of the Application Stack

• What do we mean?

• The ‘Application Stack’ bridges HTTP traffic to your code, APIs and Static content

Internet

Your code:• Python, Ruby,

node.js, Java

APIs• Internal and

External APIs

“Static” Content• On disk• In database

HTTP

Page 14: Supercharge Application Delivery to Satisfy Users

Three steps to a faster application

Optimize HTTP processing

Cache common responses

Be smart with your traffic

Page 15: Supercharge Application Delivery to Satisfy Users

Hundreds of concurrent connections…

require hundreds of heavyweight threads or processes…

competing for limited CPU and memory

What is the challenge with HTTP?

Client-side:Slow networkMultiple connectionsHTTP Keepalives

Server-side:Limited concurrency

Page 16: Supercharge Application Delivery to Satisfy Users

Let’s see it in action…

SlowHTTPTestcode.google.com/p/slowhttptest/

WordPressStandard install with sample content

:80

Page 17: Supercharge Application Delivery to Satisfy Users

Hundreds of concurrent connections…

handed by a small number of multiplexing processes,…

typically one process per core

NGINX architecture

Page 18: Supercharge Application Delivery to Satisfy Users

NGINX transforms application performance

• NGINX has almost-unlimited concurrency

– Transforms worst-case traffic to best-case

– Maximizes application utilization

Internet

NSlow, high-concurrency

internet-side traffic

Fast, efficient

local-side traffic

Page 19: Supercharge Application Delivery to Satisfy Users

Let’s see it in action…

SlowHTTPTestcode.google.com/p/slowhttptest/

NGINX+ and WordPressStandard install with sample content

:8080

N+

Page 20: Supercharge Application Delivery to Satisfy Users

Cache common responses

GET /logo.png

GET /logo.png

Hybrid on-disk and in-memory cache

N+

Page 21: Supercharge Application Delivery to Satisfy Users

What about dynamic content?

• Some content appears to be un-cacheable

– Use client-side or server-side page assembly

– Use cache keys

– Use cache purging

– Use fast cache times

Page 22: Supercharge Application Delivery to Satisfy Users

Let’s see it in action…

SlowHTTPTestcode.google.com/p/slowhttptest/

NGINX+ and WordPressStandard install with sample content

:8080

N

Page 23: Supercharge Application Delivery to Satisfy Users

Be smart with your traffic• Reduce bandwidth requirements per client

– Content Compression reduces text and HTML• Typically about 70% reduction

– Image resampling reduces JPEG size

• Prioritize and rate-limit requests and responses– Queues, Rate-limits, Honeypots, ACLs

• Use NGINX Plus to its full potential

Page 24: Supercharge Application Delivery to Satisfy Users
Page 25: Supercharge Application Delivery to Satisfy Users

Closing thoughts

• Application Performance is key to Application Success

• Four areas you should focus on:

– The Application

– The Client

– The Network

– The Application Stack

• NGINX is used by 39.6% of the top 10,000 sites

Page 26: Supercharge Application Delivery to Satisfy Users

Find out more• http://nginx.com

– Webinars, Documentation, Free Trial

• http://nginx.org– Open Source, Community, Documentation

• @nginx, @nginxorg

• http://nginx.com/nginxconf/

Page 27: Supercharge Application Delivery to Satisfy Users