SlideShare a Scribd company logo
1 of 65
@developersteve #APIDaysAU
OpenResty
Building APIs for scale with
@developersteve #APIDaysAU
@developersteve #APIDaysAU
Steven Cooper
Sniip CTO
Developersteve.com
As Chief Technology Officer for Sniip Steven is
working closely to help scale the platform and
creating new innovative ways for consumers to pay.
With Sniip’s frictionless and easy to use application
he is working with government agencies, councils
and utility companies to implement the technology.
@developersteve #APIDaysAU
About
US
Sniip is a disruptive force in the payment space
It is the first of its kind in Australia as it is a
mobile payment application built not around
a bank or payment brand, but rather,
around the consumer.
About Sniip
Where it started
@developersteve #APIDaysAU
SCAN CHECKOUT
How it Works
The easy way to pay
PIN
@developersteve #APIDaysAU
Other “solutions”
Such advanced technology
@developersteve #APIDaysAU
@developersteve #APIDaysAU
Our Legacy Stack
It has to start somewhere
@developersteve #APIDaysAU
@developersteve #APIDaysAU
<3 AWS
@developersteve #APIDaysAU
Laravel API’s
Php framework
@developersteve #APIDaysAU
PHP is a framework
http://phpthewrongway.com
@developersteve #APIDaysAU
Mysql Schema
Mysql architecture
@developersteve #APIDaysAU
Our Strategy
Rebuilding for scale, elasticity and futureproofing
UX/UI
Create a user
experience that
futureproofs the UX
Functionality
Building relevant
functionality that allows
for scale
Developer Portal
API’s and
Documentation built for
internal and external
User Engagement
Ensuring we build how
users want to use our
platform
@developersteve #APIDaysAU
@developersteve #APIDaysAU
The Stack
Openresty
@developersteve #APIDaysAU
OpenResty
A fusion between Nginx and Lua
@developersteve #APIDaysAU
OpenResty Market Share
Used by nearly half a million websites
https://wappalyzer.com/categories/web-servers
@developersteve #APIDaysAU
Powering Tumblr
Used by high traffic sites
https://news.netcraft.com/archives/2016/09/19/september-2016-web-server-survey.html
@developersteve #APIDaysAU
OpenResty Libs
https://devstev.es/orlibs
@developersteve #APIDaysAU
OpenResty Machine Learning
http://torch.ch/
@developersteve #APIDaysAU
<3 Nginx
Nginx is awesome
@developersteve #APIDaysAU
Lua is back … again
Cant beat a classic
@developersteve #APIDaysAU
Corona SDK
Cross platform mobile
@developersteve #APIDaysAU
Let’s Encrypt
Automatically renewable SSL
@developersteve #APIDaysAU
Auto renew SSL
https://devstev.es/autossl
@developersteve #APIDaysAU
Auto renew SSL
https://devstev.es/autossl2
@developersteve #APIDaysAU
PCI DSS 3.2
Payment Card Industry Data Security Standard
@developersteve #APIDaysAU
Implement TLS
A more secure connection
TLS 1.0
TLS 1.1
TLS 1.2
@developersteve #APIDaysAU
@developersteve #APIDaysAU
Configuration
Setting up the
@developersteve #APIDaysAU
Installing OpenResty
openresty.org
@developersteve #APIDaysAU
Openresty Nginx
Config nginx.conf
./configure
--sbin-path=/usr/sbin/nginx
--conf-path=/etc/nginx/nginx.conf
--error-log-path=/var/log/nginx/error.log
--http-log-path=/var/log/nginx/access.log
--http-client-body-temp-path=/var/lib/nginx/body
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi
--http-proxy-temp-path=/var/lib/nginx/proxy
--http-scgi-temp-path=/var/lib/nginx/scgi
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi
--lock-path=/var/lock/nginx.lock
--pid-path=/var/run/nginx.pid
@developersteve #APIDaysAU
Openresty Libraries
https://devstev.es/orlibs
--with-luajit --with-pcre-jit --with-debug
--with-http_auth_request_module
--with-http_geoip_module
--with-http_gzip_static_module
--with-http_ssl_module
--with-ipv6
--with-http_v2_module
--with-http_postgres_module
@developersteve #APIDaysAU
Make… Install…
@developersteve #APIDaysAU
@developersteve #APIDaysAU
Nginx.conf Loadbalance
Nginx as per normal
@developersteve #APIDaysAU
Nginx.conf Basic
Nginx as per normal
worker_processes auto;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
server {
}
}
@developersteve #APIDaysAU
Nginx.conf SSL/TLS
Nginx as per normal
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on; ssl_ciphers
"EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AE
S256+EDH";ssl_ecdh_curve secp384r1;
ssl_session_timeout 1d;ssl_session_cache
shared:SSL:10m;ssl_session_tickets off;ssl_stapling
on;ssl_stapling_verify on;listen 443 ssl http2;listen [::]:443
ssl http2;ssl_certificate
/etc/letsencrypt/live/website.com/fullchain.pem;ssl_certificat
e_key
/etc/letsencrypt/live/website.com/privkey.pem;add_header
X-Frame-Options DENY;add_header X-Content-Type-
Options nosniff;add_header X-XSS-Protection "1;
mode=block";
@developersteve #APIDaysAU
@developersteve #APIDaysAU
Nginx.conf additionals
Nginx setup
http {
init_by_lua ’
json = require "cjson";
';
}
@developersteve #APIDaysAU
Nginx.conf Routes
Routing like a boss
location / {
content_by_lua_file ”./hello.lua";
}
@developersteve #APIDaysAU
Calling in Lua
helloworl.lua
local cjson = require("cjson")
ngx.status = ngx.HTTP_OK
ngx.header.content_type = "application/json; charset=utf-8”
ngx.say(cjson.encode({ hello = "world" }))
return ngx.exit(ngx.HTTP_OK)
@developersteve #APIDaysAU
Run OpenResty Run
Fingers crossed
nginx -p `pwd`/ -c nginx.conf
@developersteve #APIDaysAU
Nginx.conf Routes
Routing like a boss
location / {
content_by_lua_file ”./hello.lua";
}
location ~/status {
content_by_lua_file ”./status.lua";
}
@developersteve #APIDaysAU
Calling in Lua
Return a status
local cjson = require("cjson")
ngx.status = ngx.HTTP_OK
ngx.header.content_type = "application/json; charset=utf-8”
ngx.say(cjson.encode({ status = true }))
return ngx.exit(ngx.HTTP_OK)
@developersteve #APIDaysAU
@developersteve #APIDaysAU
Template Engine Lua
https://devstev.es/luatemp
@developersteve #APIDaysAU
OpenResty Snippets
https://devstev.es/luasnip
@developersteve #APIDaysAU
Load Testing
I feel the need for speed
@developersteve #APIDaysAU
@developersteve #APIDaysAU
@developersteve #APIDaysAU
BlitzIO
https://blitz.io
@developersteve #APIDaysAU
Legacy
@developersteve #APIDaysAU
OpenResty
@developersteve #APIDaysAU
Response Times
Left is legacy – Right is new
OpenRestyLegacy
@developersteve #APIDaysAU
Hit Rate
Left is legacy – Right is new
OpenRestyLegacy
@developersteve #APIDaysAU
@developersteve #APIDaysAU
Reading
Recommended
@developersteve #APIDaysAU
Designing robust API’s
https://devstev.es/api1
@developersteve #APIDaysAU
What is OpenResty
https://devstev.es/api2
@developersteve #APIDaysAU
Moltin OpenResty
https://devstev.es/api3
@developersteve #APIDaysAU
Thanks
Questions? Comments?
@developersteve #APIDaysAU
8-Bit Open Source
@developersteve #APIDaysAU
Drop Microphone
Walk off stage

