SlideShare a Scribd company logo
Gatekeeper
API Gateway
@GregWeng
Speaker
@GregWeng
First languages: Haskell, ECMAScript
Second languages: Python, Ruby, C/C++
Domain:Functional Programming,
Compiler,
Dynamic Language Engine,
Distributed System (as an user),
Web FrontEnd
Natural Language: Chinese, English, Japanese 勉強中
Slides:
Microservice
Microservices
Frontend app
User
Backing Recipe Service
Recipe/Ingredient/Rating
RESTful rate limiting
oauth2, ...
3rd-party service
Search
RESTful
Microservices
Recipe
RESTful
Ingredient Rating
RESTfulRESTful
Frontend app
User
rate limiting
oauth2, ...
Backing Recipe Service
Search
RESTful
3rd-party service
Microservices
Frontend app
User
Backing Recipe Service
Ingredient
Recipe Rating
Microservices should be easy to scale out...
Microservices
Frontend app
User
Backing Recipe Service
Ingredient
Recipe Rating
And recover from disaster w/o crashing
other instances or services as well
Microservices
Frontend app
User
Backing Recipe Service
Ingredient
Recipe Rating
More important: auxiliary services soon
grow to help the operation
Microservices
Frontend app
User
Backing Recipe Service
Ingredient
Recipe Rating
Health
Monitor
Logging
Load Balancer
Deployment
CI/CD
Microservices
Frontend app
User
Backing Recipe Service
Ingredient
Recipe Rating
Health
Monitor
Logging
Load Balancer
And the system get complicated soon...
Deployment
CI/CD
Microservices
Frontend app
User
Backing Recipe Service
Ingredient
Recipe Rating
Logging
Balancer
Logging
Logging
Logging
Health
Monitor
And the system get complicated soon...
Deployment
CI/CD
CI/CD
CI/CD
Manage the Complexity
Container
"Backend/Infra"
Ingredient
Recipe Rating
Logging
Balancer
Logging
Logging
Logging
Health
Monitor
Deployment
CI/CD
CI/CD
CI/CD
Container
For development & deployment (unit)
Deployment
CI/CD
CI/CD
CI/CD
Ingredient
Recipe Rating
Logging
Balancer
Logging
Logging
Logging
Health
Monitor
IngredientRecipe Rating Deployment
Container (Docker)
Container
Container (Docker)
File System
Network
Process
OS Kernel
File System
Network
Process
File System
Network
Process Process
Rating
Service
Ingredient
Service
Native
Processes
Hardware
Container
Container (Docker)
CentOS
172.12.56.124
python
rating.py
Core OS Kernel
Debian
192.168.21.24
node
ingredient.js
CoreOS
10.35.23.88
JVM nginx
Rating
Service
Ingredient
Service
Native
Processes
Hardware
Container
Virtual Machine
172.12.56.124
python
rating.py
192.168.21.24
node
ingredient.js
Windows
10.35.23.88
JVM nginx
Rating
Service
Ingredient
Service
Native
Processes
AMD-V/VT-x/AVIC/IO MMU Virtualization...
CentOS
Windows Kernel
Debian
Container
Containers for servers and services
Hardware
Guest OS Host OSGuest OS
Container
Service
Container
Containers for servers and services
Physical Servers
Service
Container
Nodes ~= Virtual Machine/Physical Machine
Containers for servers and services
Container
Develop & deploy a Dockerized service
Nodes
Write code
Write Docker file
Build Docker image
Deploy image to nodes
Container
Develop & deploy a Dockerized service
Nodes
Write code
Write Docker file
Build Docker image
Deploy image to nodes
Install code & dependencies
into the image
Instructions to build the image
(many details here, actually)
For your service
Container
Update a Dockerized service
Nodes
Patch the code or
Dockerfile
Re-build Docker image
Re-deploy the image
(much more details here)
Container
Why Docker/Container?
Lightweight than VM (runtime overhead & image size)
but still keep isolation among services*
Hardware
Host OS
File System
Network
Process
Kernel
Process
Network
Process
File System
Guest OS
Process
* Isolation enough for most of cases, but can be leaky sometimes
Container
Why Docker/Container?
Build your own images based on others' work
Rating Service Image
Python3 Image
Debian Image
based on
based on
## In the Dockerfile ##
FROM python:3.6.3-jessie
COPY ./app /opt/app
WORKDIR /opt/app
...
Container
Production
Why Docker/Container?
Staging
CILocal
Easy to deploy everywhere w/ exactly the same dependencies encapsulated
rating.py
virtualenv
Debian packages
static content
environment variables
external volumes
Container
Why Docker/Container?
Populate container supported by Kubernetes
Kubernetes
Kubernetes
Kubernetes*
Ingredient
Recipe Rating
Deployment
Balancer
Health
Monitor
*well, not best for all, but enough for most of cases
Kubernetes
Microservice or microhazards?
Any Container/Node/Network may fail
Kubernetes
How to automatically deploy 1 image to 1000 nodes?
......
While make sure some deployment failures
won't disturb the whole procedure
Kubernetes
And how to upgrade to new version of image not to
interrupt the service?
......
Plus the capability to auto-rollback when
new version actually has regression
Kubernetes
Annoying service config and secrets...
Database: table,
username/password
Service port, host
Logging level, ...
Database: table,
username/password
Service port, host
Logging level, ...
Database: table,
username/password
Service port, host
Logging level, ...
Service A Service B Service C
Where to put, keep, apply and update?
Kubernetes
Any map for exposing service to public, or connect
containers as internal services for each other?
Public
Kubernetes
Kubernetes can help to solve these issues
Kubernetes
Different types of resources in Kubernetes
Deployment
Job
Service
Ingress
...
Define these files and command Kubernetes
to create/delete/update on Nodes
Kubernetes
Tiny Kubernetes-based microservice in brief
Containers
Pod
Containers
Pod
Containers
Pod
Containers
Pod
replica = 3
label: app=rating
label: app=recipe
Rating
Service
selector:
app=rating
Service
Recipe
Service
selector:
app=recipe
Service
/rating:
Rating
Service
/recipe:
Recipe
Service
Ingress
Backing
Recipe
Ingress
Public
Kubernetes
Create a Deployment in Kubernetes
Containers
PodName
Label
Annotation
Port
restartPolicy
imagePullPolicy
readinessProbe
livenessProbe
env
image
command
...
kubectl create -f rating-deployment.yml
rating-deployment.yml
Kubernetes will start the
deployment and pull the image
Build & push Docker image to registry
Kubernetes
Update a Deployment in Kubernetes
Containers
PodName
Label
Annotation
Port
restartPolicy
imagePullPolicy
readinessProbe
livenessProbe
env
image'
command
...
kubectl replace -f rating-deployment.yml
rating-deployment.yml
Kubernetes will start to roll out
the new version
*can be done w/o file updated: `kubectl set image deployment/rating rating=rating:new-version`
Kubernetes
Create a service in Kubernetes
kubectl create -f rating-service.yml
Kubernetes will create the service and
set rules to connect selected pods
Name
Label
Annotation
Type
Port
Selector
How to expose the service (and balancing)
What is the service port & Pods port
Which Pods should be the backend
Containers
Pod
Rating
Service
selector:
app=rating
Service
label: app=rating
*actually Service can be very powerful & complicated. Please refer the official k8s document
Kubernetes
Load Balancing in Kubernetes*
kube-proxy kube-proxy kube-proxy
Service
rating
Pods
Service
recipe
Pods
Node A Node B Node C
Load Balancer
(Provider or External)
*can be very detailed (ex: userspace proxy or iptable based) and have different ways to set up; reference: slides from KubeConf EU 2016
Kubernetes
How Kubernetes detect unhealthy Pod?
Containers
Pod
readinessProbe
livenessProbe
rating-deployment.yml
httpGet:
path: /
port: 8001
initialDelaySeconds: 30
periodSeconds: 180
Kubernetes detected it not alive
after the container get ready
respect restartPolicy to
restart the container
*For multi-container Pod, the overall Pod status depends on the restartPolicy and container state
SQL connection
Kubernetes
Why multi-container Pod?
GCloud SQL
Proxy
Pod: api-gateway
Gateway
Kong
Google
Cloud SQL
Proxied connection
External service
GCloud SQL
secrets
Mounted secrets
Raw username/
password
Mounted
shared
Kubernetes
Why multi-container Pod?
File
Uploader
Pod: recipe
Recipe Web
Server
Volume
Service
FrontEnd
App
Web port
File uploading
port
Kubernetes
Regression test for microservice (the most low-tech way)
test-job.yml
app
test-db
Job Pod
HTTP
client
script
Test Container Service Containers
trigger job
collect result & kill the pod
create job
resource
Kubernetes
And test it locally before push to production
Minikube on local console
(local kubernetes)
Kubernets platform for
Production
https://github.com/kubernetes/minikube
Frontend app
User
So now we have the infrastructure to manage our service
Ingredient
Recipe Rating
Logging
Balancer
Logging
Logging
Logging
Health
Monitor
Deployment
CI/CD
CI/CD
CI/CD
Kubernetes
Recipe
RESTful
Ingredient Rating
RESTfulRESTful
Frontend app
User
But we still left some complexity for
different endpoint for requests
Search
RESTful
Kong
API Gateway
Recipe
RESTful
Ingredient Rating
RESTfulRESTful
Frontend app
User
Complexity from request management and spec
Search
RESTful
Kong
rate limiting
oauth2, ...
different endpoints for
different services
We want to manage all request & feature at once
Kong
Add and manage rate limiting, oauth2, logging, IP whitelist... easily
RESTfulRESTfulRESTful RESTful
But to manage them on each service is just
stockpiling the complexity from management
Kong
Recipe
RESTful
Ingredient Rating
RESTfulRESTful
Frontend app
User
And front-end hopes manage only few
endpoints rather than micro-100 different
services
Search
RESTful
Kong
Recipe
RESTful
Ingredient Rating
RESTfulRESTful
Frontend app
User
Then we have Kong as API Gateway
Search
RESTful
Kong
API gateway
By Mashape
Kong
Kong is...
Kong core.lua
OpenResty
lua modules
Nginx
Plugin
lua modules
Admin API
API CRUD
Plugin CRUD
API endpoints
RESTfulRESTfulRESTful
"Proxy"
Interface
Consumer CRUD
User
Postgres/
Cassandra
Operator
Kong
Kong is...
Admin API
API endpoints
RESTfulRESTfulRESTful
"Proxy"
Interface
User
Postgres/
Cassandra
OperatorResource CRUD
plugin states
Rate
Limiting
OAuth
2.0
Logging
plugins
CORSACL
Bot
Detection
JWT Datadog
AWS
Lambda
(and more)
+plugins
Kong
Kong is...
Admin API
API endpoints
RESTfulRESTfulRESTful
"Proxy"
Interface
User
Postgres/
Cassandra
OperatorResource CRUD
Kong
Kong
Kong
Kong
Kong
Kong
Kong
cluster states
cluster
Kong is...
External Load Balancer
ex: from Kubernetes
Kong
Kong
Kong
Frontend app
User
Internal Upstream
Load Balancer
(DNS record based)
service.upstream.domain
192.168.0.1
192.168.0.2
192.168.0.3
...
How plugin works
diagram from: https://github.com/openresty/lua-nginx-module
Kong
handler.lua
nginx-kong.conf
access_by_lua_block
rewrite_by_lua_block
header_filter_by_lua
...
plugin
:rewrite
:access
:header_filter
...
iterate each plugin
(defined priority)
How plugin works
Kong
handler.lua
nginx-kong.conf
access_by_lua_block
rewrite_by_lua_block
header_filter_by_lua
...
plugin
:rewrite
:access
:header_filter
...
iterate each plugin
(defined priority)
Kong
dao
plugin
daos.lua
migrations
Postgres/
Cassandra
Kong
Kong
Kong
Kong
Kong
Kong
Kong
Kong & database migration
Postgres/
Cassandra
Kong
migration up
Kong
Kong
Kong
Kong
Kong
Kong
Kong
Kong & database migration
Postgres/
Cassandra
Kong
migration up
Kong
Kong
Kong
Kong
Kong
Kong
Postgres/
Cassandra
Kong
migration up
Kong
migration up
Kong
migration up
Kong
migration up
Kong
migration up
Kong
migration up
Kong
migration up
Kong
Combine all the things together
Recipe
RESTful
Ingredient Rating
RESTfulRESTful
Frontend app
User
Search
RESTful
API gateway
Deployment
Balancer
Health
Monitor
Logging
CI/CD
Postgres
Cassandra
Operator
Admin API
Endpoints +plugins
Advantages
1. Nginx is fast, therefore Kong is fast
2. Built-in plugins are good
3. Plugin system make customisation easy and clear
4. OpenResty is a great module collection
5. Docker ready, and also for other cloud formats, like AMI
6. Admin interface is also RESTful: it is possible to set up in pure cURL
7. Lua is easy to learn, and it is also friendly to bind C code
8. All the benefits we want for manage multiple RESTful microservices
9. Mashape provides enterprise support
Kong
Issues
1. Migration racing issue (Job + Deployment in k8s)
2. Plugins are not dynamic loaded
3. No resource limiting for individual plugin
4. Kong is not multi-tenant
5. No official web dashboard
6. Multiple configuration for Nginx and Kong
7. Restriction from the underlying Nginx & OpenResty
8. Lua is good, but not so good (also, hiring problem)
9. Cannot only upgrade Nginx for security reason means to re-build
whole the whole stack (maybe possible in embedded mode)
Kong
Recap
Microservices
Frontend app
User
Pre-microservice
Recipe/Ingredient/Rating
RESTful rate limiting
oauth2, ...
3rd-party service
Search
RESTful
Microservices
Recipe
RESTful
Ingredient Rating
RESTfulRESTful
Frontend app
User
rate limiting
oauth2, ...
Microservice
Search
RESTful
3rd-party service
Microservices
Frontend app
User
Problem: complexity
Ingredient
Recipe Rating
Logging
Balancer
Logging
Logging
Logging
Health
Monitor
Deployment
CI/CD
CI/CD
CI/CD
Container
For development & deployment (unit)
Deployment
CI/CD
CI/CD
CI/CD
Ingredient
Recipe Rating
Logging
Balancer
Logging
Logging
Logging
Health
Monitor
IngredientRecipe Rating Deployment
Container (Docker)
Container
Develop & deploy a Dockerized service
Nodes
Write code
Write Docker file
Build Docker image
Deploy image to nodes
Install code & dependencies
into the image
Instructions to build the image
(many details here, actually)
For your service
Container
Why Docker/Container?
Lightweight than VM (runtime overhead & image size)
but still keep isolation among services*
Hardware
Host OS
File System
Network
Process
Kernel
Process
Network
Process
File System
Guest OS
Process
* Isolation enough for most of cases, but can be leaky sometimes
Container
Production
Why Docker/Container?
Staging
CILocal
Easy to deploy everywhere w/ exactly the same dependencies encapsulated
rating.py
virtualenv
Debian packages
static content
environment variables
external volumes
Kubernetes
Kubernetes*
Ingredient
Recipe Rating
Deployment
Balancer
Health
Monitor
*well, not best for all, but enough for most of cases
Kubernetes
Different types of resources in Kubernetes
Deployment
Job
Service
Ingress
...
Define these files and command Kubernetes
to create/delete/update on Nodes
Kubernetes
Tiny Kubernetes-based microservice in brief
Containers
Pod
Containers
Pod
Containers
Pod
Containers
Pod
replica = 3
label: app=rating
label: app=recipe
Rating
Service
selector:
app=rating
Service
Recipe
Service
selector:
app=recipe
Service
/rating:
Rating
Service
/recipe:
Recipe
Service
Ingress
Backing
Recipe
Ingress
Public
Kubernetes
Create a Deployment in Kubernetes
Containers
PodName
Label
Annotation
Port
restartPolicy
imagePullPolicy
readinessProbe
livenessProbe
env
image
command
...
kubectl create -f rating-deployment.yml
rating-deployment.yml
Kubernetes will start the
deployment and pull the image
Build & push Docker image to registry
Frontend app
User
So now we have the infrastructure to manage our service
Ingredient
Recipe Rating
Logging
Balancer
Logging
Logging
Logging
Health
Monitor
Deployment
CI/CD
CI/CD
CI/CD
Kubernetes
Recipe
RESTful
Ingredient Rating
RESTfulRESTful
Frontend app
User
Complexity from request management and spec
Search
RESTful
Kong
rate limiting
oauth2, ...
different endpoints for
different services
Recipe
RESTful
Ingredient Rating
RESTfulRESTful
Frontend app
User
Then we have Kong as API Gateway
Search
RESTful
Kong
API gateway
By Mashape
Kong
Kong is...
Kong core.lua
OpenResty
lua modules
Nginx
Plugin
lua modules
Admin API
API CRUD
Plugin CRUD
API endpoints
RESTfulRESTfulRESTful
"Proxy"
Interface
Consumer CRUD
User
Postgres/
Cassandra
Operator
Kong
Kong is...
Admin API
API endpoints
RESTfulRESTfulRESTful
"Proxy"
Interface
User
Postgres/
Cassandra
OperatorResource CRUD
plugin states
Rate
Limiting
OAuth
2.0
Logging
plugins
CORSACL
Bot
Detection
JWT Datadog
AWS
Lambda
(and more)
+plugins
Kong
Kong is...
Admin API
API endpoints
RESTfulRESTfulRESTful
"Proxy"
Interface
User
Postgres/
Cassandra
OperatorResource CRUD
Kong
Kong
Kong
Kong
Kong
Kong
Kong
cluster states
cluster
Kong
Combine all the things together
Recipe
RESTful
Ingredient Rating
RESTfulRESTful
Frontend app
User
Search
RESTful
API gateway
Deployment
Balancer
Health
Monitor
Logging
CI/CD
Postgres
Cassandra
Operator
Admin API
Endpoints +plugins
Advantages
1. Nginx is fast, therefore Kong is fast
2. Built-in plugins are good
3. Plugin system make customisation easy and clear
4. OpenResty is a great module collection
5. Docker ready, and also for other cloud formats, like AMI
6. Admin interface is also RESTful: it is possible to set up in pure cURL
7. Lua is easy to learn, and it is also friendly to bind C code
8. All the benefits we want for manage multiple RESTful microservices
9. Mashape provides enterprise support
Kong
Issues
1. Migration racing issue (Job + Deployment in k8s)
2. Plugins are not dynamic loaded
3. No resource limiting for individual plugin
4. Kong is not multi-tenant
5. No official web dashboard
6. Multiple configuration for Nginx and Kong
7. Restriction from the underlying Nginx & OpenResty
8. Lua is good, but not so good (also, hiring problem)
9. Cannot only upgrade Nginx for security reason means to re-build
whole the whole stack (maybe possible in embedded mode)
Kong
Advantages
1. Nginx is fast, therefore Kong is fast
2. Built-in plugins are good
3. Plugin system make customisation easy and clear
4. OpenResty is a great module collection
5. Docker ready, and also for other cloud formats, like AMI
6. Admin interface is also RESTful: it is possible to set up in pure cURL
7. Lua is easy to learn, and it is also friendly to bind C code
8. All the benefits we want for manage multiple RESTful microservices
9. Mashape provides enterprise support
Kong
WebHack
English
Drinking
Hacking
Sharing
webhack.connpass.com
Algorithm
& Math
Web
Tech
Programming
Language
Japanese

