[wso2con eu 2017] cloud-native api management

20
Architect, WSO2 Cloud-Native API Management Nuwan Dias

Upload: wso2-inc

Post on 21-Jan-2018

218 views

Category:

Technology


0 download

TRANSCRIPT

Architect, WSO2

Cloud-Native API Management

Nuwan Dias

Cloud Native?

Cloud Native

Containers Microservices

Dev-Ops CI/CD

API Manager Distribution

API Manager Core Gateway Key Manager

Traffic Manager Analytics

API Core

Product REST API Layer

Business Logic Layer

Persistence Layer

Message Broker

Hosts APIs that expose functionality of the API Publisher, Store, Admin and Analytics Apps

Lightweight Message Broker to notify updates to Gateways

API Gateway

Security (OAuth2.0, APIKey, etc.)

Rate Limiting

Additional Policies (e.g.Threat Protection)

Analytics

Message Mediation and Routing

Integration at the Edge

API

Gat

eway Micro Service

Micro Service

Integration at the EdgeJust Got a Whole Lot Better With Ballerina!

Scaling the API GatewayAPI Deployment - Pull vs Push Model

API Manager Core

Gateway 1

Gateway 2

Product UI

Other Clients

create_api

Notifications Sent to Gateways

Request API artifact and Deploy

1

2

3

3

Partitioning Gateways using LabelsHybrid Deployments

API Manager Core

Gateway 1[labels = us-east]

Gateway 2[labels =

sydney, eu]

Product UI

Other Clients

create_api (label=us-east)

get_apis(labels=sydney, eu)

get_apis(labels=us-east)

create_api (label=sydney)

• Offline execution capability• Bootstrapped with necessary APIs and Keys for

allowing low-latency, secure access to Micro Services

• Has edge proxy/integration capabilities• Immutability• Low memory, CPU and I/O

The Micro Gateway Architecture

API Developer - Discoverability of Endpoints

API Gateway - Runtime Service Discovery

Service Discovery

K8S/OpenShift cluster

Service 1

Service 2

Service 3

Service 4

API Publisher

API Gateway

• An API Publisher has the ability to spawn a Gateway container per API from the Publisher Itself

• Facilitate Edge Integrations with no impact to other APIs

Private Jet!A Container per API

API Manager Core

GW 1GW 2

GW 3

GW 4

K8S/OpenShift cluster

Stateless UIs

UI Architecture

WebAppWeb Browser API Core OAuth

Server

login (un, pw)get_token (un, pw, ci, cs)

response (token)set_cookies(token)

api_request (token)validate_token(token)

response (data)

render_html(data)

Multi Tenancy: Shared

Runtime

Data

Tenant 1 Tenant 2 Tenant n

Multi Tenancy: Isolated

Runtime

Data

Tenant 1 Tenant 2 Tenant n

Runtime

Data

Tenant 1 Tenant 2 Tenant n

Deployment Automation

CLI

Publisher(Production)

Push

API Package

Publisher(Staging)

API Package

CLI

Pull

user$ wso2api pull Foo:v1 staging user$ wso2api push Foo:v1 production

APIM_DB

APIM_DBRead Write

• Documentation - https://docs.wso2.com/display/AM300/WSO2+API+Manager+Documentation

• Carbon Repo - https://github.com/wso2/carbon-apimgt/ • Product Repo - https://github.com/wso2/product-apim/

Reference Links and How to Contribute

wso2.com