More Related Content

What's hot

Icinga Web 2 is more
Icinga Web 2 is moreIcinga Web 2 is more
Icinga Web 2 is moreIcinga
 
Vagrant Plugin development
Vagrant Plugin developmentVagrant Plugin development
Vagrant Plugin developmentru_Parallels
 
Serverless computing con Azure Functions
Serverless computing con Azure FunctionsServerless computing con Azure Functions
Serverless computing con Azure FunctionsHernan Guzman
 
How to Hack (And Secure) Serverless Apps on Azure
How to Hack (And Secure) Serverless Apps on AzureHow to Hack (And Secure) Serverless Apps on Azure
How to Hack (And Secure) Serverless Apps on AzureDean Bryen
 
Introducing Apache Unomi - JavaOne 2015 Session
Introducing Apache Unomi - JavaOne 2015 SessionIntroducing Apache Unomi - JavaOne 2015 Session
Introducing Apache Unomi - JavaOne 2015 SessionSerge Huber
 
Icinga Camp Bangalore - Icinga integrations
Icinga Camp Bangalore - Icinga integrationsIcinga Camp Bangalore - Icinga integrations
Icinga Camp Bangalore - Icinga integrationsIcinga
 
Saluki - do it like a user
Saluki - do it like a userSaluki - do it like a user
Saluki - do it like a userIcinga
 
Icinga Camp Amsterdam - Icinga Director
Icinga Camp Amsterdam - Icinga DirectorIcinga Camp Amsterdam - Icinga Director
Icinga Camp Amsterdam - Icinga DirectorIcinga
 
Webhooks & Asp.Net
Webhooks & Asp.NetWebhooks & Asp.Net
Webhooks & Asp.NetNarato
 