More Related Content

PPTX
Introduction to Docker - 2017
PDF
Microservices & API Gateways
PPTX
Docker introduction
PDF
Kubernetes Basics
PPTX
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
PPTX
MySQL Monitoring using Prometheus & Grafana
PDF
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
PDF
SeaweedFS introduction
Introduction to Docker - 2017
Microservices & API Gateways
Docker introduction
Kubernetes Basics
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
MySQL Monitoring using Prometheus & Grafana
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
SeaweedFS introduction

What's hot (20)

PDF
Docker Introduction
PDF
Ansible Introduction
PPTX
Apache Flink and what it is used for
PPTX
Prometheus and Grafana
PPTX
Adopting OpenTelemetry
PPTX
Interop 2018 - Understanding Kubernetes - Brian Gracely
PDF
Hands-On Introduction to Kubernetes at LISA17
PDF
Open shift 4 infra deep dive
PPTX
Ansible presentation
PDF
Monitoring Kubernetes with Prometheus
ODP
Kubernetes Architecture
PDF
Kubernetes
PDF
Designing a complete ci cd pipeline using argo events, workflow and cd products
PDF
Kubernetes dealing with storage and persistence
PDF
Helm - Application deployment management for Kubernetes
PDF
OpenShift 4, the smarter Kubernetes platform
PPTX
Getting started with Docker
PPTX
Introduction to microservices
PDF
Kubernetes Introduction
Docker Introduction
Ansible Introduction
Apache Flink and what it is used for
Prometheus and Grafana
Adopting OpenTelemetry
Interop 2018 - Understanding Kubernetes - Brian Gracely
Hands-On Introduction to Kubernetes at LISA17
Open shift 4 infra deep dive
Ansible presentation
Monitoring Kubernetes with Prometheus
Kubernetes Architecture
Kubernetes
Designing a complete ci cd pipeline using argo events, workflow and cd products
Kubernetes dealing with storage and persistence
Helm - Application deployment management for Kubernetes
OpenShift 4, the smarter Kubernetes platform
Getting started with Docker
Introduction to microservices
Kubernetes Introduction
Ad

