85
Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior Principal Engineer, Comcast Cable @seancribbs

Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Reliable High-Performance HTTP Infrastructure with nginx and LuaSean Cribbs Senior Principal Engineer, Comcast Cable @seancribbs

Page 2: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Background

Page 3: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior
Page 4: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Consumer

Page 5: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Internal

Consumer

Page 6: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Partner

Internal

Consumer

Page 7: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

API Management

Page 8: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

API Managementaccess control

capacity management

Page 9: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

CodeBig 1

API Consumer

Page 10: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

CodeBig 1

API Consumer

CDN

• traffic shaping • caching

Page 11: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

CodeBig 1

API Consumer

CDN

• traffic shaping • caching • access control

• rate limiting

Vendor APIM

Page 12: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

CodeBig 1

API Consumer

CDN

• traffic shaping • caching • access control

• rate limiting

Vendor APIM

Internet

Comcast

LB

• DNS RR • VIP

Page 13: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

CodeBig 1

API Consumer

CDN

• traffic shaping • caching • access control

• rate limiting

Vendor APIM

• DMZ intermediary • path-host mapping

iAuth

Internet

Comcast

LB

• DNS RR • VIP

Page 14: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

CodeBig 1

API Consumer

CDN

• traffic shaping • caching • access control

• rate limiting

Vendor APIM

• DMZ intermediary • path-host mapping

iAuth

Internet

Comcast

Origin APIs LB

• DNS RR • VIP

Page 15: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Challenges

Page 16: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Challengesvisibility

Page 17: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Challengesvisibility

responsibility

Page 18: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Challengesvisibility

responsibilityscope

Page 19: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Challengesvisibility

responsibilityscopelatency

Page 20: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Challengesvisibility

responsibilityscopelatencysecurity

Page 21: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

CodeBig 2

Page 22: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

CodeBig 2simplify architecture

Page 23: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

CodeBig 2simplify architecture

increase visibility

Page 24: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

CodeBig 2simplify architecture

increase visibilityuse open-source tools

Page 25: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Architecture

Page 26: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

custom  logic

HTTP

Proxy

Page 27: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Lua

Page 28: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

nginx+Lua extension points

init

access

header_filter log

init_worker

rewrite

body_filter

balancer ssl_certificate

set content

_by_lua  _by_lua_file    _by_lua_block

+

Page 29: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

CodeBig Request Phases

init access header_filter log

Page 30: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

CodeBig Request Phases

init access header_filter log

request flow

Page 31: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

CodeBig Request Phases

init access header_filter log

Load code and configuration

request flow

Page 32: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

CodeBig Request Phases

init access header_filter log

Load code and configuration

Authenticate Rate-limit

Tweak request

request flow

Page 33: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

CodeBig Request Phases

init access header_filter log

Load code and configuration

Authenticate Rate-limit

Tweak request

Tweak response

request flow

Page 34: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

CodeBig Request Phases

init access header_filter log

Load code and configuration

Authenticate Rate-limit

Tweak request

Tweak response Clean up

request flow

Page 35: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

local  setmetatable  =  setmetatable  

local  _M  =  {}  

function  _M:new(ctx,  conf)          local  o  =  {                  _ctx  =  ctx,                  _conf  =  conf          }  

       o.super  =  self          setmetatable(o,  self)          self.__index  =  self          return  o  end  

function  _M:access()          return  true  end  

function  _M:post_access()          -­‐-­‐  nop  end  

function  _M:header_filter()          -­‐-­‐  nop  end  

function  _M:log()          -­‐-­‐  nop  end  

return  _M

Page 36: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

for _, name in ipairs(conf.plugins) do -- load plugin by fully qualified name local plugin = require(name):new(ctx, conf)

-- exit immediately upon first rejection local is_ok, err = plugin:access() if not is_ok then ngx.status = err.code ngx_say(err.error) ngx.var.access_error = err.error return ngx_exit(ngx.HTTP_OK) end

insert(plugins, plugin) end

for _, plugin in ipairs(plugins) do plugin:post_access() end

Page 37: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

function _M.header_filter() local plugins = ngx.ctx.plugins or {}

for _, plugin in ipairs(plugins) do plugin:header_filter() endend

Page 38: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

# nginx.conf lua_package_path '/usr/share/?/init.lua;/usr/share/?.lua;;'; lua_shared_dict memory 50M;

init_by_lua_block { codebig = require("codebig") codebig.init(“/path/to/configs“) };

# vhost.conf location / { access_by_lua 'return codebig.access("somehost")';

header_filter_by_lua 'return codebig.header_filter()';

log_by_lua 'return codebig.log()'; }

Page 39: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Lua ~ 3K LoC!!

Page 40: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Intra-DatacenterVIP

Page 41: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Intra-DatacenterVIP