Using hapi plugins to version your API (hapiDays 2014)
Using hapi plugins to version your API (hapiDays 2014)Using hapi plugins to version your API (hapiDays 2014)
Using hapi plugins to version your API (hapiDays 2014)Dave Stevens
 
Building an Event-driven Web @ Impact
Building an Event-driven Web @ ImpactBuilding an Event-driven Web @ Impact
Building an Event-driven Web @ ImpactJeff Lindsay
 
Icinga Camp Amsterdam - Icinga2 and Ansible
Icinga Camp Amsterdam - Icinga2 and AnsibleIcinga Camp Amsterdam - Icinga2 and Ansible
Icinga Camp Amsterdam - Icinga2 and AnsibleIcinga
 
Icinga Camp Antwerp - Icinga2 Configuration
Icinga Camp Antwerp - Icinga2 ConfigurationIcinga Camp Antwerp - Icinga2 Configuration
Icinga Camp Antwerp - Icinga2 ConfigurationIcinga
 
Introducing the Apache Unomi Project
Introducing the Apache Unomi ProjectIntroducing the Apache Unomi Project
Introducing the Apache Unomi ProjectJahia Solutions Group
 
Parallel Testing with Python with Selenium and Sauce Labs
Parallel Testing with Python with Selenium and Sauce LabsParallel Testing with Python with Selenium and Sauce Labs
Parallel Testing with Python with Selenium and Sauce LabsSauce Labs
 
Icinga Camp Berlin 2017 - Welcome & State of Icinga
Icinga Camp Berlin 2017 - Welcome & State of IcingaIcinga Camp Berlin 2017 - Welcome & State of Icinga
Icinga Camp Berlin 2017 - Welcome & State of IcingaIcinga
 
Monitoring Gengo using Saas
Monitoring Gengo using SaasMonitoring Gengo using Saas
Monitoring Gengo using SaasYosuke Tomita
 