Similar to Gatekeeper: API gateway (20)

PDF
Lunar Way and the Cloud Native "stack"
PDF
La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)
PDF
Deploy Application on Kubernetes
PDF
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
PPTX
MicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexus
PDF
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...
PDF
Microservices with Kubernetes, Docker, and Jenkins
PDF
Javaone kubernetesjenkins
PDF
Microservices with Docker, Kubernetes, and Jenkins
PDF
給 RD 的 Kubernetes 初體驗
PDF
Java one kubernetes, jenkins and microservices
PPTX
Ultimate Guide to Microservice Architecture on Kubernetes
PDF
Red Hat and kubernetes: awesome stuff coming your way
PDF
Cloud-Native Operations with Kubernetes and CI/CD
PPTX
Sumo Logic Cert Jam - Advanced Metrics with Kubernetes
PDF
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
PDF
Creating microservices architectures using node.js and Kubernetes
PDF
Developer-Friendly CI / CD for Kubernetes
PDF
Federated Kubernetes: As a Platform for Distributed Scientific Computing
PDF
Cluster management with Kubernetes
Lunar Way and the Cloud Native "stack"
La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)
Deploy Application on Kubernetes
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
MicroProfile, Docker, Kubernetes, Istio and Open Shift lab @dev nexus
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...
Microservices with Kubernetes, Docker, and Jenkins
Javaone kubernetesjenkins
Microservices with Docker, Kubernetes, and Jenkins
給 RD 的 Kubernetes 初體驗
Java one kubernetes, jenkins and microservices
Ultimate Guide to Microservice Architecture on Kubernetes
Red Hat and kubernetes: awesome stuff coming your way
Cloud-Native Operations with Kubernetes and CI/CD
Sumo Logic Cert Jam - Advanced Metrics with Kubernetes
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
Creating microservices architectures using node.js and Kubernetes
Developer-Friendly CI / CD for Kubernetes
Federated Kubernetes: As a Platform for Distributed Scientific Computing
Cluster management with Kubernetes
Ad