haproxy haproxy…

Page 42: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Intra-DatacenterVIP

haproxy haproxy…

Page 43: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Intra-DatacenterVIP

Origin APIs

haproxy haproxy…

Page 44: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Cross-Datacenter

DC1 DC2 DC3

vodvod

acct

acct

entry-­‐vip-­‐dc1.  A              10.1.0.1

vod-­‐dc1.              CNAME      entry-­‐vip-­‐dc1.

vod.                      CNAME      vod-­‐dc1.

entry-­‐vip-­‐dc2.  A              10.2.0.1entry-­‐vip-­‐dc3.  A              10.3.0.1

vod-­‐dc2.              CNAME      entry-­‐vip-­‐dc2.

VIP VIP VIP

vod-­‐dc1-­‐fo.        CNAME      entry-­‐vip-­‐dc1.

Page 45: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Capacity Management

Page 46: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

N = XR

Page 47: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

N = XR

# concurrent requests

Page 48: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

N = XR

# concurrent requests

transaction rate

Page 49: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

N = XR

# concurrent requests

transaction rate

response time

Page 50: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

N = XR

# concurrent requests

transaction rate

response time

Little’s Law

Page 51: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

client originAPIM

2 req/s 1s

N = XR = 2 req/s x 1s = 2 concurrent

Page 52: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

client originAPIM

2 req/s 10s

N = XR = 2 req/s x 10s = 20 concurrent

Page 53: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

client originAPIM

2 req/s 10s

N = XR = 2 req/s x 10s = 20 concurrent

Page 54: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Concurrent Request Limiting

lua_shared_dict              memory    50M;  

access_by_lua          …      +1  

log_by_lua                …      -­‐1

Page 55: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Deployment

Page 56: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior
Page 57: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Configs in VCS

Playbooks in VCS

config templates

API configs

vault(keys)

vip.conf

vhost.lua

vhost.confvhost.conf

vhost.json

nginx.conf

ssh

Page 58: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Results

Page 59: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Performance

Page 60: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

switchPerformance

Page 61: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

switch

mean 99th

Performance

Page 62: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

switch

~10x

mean 99th

Performance

Page 63: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Stability

Page 64: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

switchStability

Page 65: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Impactindex=codebig  host=*.cimops.net  source="/var/log/nginx/access.log"  |  eval  d  =  request_time  -­‐  upstream_response_time  |   timechart  span=1m  perc99(d)  max(d)

Page 66: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Impactse

cond

sindex=codebig  host=*.cimops.net  source="/var/log/nginx/access.log"  |  eval  d  =  request_time  -­‐  upstream_response_time  |   timechart  span=1m  perc99(d)  max(d)

Page 67: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Impactse

cond

sindex=codebig  host=*.cimops.net  source="/var/log/nginx/access.log"  |  eval  d  =  request_time  -­‐  upstream_response_time  |   timechart  span=1m  perc99(d)  max(d)

99th

Page 68: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Impactse

cond

sindex=codebig  host=*.cimops.net  source="/var/log/nginx/access.log"  |  eval  d  =  request_time  -­‐  upstream_response_time  |   timechart  span=1m  perc99(d)  max(d)

99th

max

Page 69: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Successes

Page 70: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Successesgreat performance improvements

Page 71: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Successesgreat performance improvements

hosting ~400 endpoints

Page 72: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Successesgreat performance improvements

hosting ~400 endpoints> 367MM requests a day

Page 73: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Successesgreat performance improvements

hosting ~400 endpoints> 367MM requests a day

prevented upstream downtime

Page 74: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Challenges

Page 75: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Challenges3rd-party Lua ecosystem

Page 76: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Challenges3rd-party Lua ecosystem

not self-service yet

Page 77: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Challenges3rd-party Lua ecosystem

not self-service yetconfiguration file size

Page 78: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Challenges3rd-party Lua ecosystem

not self-service yetconfiguration file size

kernel tuning

Page 79: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Challenges3rd-party Lua ecosystem

not self-service yetconfiguration file size

kernel tuningowning availability

Page 80: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Conclusion

Page 81: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

ConclusionNGINX + Lua for HTTP middleware

Page 82: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

ConclusionNGINX + Lua for HTTP middleware

Automated deployment pipeline

Page 83: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

ConclusionNGINX + Lua for HTTP middleware

Automated deployment pipelineConcurrent request limiting

Page 84: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

ConclusionNGINX + Lua for HTTP middleware

Automated deployment pipelineConcurrent request limiting

Operational flexibility

Page 85: Reliable High-Performance HTTP Infrastructure …chariotsolutions.com/wp-content/uploads/2016/04/...Reliable High-Performance HTTP Infrastructure with nginx and Lua Sean Cribbs Senior

Thanks