implement api gateway using azure api management

17
IMPLEMENT API GATEWAY USING AZURE API MANAGEMENT ALEXANDER LAYSHA, CHIEF SOFTWARE ENGINEER AT EPAM SYSTEMS

Upload: alexander-laysha

Post on 16-Apr-2017

349 views

Category:

Engineering


9 download

TRANSCRIPT

Page 1: Implement API Gateway using Azure API Management

IMPLEMENT API GATEWAY USING AZURE API MANAGEMENT

ALEXANDER LAYSHA,CHIEF SOFTWARE ENGINEER AT EPAM SYSTEMS

Page 2: Implement API Gateway using Azure API Management

AGENDA

• WHY WE IMEPLEMENTED API GATEWAY• INTRODUCTION TO AZURE API MANAGEMENT• DESIGN FOR PRICING TIERS• OVERVIEW OF PUBLISH AND DEVELOPER PORTALS• POLICY DISCUSSION• OPTIONS FOR SECURITY

Page 3: Implement API Gateway using Azure API Management

EVOLUTION OF OUR PROJECT

UI

SOAP

REST API 1

REST API 2

REST API N

REST APIs

DEVELOPERS

APPS

BEFORE AFTER

MONOLITH APP

Page 4: Implement API Gateway using Azure API Management

OUR CONCERNS IN API MANAGEMENT

• ACCESS TO PUBLIC & INTERNAL APIs• VISIBILITY OF APIs TO CUSTOMERS BASE ON PRICING TIER• CONTROL OF API USAGE BASE ON PRICING TIER• ANALYTICS OF APIs USAGE BY CUSTOMERS• FUTURE NEEDS AND GROWTH PLANS

Page 5: Implement API Gateway using Azure API Management

HOW WE ADDRESSED CONCERNS?

UI

SOAP

REST API 1

REST API 2

REST API N

REST APIs

DEVELOPERS

APPS

BEFORE AFTER

MONOLITH APP

API G

ATEW

AY

Page 6: Implement API Gateway using Azure API Management

A BIT ABOUT API GATEWAY & HISTORY

API GATEWAY

SERVICE

TRANSFORMATION

SECURITYUSAGE QUOTAS & LIMITS

MONETIZATION

LOGS

ANALYTICS DEV SUPPORT

VISIBILITY

• CREATE API TO EXPOSE BACK-END SERVICES

• ACTS AS REVERSE-PROXY

• VENDORS: Apigee, WSO2, MuleSoft, AWS

API Gateway, Azure API Management

Page 7: Implement API Gateway using Azure API Management

INTRO TO AZURE API MANAGEMENT

API

DEVELOPER PORTAL

PUBLISHERPORTAL

PROXY

AZURE API MANAGEMENT

PUBLISHER / ADMIN

DEVELOPERS

APPS

BACKEND

Can be hosted anywhere: public

cloud or on-premises

Page 8: Implement API Gateway using Azure API Management

API MANAGEMENT FEATURES

DEVELOPER PORTAL PUBLISHERPORTAL

PROXY

AZURE API MANAGEMENT

REGISTRATIONDOCUMENTATIONINTERACTIVE API CONSOLEDEVELOPER ANALYTICSAPP GALLERYFORUMSNEWSISSUESWIKI

API PUBLISHINGSUBSCRIPTION MANAGEMENTSECURITYMEDIATIONCONTENT PUBLISHINGSITE CUSTOMIZATIONISSUE MANAGEMENTANALYTICSREPORTS

SCALINGCACHINGMONITORINGTRAFFIC MANAGEMENTTRANSFORMATION

Page 9: Implement API Gateway using Azure API Management

API MANAGEMENT ENTITIES

USER PRODUCTOPEN|PROTECTED

API

RATE LIMITS & QUOTAsGROUP

Page 10: Implement API Gateway using Azure API Management

DEMO: OUR DESIGN FOR PRICING TIERS

TRIAL PRODUCTPROTECTED

PAID PRODUCTPROTECTED

SYS PRODUCTPROTECTED

Health Check API

LIMITS FOR TRIALSYS GROUP LIMITS FOR

PAIDTRIAL

GROUPADMIN GROUPUNLIMITED

SYS ACCOUNT

TRIAL ACCOUNT

PAID ACCOUNT

ADMIN ACCOUNT

API NAPI 2API 1

APIs

CUST

OM

ER

PRO

DUCT

S

INTERNAL USE ADMIN USE BUSINESS USE

PAID GROUP

Page 11: Implement API Gateway using Azure API Management

API MANAGEMENT POLICY

“In Azure API Management, policies are a powerful capability of the system that allow the publisher to change the behavior of the API through configuration. Policies are a collection of Statements that are executed sequentially on the request or response of an API. ”

POLICY SCOPES ARE EVALUATED IN THE FOLLOWING ORDER:• Global scope• Product scope• API scope• Operation scope

Page 12: Implement API Gateway using Azure API Management

POLICY TEMPLATE<policies> <inbound> <!-- statements to be applied to the request go here --> </inbound> <backend> <!-- statements to be applied before the request is forwarded to the backend service go here --> </backend> <outbound> <!-- statements to be applied to the response go here --> </outbound> <on-error> <!-- statements to be applied if there is an error condition go here --> </on-error></policies>

POLICY REFERENCE: https://docs.microsoft.com/en-us/azure/api-management/api-management-policy-reference

Page 13: Implement API Gateway using Azure API Management

HOW TO DEBUG API MANAGEMENT?

• API INSPECTOR TOOLHEADER: Ocp-Apim-Trace = true

• EVENT HUB LOGGER<log-to-eventhub logger-id ='logger-id'> @( string.Join(",", DateTime.UtcNow, ...))</log-to-eventhub>

Page 14: Implement API Gateway using Azure API Management

DEMO: POLICY TO DOWNLOAD A FILE

DEVELOPERS

AZURE BLOB STORAGE

CUST

OM

PO

LICY

AZURE WEB APP

AZU

RE A

PI M

ANAG

EMEN

T

URL + SAS

2

5

URL + SAS

FILE ID

3

4

FILE

FILE ID

FILE

1

6

Page 15: Implement API Gateway using Azure API Management

WHAT ARE OPTIONS TO SECURE API?

• SECURITY BY OBSCURITY• BASIC AUTH• MUTUAL SSL• VNET• OAUTH 2.0• OPENID

Page 16: Implement API Gateway using Azure API Management

DEMO: OUR DESIGN FOR SECURITY

DEVELOPERS AZURE API MANAGEMENT

SUBSCIPTION KEY

AZURE WEB APPs

CERT

IFIC

ATI

ON

FIL

E

BUSINESS PROCESS TO

REGISTER NEW CUSTOMER

SUBSCIPTION KEY

API NAPI 1

Page 17: Implement API Gateway using Azure API Management

Q&A