More from ChengHui Weng (9)

PDF
Rust + python: lessons learnt from building a toy filesystem
PDF
12 Monkeys Inside JS Engine
PDF
Catch a spider monkey
PDF
Even more java script best practices
PDF
JavaScript Best Pratices
PDF
Yampa AFRP Introduction
PPTX
Introduction to Basic Haskell Components (In Chinese)
PDF
JSDC 2014 - functional java script, why or why not
PPTX
Things about Functional JavaScript
Rust + python: lessons learnt from building a toy filesystem
12 Monkeys Inside JS Engine
Catch a spider monkey
Even more java script best practices
JavaScript Best Pratices
Yampa AFRP Introduction
Introduction to Basic Haskell Components (In Chinese)
JSDC 2014 - functional java script, why or why not
Things about Functional JavaScript

Recently uploaded (20)

PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PPTX
Internet of Things (IOT) - A guide to understanding
PPTX
OOP with Java - Java Introduction (Basics)
PPT
Mechanical Engineering MATERIALS Selection
PDF
Digital Logic Computer Design lecture notes
PPTX
bas. eng. economics group 4 presentation 1.pptx
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PPTX
CH1 Production IntroductoryConcepts.pptx
PDF
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PDF
composite construction of structures.pdf
PDF
TFEC-4-2020-Design-Guide-for-Timber-Roof-Trusses.pdf
PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
PDF
Automation-in-Manufacturing-Chapter-Introduction.pdf
PDF
Operating System & Kernel Study Guide-1 - converted.pdf
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PDF
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
Internet of Things (IOT) - A guide to understanding
OOP with Java - Java Introduction (Basics)
Mechanical Engineering MATERIALS Selection
Digital Logic Computer Design lecture notes
bas. eng. economics group 4 presentation 1.pptx
Embodied AI: Ushering in the Next Era of Intelligent Systems
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
CH1 Production IntroductoryConcepts.pptx
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
CYBER-CRIMES AND SECURITY A guide to understanding
composite construction of structures.pdf
TFEC-4-2020-Design-Guide-for-Timber-Roof-Trusses.pdf
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
Automation-in-Manufacturing-Chapter-Introduction.pdf
Operating System & Kernel Study Guide-1 - converted.pdf
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx

Gatekeeper: API gateway

Editor's Notes

  • #4: JS -> Bytecode -> x64/x86 asm A simple example Retrval is just because we make this not in any assignment. If put it as assignment it's okay.
  • #13: JS -> Bytecode -> x64/x86 asm A simple example Retrval is just because we make this not in any assignment. If put it as assignment it's okay.
  • #25: Isolation enough for most of cases, but can be leaky sometimes
  • #29: JS -> Bytecode -> x64/x86 asm A simple example Retrval is just because we make this not in any assignment. If put it as assignment it's okay.
  • #50: JS -> Bytecode -> x64/x86 asm A simple example Retrval is just because we make this not in any assignment. If put it as assignment it's okay.
  • #73: Isolation enough for most of cases, but can be leaky sometimes