code camp auckland 2015 - dev1 microsoft api approaches 101

36
DEV1 – How to Design, Build, Deploy and Manage API’s in Microsoft Azure Presented by Nikolai Blackie Adaptiv Integration 3 rd of October 2015

Upload: nikolai-blackie

Post on 22-Jan-2017

360 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

DEV1 – How to Design, Build, Deploy and Manage API’s in Microsoft AzurePresented by Nikolai BlackieAdaptiv Integration3rd of October 2015

Page 2: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

Code Camp Auckland 2015 Demo Scenario

• Adding an API• Leveraging Swagger• Continuous Integration• Composition via Logic Apps• Expose via API Management

Why API’s? What Microsoft AzureAPI tools & components

you can use?

Page 3: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

APIs are the engines of growthMonetize data or services

Open new

channels

Innovate faster

Make product into a

platform

Page 4: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

Common scenarios

Modernize legacy backendsPackage APIs into tiersEnforce usage limitsProvide support and receive feedback

Mobile enablement

Partner ecosystem

Optimize and secure backendAuthorize and throttle requestsGet visibility into usage and healthDrive developer adoption

Business agility

Normalize legacy backendsBuild the catalog of APIsAccept organizational IDRespect org structure

Page 5: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

Software-defined Architecture for Applications

Page 6: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

Software-defined Architecture for Applications – Microsoft Technologies

API ManagementApp Services

API AppsLogic Apps

Azure Service BusWebAPI & WCF

Page 7: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

API APPSEasily build and

consume APIs in the cloud

WEB APPSWeb apps that scale with

your business

LOGIC APPSAutomate business

process across SaaS and on-premises

MOBILE APPSBuild Mobile apps for

any device

Integration Platform as a ServiceAzure App Services

Page 8: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

Resource Group – App Service

API App Gateway

other Azure services…

Clients• Web • Mobile (iOS)• Flow 3rd party

SaaS

API Apps from Gallery

Salesforce Connector

Office 365 Connector

Custom Code

Mobile App (Data

Access)

Direct deployed

Logic Apps

On-premise

s

Logic App (also from gallery)

Logic App Definitions

Token Store

Azure AD

Twilio Connector

Consent Server

Facilitates SaaS login and token refresh

Azur

e AD

API Apps Architecture Scenario

Page 9: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

Resource Group – App Service

API App Gateway

Clients• Web • Mobile (iOS)• Flow

API Apps from Gallery

HTTP Connector

Custom Code

Product API

Order API

Logic Apps

Logic App (also from gallery)

Logic App Definitions

API Apps Code Camp Demo Scenario

Logistics API

Build & Deploy

Source Control

App Insights

Page 10: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

Azure API Apps provide a rich platform and ecosystem for building, consuming, and distributing APIs in the cloud and on-premises.

Page 11: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

• Box• Chatter• Delay• Dropbox• Azure HD Insight• Marketo• Azure Media Services• OneDrive• SharePoint • SQL Server• Office 365• Oracle

• QuickBooks• SalesForce• Sugar CRM • SAP• Azure Service Bus• Azure Storage• Timer / Recurrence• Twilio• Twitter• IBM DB2 • Informix• Websphere MQ

• Azure Web Jobs• Yammer• Dynamics CRM• Dynamics AX• Hybrid Connectivity

• HTTP, HTTPS • File• Flat File• FTP, SFTP• POP3/IMAP• SMTP• SOAP + WCF

• Batching / Debatching

• Validate• Extract (XPath)• Transform

(+Mapper)• Convert (XML-JSON)• Convert (XML-FF)

• X12• EDIFACT• AS2• TPMOM• Rules Engine

Connectors

Protocols BizTalk Services

Built-in API Connectors

Page 12: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

API App Settings for Custom Applications

1) URL for external access2) Host that contains API settings3) Shared Resource Group Gateway

Page 13: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

Demo: API AppsHow to make your own

Page 14: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

SwaggerDocument Generate

Page 15: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

Swagger Configuration

1) Set XML documentation file ‘bin\XmlComments.xml’

Note All Configurations2) Update SwaggerConfig

IncludeXmlComments to string.Format(@"{0}\bin\XmlComments.xml",

System.AppDomain.CurrentDomain.BaseDirectory)

Page 16: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

Swagger Document Access

1) WebAPI via web app URL /swagger/ui/index – UI documentation /swagger/docs/v1 – Swagger DOC

2) API App Download swagger API Host URL + /swagger/docs/v1 – Swagger DOC

Page 17: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

Demo: SwaggerSpend more time coding, less time documenting

Page 18: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

PRODUCT BACKLOG

RELEASE PIPELINE

Sprint Monitor

Define

Deliver

Operate

Sprint

Define

DeliverCUSTOMERS

Automate!ReleaseManagement

Page 19: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

Visual Studio API Build Solution Configuration

MSBuild Arguments to support web deployment/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.stagingDirectory)"

Page 20: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

Visual Studio API Deploy Solution Configuration

• Deploy automatically to slots or live• Web Deploy Package (based on MSBuild Arguments)

$(build.stagingDirectory)\**\AdtvDemo.WUS.WebAPI.Logistics.zip$(build.stagingDirectory)\**\AdtvDemo.WUS.API.Products.zip

Page 21: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

Demo: API CI/CDHow to automate via TFS 2015 Online

Page 22: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

Logic Apps for easy automation• No code designer for rapid creation

• Dozens of pre-built templates to get started

• Out of box support for popular SaaS and on-premises apps

• Use with custom API apps of your own

• Biztalk APIs for expert integration scenarios

Automate SaaS andon-premises systems

LOGIC APPS

Page 23: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

App Logic Design Surface

Page 24: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

App Logic Operational Insight

Page 25: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

Demo: Logic AppsHow to make your own

Page 26: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

WEB USERS

WEB SITE

YOUR ORGANIZATION

APP DEVELOPERS

USERS

MOBILE APPS

SOCIAL APPS

PARTNERS ANDAFFILIATES

API

AZURE API MANAGEMENT

DEVELOPER PORTALREGISTRATIONDOCUMENTATIONINTERACTIVE API CONSOLEDEVELOPER ANALYTICSAPP GALLERYFORUMSNEWSISSUESWIKI

API PROXYSCALINGCACHINGMONITORINGTRAFFIC MANAGEMENT

ADMIN PORTALAPI PUBLISHINGSUBSCRIPTION MANAGEMENTSECURITYMEDIATIONCONTENT PUBLISHINGSITE CUSTOMIZATIONISSUE MANAGEMENTANALYTICSREPORTS

Azure API Management

Page 27: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

Azure API Management – Import Swagger

• Import API /WebAPI App via Swagger• /swagger/docs/v1 – Swagger DOC• Or download Swagger definition

• Add API to one or more API products

Page 28: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

Azure API Management - Policies

• Utilise Policies to enforce security or modify API• Authentication• Format Conversion• Cache etc

Page 29: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

Demo: Expose APIsHow to make your own

Page 30: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

Q & A

T: @nikolaiblackie

E: [email protected]

Page 31: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

ResourcesFind out more

Page 33: Code Camp Auckland 2015 - DEV1 Microsoft API Approaches 101

TFS 2015 Builds

https://msdn.microsoft.com/Library/vs/alm/Build/overview

https://github.com/Microsoft/vso-agent-tasks/blob/master/README.md