The Business Value of a PaaS (presented by Kieron Sambrook Smith, Chief Comme...
The Business Value of a PaaS (presented by Kieron Sambrook Smith, Chief Comme...The Business Value of a PaaS (presented by Kieron Sambrook Smith, Chief Comme...
The Business Value of a PaaS (presented by Kieron Sambrook Smith, Chief Comme...eZ Systems
 
Icinga camp ams 2016 icinga2
Icinga camp ams 2016 icinga2Icinga camp ams 2016 icinga2
Icinga camp ams 2016 icinga2Assaf Flatto
 
Pragmatic REST aka praxisnahes Schnittstellendesign
Pragmatic REST aka praxisnahes SchnittstellendesignPragmatic REST aka praxisnahes Schnittstellendesign
Pragmatic REST aka praxisnahes SchnittstellendesignOPEN KNOWLEDGE GmbH
 

What's hot (20)

Icinga Web 2 is more
Icinga Web 2 is moreIcinga Web 2 is more
Icinga Web 2 is more
 
Vagrant Plugin development
Vagrant Plugin developmentVagrant Plugin development
Vagrant Plugin development
 
Serverless computing con Azure Functions
Serverless computing con Azure FunctionsServerless computing con Azure Functions
Serverless computing con Azure Functions
 
How to Hack (And Secure) Serverless Apps on Azure
How to Hack (And Secure) Serverless Apps on AzureHow to Hack (And Secure) Serverless Apps on Azure
How to Hack (And Secure) Serverless Apps on Azure
 
Introducing Apache Unomi - JavaOne 2015 Session
Introducing Apache Unomi - JavaOne 2015 SessionIntroducing Apache Unomi - JavaOne 2015 Session
Introducing Apache Unomi - JavaOne 2015 Session
 
Icinga Camp Bangalore - Icinga integrations
Icinga Camp Bangalore - Icinga integrationsIcinga Camp Bangalore - Icinga integrations
Icinga Camp Bangalore - Icinga integrations
 
Saluki - do it like a user
Saluki - do it like a userSaluki - do it like a user
Saluki - do it like a user
 
Icinga Camp Amsterdam - Icinga Director
Icinga Camp Amsterdam - Icinga DirectorIcinga Camp Amsterdam - Icinga Director
Icinga Camp Amsterdam - Icinga Director
 
Webhooks & Asp.Net
Webhooks & Asp.NetWebhooks & Asp.Net
Webhooks & Asp.Net
 
Using hapi plugins to version your API (hapiDays 2014)
Using hapi plugins to version your API (hapiDays 2014)Using hapi plugins to version your API (hapiDays 2014)
Using hapi plugins to version your API (hapiDays 2014)
 
Building an Event-driven Web @ Impact
Building an Event-driven Web @ ImpactBuilding an Event-driven Web @ Impact
Building an Event-driven Web @ Impact
 
Icinga Camp Amsterdam - Icinga2 and Ansible
Icinga Camp Amsterdam - Icinga2 and AnsibleIcinga Camp Amsterdam - Icinga2 and Ansible
Icinga Camp Amsterdam - Icinga2 and Ansible
 
Icinga Camp Antwerp - Icinga2 Configuration
Icinga Camp Antwerp - Icinga2 ConfigurationIcinga Camp Antwerp - Icinga2 Configuration
Icinga Camp Antwerp - Icinga2 Configuration
 
Introducing the Apache Unomi Project
Introducing the Apache Unomi ProjectIntroducing the Apache Unomi Project
Introducing the Apache Unomi Project
 
Parallel Testing with Python with Selenium and Sauce Labs
Parallel Testing with Python with Selenium and Sauce LabsParallel Testing with Python with Selenium and Sauce Labs
Parallel Testing with Python with Selenium and Sauce Labs
 
Icinga Camp Berlin 2017 - Welcome & State of Icinga
Icinga Camp Berlin 2017 - Welcome & State of IcingaIcinga Camp Berlin 2017 - Welcome & State of Icinga
Icinga Camp Berlin 2017 - Welcome & State of Icinga
 
Monitoring Gengo using Saas
Monitoring Gengo using SaasMonitoring Gengo using Saas
Monitoring Gengo using Saas
 
The Business Value of a PaaS (presented by Kieron Sambrook Smith, Chief Comme...
The Business Value of a PaaS (presented by Kieron Sambrook Smith, Chief Comme...The Business Value of a PaaS (presented by Kieron Sambrook Smith, Chief Comme...
The Business Value of a PaaS (presented by Kieron Sambrook Smith, Chief Comme...
 
Icinga camp ams 2016 icinga2
Icinga camp ams 2016 icinga2Icinga camp ams 2016 icinga2
Icinga camp ams 2016 icinga2
 
Pragmatic REST aka praxisnahes Schnittstellendesign
Pragmatic REST aka praxisnahes SchnittstellendesignPragmatic REST aka praxisnahes Schnittstellendesign
Pragmatic REST aka praxisnahes Schnittstellendesign
 

Viewers also liked

Productising APIs: from idea to the market
Productising APIs: from idea to the marketProductising APIs: from idea to the market
Productising APIs: from idea to the marketEldar Allahverdiyev
 
Service fabric demo
Service fabric demoService fabric demo
Service fabric demoPaul Nichols
 
A Connector, A Container and an API Walk Into a Bar: The Programmable World
A Connector, A Container and an API Walk Into a Bar: The Programmable World A Connector, A Container and an API Walk Into a Bar: The Programmable World
A Connector, A Container and an API Walk Into a Bar: The Programmable World 3scale
 
Tugas 4 0317-imelda felicia-1412510545
Tugas 4 0317-imelda felicia-1412510545Tugas 4 0317-imelda felicia-1412510545
Tugas 4 0317-imelda felicia-1412510545imeldafelicia
 
2015 Internet Trends Report
2015 Internet Trends Report2015 Internet Trends Report
2015 Internet Trends ReportIQbal KHan
 
Data Exploration with Apache Drill: Day 1
Data Exploration with Apache Drill:  Day 1Data Exploration with Apache Drill:  Day 1
Data Exploration with Apache Drill: Day 1Charles Givre
 
Building the future as a full stack dev
Building the future as a full stack devBuilding the future as a full stack dev
Building the future as a full stack devSteven Cooper
 
Crowdfunding Marketing, Tips For Facebook Advertising Kickstarter Campaigns
Crowdfunding Marketing, Tips For Facebook Advertising Kickstarter CampaignsCrowdfunding Marketing, Tips For Facebook Advertising Kickstarter Campaigns
Crowdfunding Marketing, Tips For Facebook Advertising Kickstarter CampaignsRoy Morejon
 
Tracxn Research - Mobile Advertising Landscape, February 2017
Tracxn Research - Mobile Advertising Landscape, February 2017Tracxn Research - Mobile Advertising Landscape, February 2017
Tracxn Research - Mobile Advertising Landscape, February 2017Tracxn
 
Tracxn Research - Healthcare Analytics Landscape, February 2017
Tracxn Research - Healthcare Analytics Landscape, February 2017Tracxn Research - Healthcare Analytics Landscape, February 2017
Tracxn Research - Healthcare Analytics Landscape, February 2017Tracxn
 
Webinar: 10-Step Guide to Creating a Single View of your Business
Webinar: 10-Step Guide to Creating a Single View of your BusinessWebinar: 10-Step Guide to Creating a Single View of your Business
Webinar: 10-Step Guide to Creating a Single View of your BusinessMongoDB
 
Tugas4 0317-nasrulakbar-141250552
Tugas4 0317-nasrulakbar-141250552Tugas4 0317-nasrulakbar-141250552
Tugas4 0317-nasrulakbar-141250552Nasrul Akbar
 
Dns security overview
Dns security overviewDns security overview
Dns security overviewVladimir2003
 
How to use google analytics to track your websites
How to use google analytics to track your websitesHow to use google analytics to track your websites
How to use google analytics to track your websitesMarven Bore
 

Viewers also liked (17)

Productising APIs: from idea to the market
Productising APIs: from idea to the marketProductising APIs: from idea to the market
Productising APIs: from idea to the market
 
Service fabric demo
Service fabric demoService fabric demo
Service fabric demo
 
A Connector, A Container and an API Walk Into a Bar: The Programmable World
A Connector, A Container and an API Walk Into a Bar: The Programmable World A Connector, A Container and an API Walk Into a Bar: The Programmable World
A Connector, A Container and an API Walk Into a Bar: The Programmable World
 
Tugas 4 0317-imelda felicia-1412510545
Tugas 4 0317-imelda felicia-1412510545Tugas 4 0317-imelda felicia-1412510545
Tugas 4 0317-imelda felicia-1412510545
 
2015 Internet Trends Report
2015 Internet Trends Report2015 Internet Trends Report
2015 Internet Trends Report
 
Hong Kong Insurance Tech directory (v1.0)
Hong Kong Insurance Tech directory (v1.0)Hong Kong Insurance Tech directory (v1.0)
Hong Kong Insurance Tech directory (v1.0)
 
Data Exploration with Apache Drill: Day 1
Data Exploration with Apache Drill:  Day 1Data Exploration with Apache Drill:  Day 1
Data Exploration with Apache Drill: Day 1
 
Building the future as a full stack dev
Building the future as a full stack devBuilding the future as a full stack dev
Building the future as a full stack dev
 
Crowdfunding Marketing, Tips For Facebook Advertising Kickstarter Campaigns
Crowdfunding Marketing, Tips For Facebook Advertising Kickstarter CampaignsCrowdfunding Marketing, Tips For Facebook Advertising Kickstarter Campaigns
Crowdfunding Marketing, Tips For Facebook Advertising Kickstarter Campaigns
 
Tracxn Research - Mobile Advertising Landscape, February 2017
Tracxn Research - Mobile Advertising Landscape, February 2017Tracxn Research - Mobile Advertising Landscape, February 2017
Tracxn Research - Mobile Advertising Landscape, February 2017
 
Tracxn Research - Healthcare Analytics Landscape, February 2017
Tracxn Research - Healthcare Analytics Landscape, February 2017Tracxn Research - Healthcare Analytics Landscape, February 2017
Tracxn Research - Healthcare Analytics Landscape, February 2017
 
Webinar: 10-Step Guide to Creating a Single View of your Business
Webinar: 10-Step Guide to Creating a Single View of your BusinessWebinar: 10-Step Guide to Creating a Single View of your Business
Webinar: 10-Step Guide to Creating a Single View of your Business
 
Tugas4 0317-nasrulakbar-141250552
Tugas4 0317-nasrulakbar-141250552Tugas4 0317-nasrulakbar-141250552
Tugas4 0317-nasrulakbar-141250552
 
K8S in prod
K8S in prodK8S in prod
K8S in prod
 
Google Cloud Spanner Preview
Google Cloud Spanner PreviewGoogle Cloud Spanner Preview
Google Cloud Spanner Preview
 
Dns security overview
Dns security overviewDns security overview
Dns security overview
 
How to use google analytics to track your websites
How to use google analytics to track your websitesHow to use google analytics to track your websites
How to use google analytics to track your websites
 

Similar to APIDays Australia - Openresty for scale

apidays Australia 2023 - APIs Aren't Enough: Why SaaS Leaders Are Investing I...
apidays Australia 2023 - APIs Aren't Enough: Why SaaS Leaders Are Investing I...apidays Australia 2023 - APIs Aren't Enough: Why SaaS Leaders Are Investing I...
apidays Australia 2023 - APIs Aren't Enough: Why SaaS Leaders Are Investing I...apidays
 
Creating and Managing a Paperless Enterprise
Creating and Managing a Paperless EnterpriseCreating and Managing a Paperless Enterprise
Creating and Managing a Paperless EnterpriseProvokeSolutionsSeattle
 
Bootstrapping an App for Launch
Bootstrapping an App for LaunchBootstrapping an App for Launch
Bootstrapping an App for LaunchCraig Phares
 
Scalable full-stack development at the edge - Pascal Wolkotte - Codemotion Am...
Scalable full-stack development at the edge - Pascal Wolkotte - Codemotion Am...Scalable full-stack development at the edge - Pascal Wolkotte - Codemotion Am...
Scalable full-stack development at the edge - Pascal Wolkotte - Codemotion Am...Codemotion
 
Securing a Great Developer Experience - DevOps Indonesia Meetup by Stefan Str...
Securing a Great Developer Experience - DevOps Indonesia Meetup by Stefan Str...Securing a Great Developer Experience - DevOps Indonesia Meetup by Stefan Str...
Securing a Great Developer Experience - DevOps Indonesia Meetup by Stefan Str...DevOps Indonesia
 
Taking AppSec to 11 - BSides Austin 2016
Taking AppSec to 11 - BSides Austin 2016Taking AppSec to 11 - BSides Austin 2016
Taking AppSec to 11 - BSides Austin 2016Matt Tesauro
 
Spring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel Lavoie
Spring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel LavoieSpring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel Lavoie
Spring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel LavoieVMware Tanzu
 
Big Data And HTML5 (DevCon TLV 2012)
Big Data And HTML5 (DevCon TLV 2012)Big Data And HTML5 (DevCon TLV 2012)
Big Data And HTML5 (DevCon TLV 2012)Ido Green
 
Open stack gbp final sn-4-slideshare
Open stack gbp final sn-4-slideshareOpen stack gbp final sn-4-slideshare
Open stack gbp final sn-4-slideshareSumit Naiksatam
 
Juraj vysvader - Python developer's CV
Juraj vysvader - Python developer's CVJuraj vysvader - Python developer's CV
Juraj vysvader - Python developer's CVJuraj Vysvader
 
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...PROIDEA
 
SpringOne Tour Denver - Spring Boot & Spring Cloud on Pivotal Application Ser...
SpringOne Tour Denver - Spring Boot & Spring Cloud on Pivotal Application Ser...SpringOne Tour Denver - Spring Boot & Spring Cloud on Pivotal Application Ser...
SpringOne Tour Denver - Spring Boot & Spring Cloud on Pivotal Application Ser...VMware Tanzu
 
Containers 101 - CloudCamp London
Containers 101 - CloudCamp LondonContainers 101 - CloudCamp London
Containers 101 - CloudCamp LondonEd Hoppitt
 
Taking AppSec to 11: AppSec Pipeline, DevOps and Making Things Better
Taking AppSec to 11: AppSec Pipeline, DevOps and Making Things BetterTaking AppSec to 11: AppSec Pipeline, DevOps and Making Things Better
Taking AppSec to 11: AppSec Pipeline, DevOps and Making Things BetterMatt Tesauro
 
We-Donut.io presentation of Platform
We-Donut.io presentation of PlatformWe-Donut.io presentation of Platform
We-Donut.io presentation of PlatformDennis Reurings
 
Apidaze WebRTC Workshop barcelona 21st april 2013
Apidaze WebRTC Workshop barcelona 21st april 2013Apidaze WebRTC Workshop barcelona 21st april 2013
Apidaze WebRTC Workshop barcelona 21st april 2013Alan Quayle
 
HP Helion European Webinar Series ,Webinar #3
HP Helion European Webinar Series ,Webinar #3 HP Helion European Webinar Series ,Webinar #3
HP Helion European Webinar Series ,Webinar #3 BeMyApp
 
Enabling application portability with the greatest of ease!
Enabling application portability with the greatest of ease!Enabling application portability with the greatest of ease!
Enabling application portability with the greatest of ease!Ken Owens
 

Similar to APIDays Australia - Openresty for scale (20)

apidays Australia 2023 - APIs Aren't Enough: Why SaaS Leaders Are Investing I...
apidays Australia 2023 - APIs Aren't Enough: Why SaaS Leaders Are Investing I...apidays Australia 2023 - APIs Aren't Enough: Why SaaS Leaders Are Investing I...
apidays Australia 2023 - APIs Aren't Enough: Why SaaS Leaders Are Investing I...
 
Creating and Managing a Paperless Enterprise
Creating and Managing a Paperless EnterpriseCreating and Managing a Paperless Enterprise
Creating and Managing a Paperless Enterprise
 
Bootstrapping an App for Launch
Bootstrapping an App for LaunchBootstrapping an App for Launch
Bootstrapping an App for Launch
 
Scalable full-stack development at the edge - Pascal Wolkotte - Codemotion Am...
Scalable full-stack development at the edge - Pascal Wolkotte - Codemotion Am...Scalable full-stack development at the edge - Pascal Wolkotte - Codemotion Am...
Scalable full-stack development at the edge - Pascal Wolkotte - Codemotion Am...
 
Cqcon2015
Cqcon2015Cqcon2015
Cqcon2015
 
Securing a Great Developer Experience - DevOps Indonesia Meetup by Stefan Str...
Securing a Great Developer Experience - DevOps Indonesia Meetup by Stefan Str...Securing a Great Developer Experience - DevOps Indonesia Meetup by Stefan Str...
Securing a Great Developer Experience - DevOps Indonesia Meetup by Stefan Str...
 
Taking AppSec to 11 - BSides Austin 2016
Taking AppSec to 11 - BSides Austin 2016Taking AppSec to 11 - BSides Austin 2016
Taking AppSec to 11 - BSides Austin 2016
 
Spring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel Lavoie
Spring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel LavoieSpring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel Lavoie
Spring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel Lavoie
 
Big Data And HTML5 (DevCon TLV 2012)
Big Data And HTML5 (DevCon TLV 2012)Big Data And HTML5 (DevCon TLV 2012)
Big Data And HTML5 (DevCon TLV 2012)
 
Open stack gbp final sn-4-slideshare
Open stack gbp final sn-4-slideshareOpen stack gbp final sn-4-slideshare
Open stack gbp final sn-4-slideshare
 
Apigee Edge Overview and Roadmap
Apigee Edge Overview and RoadmapApigee Edge Overview and Roadmap
Apigee Edge Overview and Roadmap
 
Juraj vysvader - Python developer's CV
Juraj vysvader - Python developer's CVJuraj vysvader - Python developer's CV
Juraj vysvader - Python developer's CV
 
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
Containers, Serverless, Polyglot Development World, And Others…10 trends resh...
 
SpringOne Tour Denver - Spring Boot & Spring Cloud on Pivotal Application Ser...
SpringOne Tour Denver - Spring Boot & Spring Cloud on Pivotal Application Ser...SpringOne Tour Denver - Spring Boot & Spring Cloud on Pivotal Application Ser...
SpringOne Tour Denver - Spring Boot & Spring Cloud on Pivotal Application Ser...
 
Containers 101 - CloudCamp London
Containers 101 - CloudCamp LondonContainers 101 - CloudCamp London
Containers 101 - CloudCamp London
 
Taking AppSec to 11: AppSec Pipeline, DevOps and Making Things Better
Taking AppSec to 11: AppSec Pipeline, DevOps and Making Things BetterTaking AppSec to 11: AppSec Pipeline, DevOps and Making Things Better
Taking AppSec to 11: AppSec Pipeline, DevOps and Making Things Better
 
We-Donut.io presentation of Platform
We-Donut.io presentation of PlatformWe-Donut.io presentation of Platform
We-Donut.io presentation of Platform
 
Apidaze WebRTC Workshop barcelona 21st april 2013
Apidaze WebRTC Workshop barcelona 21st april 2013Apidaze WebRTC Workshop barcelona 21st april 2013
Apidaze WebRTC Workshop barcelona 21st april 2013
 
HP Helion European Webinar Series ,Webinar #3
HP Helion European Webinar Series ,Webinar #3 HP Helion European Webinar Series ,Webinar #3
HP Helion European Webinar Series ,Webinar #3
 
Enabling application portability with the greatest of ease!
Enabling application portability with the greatest of ease!Enabling application portability with the greatest of ease!
Enabling application portability with the greatest of ease!
 

More from Steven Cooper

Scaling the Stack and Yourself with it
Scaling the Stack and Yourself with itScaling the Stack and Yourself with it
Scaling the Stack and Yourself with itSteven Cooper
 
All a flutter about Flutter.io
All a flutter about Flutter.ioAll a flutter about Flutter.io
All a flutter about Flutter.ioSteven Cooper
 
Compcon 2016 Workshop
Compcon 2016 WorkshopCompcon 2016 Workshop
Compcon 2016 WorkshopSteven Cooper
 
The Robot and the Cloud
The Robot and the CloudThe Robot and the Cloud
The Robot and the CloudSteven Cooper
 
PHPConf.Asia - The Sound of PHP
PHPConf.Asia - The Sound of PHPPHPConf.Asia - The Sound of PHP
PHPConf.Asia - The Sound of PHPSteven Cooper
 
Textual Interface - the rise of the chatbot
Textual Interface - the rise of the chatbotTextual Interface - the rise of the chatbot
Textual Interface - the rise of the chatbotSteven Cooper
 
Bootstrapping Startup
Bootstrapping StartupBootstrapping Startup
Bootstrapping StartupSteven Cooper
 
IoT Commerce using Ruby, PHP and Arduino
IoT Commerce using Ruby, PHP and Arduino IoT Commerce using Ruby, PHP and Arduino
IoT Commerce using Ruby, PHP and Arduino Steven Cooper
 
Time Travelling E-Commerce
Time Travelling E-CommerceTime Travelling E-Commerce
Time Travelling E-CommerceSteven Cooper
 
The Wizardry of Braintree hosted fields - PHP
The Wizardry of Braintree hosted fields - PHPThe Wizardry of Braintree hosted fields - PHP
The Wizardry of Braintree hosted fields - PHPSteven Cooper
 
The PayPal Here symphony
The PayPal Here symphonyThe PayPal Here symphony
The PayPal Here symphonySteven Cooper
 
Holographic Payments
Holographic PaymentsHolographic Payments
Holographic PaymentsSteven Cooper
 
MongoDB - The database strikes back
MongoDB - The database strikes back MongoDB - The database strikes back
MongoDB - The database strikes back Steven Cooper
 
Drupal South - IoT Commerce
Drupal South - IoT CommerceDrupal South - IoT Commerce
Drupal South - IoT CommerceSteven Cooper
 
E-Commerce Melbourne
E-Commerce Melbourne E-Commerce Melbourne
E-Commerce Melbourne Steven Cooper
 
BattleHack Melbourne
BattleHack MelbourneBattleHack Melbourne
BattleHack MelbourneSteven Cooper
 

More from Steven Cooper (20)

Scaling the Stack and Yourself with it
Scaling the Stack and Yourself with itScaling the Stack and Yourself with it
Scaling the Stack and Yourself with it
 
All a flutter about Flutter.io
All a flutter about Flutter.ioAll a flutter about Flutter.io
All a flutter about Flutter.io
 
Compcon 2016 Workshop
Compcon 2016 WorkshopCompcon 2016 Workshop
Compcon 2016 Workshop
 
The Robot and the Cloud
The Robot and the CloudThe Robot and the Cloud
The Robot and the Cloud
 
PHPConf.Asia - The Sound of PHP
PHPConf.Asia - The Sound of PHPPHPConf.Asia - The Sound of PHP
PHPConf.Asia - The Sound of PHP
 
Textual Interface - the rise of the chatbot
Textual Interface - the rise of the chatbotTextual Interface - the rise of the chatbot
Textual Interface - the rise of the chatbot
 
Bootstrapping Startup
Bootstrapping StartupBootstrapping Startup
Bootstrapping Startup
 
Unihack2016 opening
Unihack2016 openingUnihack2016 opening
Unihack2016 opening
 
Unihack2016 closing
Unihack2016 closingUnihack2016 closing
Unihack2016 closing
 
IoT Commerce using Ruby, PHP and Arduino
IoT Commerce using Ruby, PHP and Arduino IoT Commerce using Ruby, PHP and Arduino
IoT Commerce using Ruby, PHP and Arduino
 
Time Travelling E-Commerce
Time Travelling E-CommerceTime Travelling E-Commerce
Time Travelling E-Commerce
 
The Wizardry of Braintree hosted fields - PHP
The Wizardry of Braintree hosted fields - PHPThe Wizardry of Braintree hosted fields - PHP
The Wizardry of Braintree hosted fields - PHP
 
The PayPal Here symphony
The PayPal Here symphonyThe PayPal Here symphony
The PayPal Here symphony
 
Holographic Payments
Holographic PaymentsHolographic Payments
Holographic Payments
 
MongoDB - The database strikes back
MongoDB - The database strikes back MongoDB - The database strikes back
MongoDB - The database strikes back
 
PHP Australia
PHP AustraliaPHP Australia
PHP Australia
 
Drupal South - IoT Commerce
Drupal South - IoT CommerceDrupal South - IoT Commerce
Drupal South - IoT Commerce
 
E-Commerce Melbourne
E-Commerce Melbourne E-Commerce Melbourne
E-Commerce Melbourne
 
APIDays Sydney
APIDays SydneyAPIDays Sydney
APIDays Sydney
 
BattleHack Melbourne
BattleHack MelbourneBattleHack Melbourne
BattleHack Melbourne
 

Recently uploaded

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
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
 
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
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
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
 
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
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
"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
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
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
 
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
 

Recently uploaded (20)

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
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
 
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
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
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
 
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
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 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
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
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
 
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
 

APIDays Australia - Openresty for scale

Editor's Notes

  1. So awesome to be speaking at my 5th ApiDays in Australia I still remember speaking at the first one in Sydney and its been awesome seeing it grow like it has in Australia and New Zealand
  2. Previous to my current role I was an evangelist with paypal and xero travelling nearly half a million kms speaking at conferences throughout Asia pacific
  3. About us The platform Tech debt is unavoidable – from the moment you start that first git repo to the time you deploy the clock is ticking Why openresty openresty http2 Lets encrypt Speed tests Clustering Redis
  4. Tech debt is unavoidable
  5. AWS is awesome, however theres some things I don’t like
  6. TLS 1.2 enable
  7. Download and build form source ./configure –j2 make –j2 Sudo make install
  8. Make install nginx with configuration, you can configure all the usual default settings as part of the nginx stack
  9. At this point you can also start calling in all the openresty libraries that youll need inside your apis, like http2 posgres or database connections
  10. Load balancing
  11. Load balancing
  12. Load balancing
  13. Initiate common lua requirements inside the nginx.conf block, this saves time having to call them into the lua files later
  14. Comparing apples to oranges
  15. Comparing apples to oranges
  16. TLS 1.0
  17. T2 small instance with 2 gigs of memory
  18. Ec2 micro – 500 meg mem and a 2 gig swapspace
  19. TLS 1.0