Extend your API

with

Functions and API Gateways

A cloud approach

About me
Victor Picture

Victor Martin

Technology Product Strategy Manager

Oracle Logo Oracle Cloud

Former Software Developer at:

  • 42Crunch - API Security
  • Axway - API Gateway
  • FEXCO - Financial services
  • Indra - Air Traffic Management

What is here for you

Diagram

Serverless

“The phrase 'serverless' doesn’t mean servers are no longer involved.
It simply means that developers no longer have to think that much about them.
Computing resources get used as services without having to manage around physical capacities or limits.”
— by Ken Fromm (2012)

Provisioning Compute Units Total cost of ownership of servers has fallen dramatically.

Years / Months / Hours / Seconds

Serverless is the way to achieve it.

What is Serverless?

  • Abstraction on servers
  • Auto-scale and Auto-provisioning
  • Granular cost
  • Highly Available

Serverless is more than Functions

  • Functions As A Service
  • DataBase As A Service
  • Messaging As A Service
  • Storage As A Service
  • ... and more

API Gateway

Deliver APIs to End User in Production

API Gateway

  • Reverse Proxy for APIs
  • Single endpoint for a group of APIs
  • Public or Private
  • Protect APIs from misuse
  • Improve performance
Set up an API Gateway

Legacy Backend Routing


						"routes": [
							{
								"path": "/legacy/weather",
								"methods": ["GET"],
								"backend": {
									"type": "HTTP_BACKEND",
									"url": "https://api.example.com/api/v1/weather",
									"connectTimeoutInSeconds": 45,
									"readTimeoutInSeconds": 15,						
									"sendTimeoutInSeconds": 15,
									"isSSLVerifyDisabled": false
							}
						]
						

Serverless Backend Routing


							"routes": [
								{
								"path": "/primefactors/{number}",
								"methods": ["GET"],
								"backend": {
									"type": "ORACLE_FUNCTIONS_BACKEND",
									"functionId": "function-id"
								}
							]
						

Rate Limiting


						"requestPolicies": {
							"rateLimiting": {
								"rateKey": "CLIENT_IP",
								"rateInRequestsPerSecond": 30
							}
						}
					

Cache


						{
							"type": "EXTERNAL_RESP_CACHE",
							"servers": [
								{
									"host": "redis.example.com",
									"port": 6379
								}
							],
							"authenticationSecretId": "secret-id",
							"authenticationSecretVersionNumber": 1,
							"isSSLEnabled": true,
							"isSSLVerifyDisabled": false,
							"connectTimeoutInMs": 1000,
							"readTimeoutInMs": 250,
							"sendTimeoutInMs": 1000
						}
					

Observability

Logging

API Gateway Logging

Metrics & Alarms

API Gateway Backend Latency

Try it

Follow the demo on GitHub
GitHub Repo QR Code

Thank you

Q&A

Check what I am working on at github.com/vmleon