2-707.pptx
-
Embed
-
Social
Select the file type you wish to download
Slide Content
-
Slide 1 - Stephen Siciliano, Senior Program Manager
- Ilya Grebnov, Principle Software Engineer
- Logic Apps
- 2-707
- //build/ content is being presented by Microsoft Office Mix The video for this session will be available shortly
-
Slide 2 - Integration in Azure
- Azure App Service
- Azure
- Charts and code
- Screenshots
- Agenda
-
Slide 3
- March ‘15
- Azure App Service
- Launch
- July ‘14
- BizTalk 2013 R2 GA
- >1000s
- Community Newsletter Subscribers
- Feb ‘15
- API Management GA
- @ WPC
- App Integration Partner Award Nominations
- >100s
- Blog Posts driving adoption & engagement
-
Slide 4
- Some background…
-
Slide 5
- Apps using Microsoft Azure
- Agility
- Insight
- Hyper-scale
-
Slide 6 - Mobile Services
- Key app services in Azure today
- Azure Websites
- BizTalk Services
-
Slide 7 - Azure Websites
- Key Learnings
- Easy to get started & grow up as needed
- Rich ecosystem of templates, apps & tools
- Cost effective yet highly scalable
- Auto-load balance, auto-scale, GEO DR
- Needs deeper integration with business logic
- One of the largest Azure service!
-
Slide 8 - Key Learnings
- Validated the brand & cloud design patterns
- Hybrid is critical & a differentiator
- Feature & capability gaps:
- Out of box sources & destinations
- Pipeline templates, custom code support
- Long running workflows, parallel execution
- Needs a lot more investment!
- BizTalk Services
-
Slide 9
- Learning Effort
- Complexity of problem
- HACK ZONE
-
Slide 10
- Vision
- iPaaS
- Leader
- Rich
- Ecosystem
- Democratize
- Integration
-
Slide 11
- Power BI
- Power BI
- YourBusiness
- Your
- Customers
- YourBusiness
- Your
- Customers
- Empoweryour employees
- Engageyour customers
- Transformyour business
-
Slide 12
- Power BI
- Power BI
- insight
- agility
- internet scale
- to any device
- APPS
- YourBusiness
- Your
- Customers
- Empoweryour employees
- Engageyour customers
- Transformyour business
-
Slide 13 - Mobile Services
- Key app services in Azure today
- Azure Websites
- BizTalk Services
- Unique integrated offering
- Build rich, engaging & intelligent apps
- Scale as your business grows
- Introducing Azure App Service
-
Slide 14 - Api Apps
- Easily build and consume APIs in the cloud
- Web Apps
- Web apps that scale with your business
- LOGIC Apps
- Automate business process across SaaS and on-premises
- Mobile Apps
- Build Mobile apps for any device
- One integrated offering
-
Slide 16 - One low price
-
Slide 17 - Web Apps
- Full capability set available including:
- .NET, Node.js, Java, PHP, and Python
- WebJobs for long running tasks
- Integrated VS publish, remote debug…
- CI with GitHub, BitBucket, VSO
- Auto-load balance, Autoscale, Geo DR
- Virtual networking and hybrid connections
- Site slots for staged deployments
- Web apps run as-is
- no changes required
-
Slide 18 - New capabilities for Mobile apps:
- Webjobs for long running tasks
- CI with GitHub, BitBucket, VSO
- Auto-load balance, Autoscale, Geo DR
- Virtual networking and hybrid connections
- Site slots for staged deployments
- Mobile services plus
- a whole lot more
- Mobile Apps
-
Slide 19 - New 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 and
- on-premises systems
- LOGIC Apps
-
Slide 20 - Easily use cloud or custom APIs:
- Dozens of built-in APIs for popular SaaS
- An ecosystem of APIs for any need
- Create and publish custom, reusable APIs
- Visual Studio tooling with one click publish and remote debugging
- Automatic client SDK generation for many languages
- Create, consume and
- host APIs more easily
- Api Apps
-
Slide 21 - 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
- 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
-
Slide 22 - All of the Azure-native capabilities you’d expect
- Full audit logs of all management operations
- Role-based access control
- Deployment lifecycle with Resource Manager
- Resource Management API + resource PowerShell
- On-prem support with next release of Azure Pack
-
Slide 23 - Target audience is anyone who can use Azure
- … but not necessarily business users or consumers
-
Slide 24 - Azure Resource Manager
- The Azure Resource manager is a highly-scalable geo-distributed system that handles millions of resources across 100,000’s of subscriptions.
-
Slide 26 - Same underlying engine…
- Resource Manager
- Can handle thousands of parallel deployments per stamp
- Resilient against failure – retries with “at least once” guarantee
- Simple, declarative JSON template
- Automatically infers dependences between resources
- Logic Apps
- Can handle thousands of parallel runs per stamp
- Resilient against failure – retries with “at least once” guarantee
- Simple, declarative JSON definition
- Automatically infers dependences between actions
-
Slide 27 - {
- "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
- "contentVersion": "1.0.0.0",
- "variables": { "myWorkerSize": 0 },
- "parameters": {
- "siteName": { "type": "string" },
- "hostingPlanName": { "type": "string" },
- "siteLocation": { "type": "string" },
- "sku": {
- "type": "string",
- "allowedValues": [ "Free", "Shared", "Basic", "Standard" ],
- "defaultValue": "Free"
- },
- "workerSize": {
- "type": "string",
- "allowedValues": [ "0", "1", "2" ],
- "defaultValue": "0"
- }
- },
- "resources": [ {
- "name": "myplan1",
- "type": "Microsoft.Web/serverfarms",
- "apiVersion": "2014-04-01-preview",
- "location": "West US",
- "tags": { "dept": "test" },
- "properties": {
- "Name": "myplan1",
- "sku": "Free",
- "workerSize": "[variables('myWorkerSize')]",
- "numberOfWorkers": 1
- }
- },
- {
- "name": "[parameters('siteName')]",
- "type": "Microsoft.Web/sites",
- "apiVersion": "2014-04-01-preview",
- "location": "[parameters('siteLocation')]",
- "tags": {
- "[concat('hidden-related:', resourceGroup().id,
- '/providers/Microsoft.Web/serverfarms/',
- parameters('hostingPlanName'))]": "Resource"
- },
- "dependsOn": [
- "[concat('Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]"
- ],
- "properties": {
- "name": "[parameters('siteName')]",
- "serverFarm": "[parameters('hostingPlanName')]"
- },
- "resources": [ {
- "name": "MSDeploy",
- "type": "Extensions",
- "apiVersion": "2014-04-01-preview",
- "dependsOn": [
- "[concat('Microsoft.Web/Sites/', parameters('siteName'))]"
- ],
- "properties": {
- "packageUri": "https://auxmktplceprod.blob.core.windows.net/packages/ASPNETEmptySite.zip",
- "dbType": "None",
- "connectionString": "",
- "setParameters": { "Application Path": "[parameters('siteName')]" }
- }
- } ]
- } ]
- }
- {
- "$schema": "http://schema.management.azure.com/providers/Microsoft.Logic/schemas/2014-12-01-preview/workflowdefinition.json#",
- "contentVersion": "1.0.0.0",
- "parameters": {
- "keyword": {
- "defaultValue": "logicapps",
- "type": "string"
- }
- },
- "triggers": {
- "twitterconnector": {
- "recurrence": {
- "frequency": "Hour",
- "interval": 1
- },
- "type": "ApiApp",
- "inputs": {
- "apiVersion": "2015-01-14",
- "host": {
- "id": "/subscriptions/423db32d-4f58-4220-961c-b59f14c962f1/resourcegroups/bpmdemo003/providers/Microsoft.AppService/apiapps/twitterconnector",
- "gateway": "https://bpmdemo003423db32d4f584220961cb59f14c962f1.azurewebsites.net"
- },
- "operation": "TriggerOnNewTweet",
- "parameters": {
- "triggerId": "@workflow().name",
- "parameters": {
- "callbackUrl": "@accessKeys('default').primary.secretRunUri",
- "inputs": {
- "Keywords": "@parameters('keyword')"
- }
- }
- },
- "authentication": {
- "type": "Raw",
- "scheme": "Zumo",
- "parameter": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJtc25hbWUiOiJFTUEuUmVzb3VyY2VQcm92aWRlciIsImZ1bGxyb3ciOiJhbGwiLCJ2ZXIiOiIzIiwidWlkIjoic2lkOjE0Mjc0NzcwNjcxNDAiLCJpc3MiOiJ1cm46bWljcm9zb2Z0OndpbmRvd3MtYXp1cmU6enVtbyIsImF1ZCI6InVybjptaWNyb3NvZnQ6d2luZG93cy1henVyZTp6dW1vIiwibmJmIjoxNDI3NDc3MDY5fQ.ihuWiXgyOpsG64Du6sAnRXxZGM_wtrJF0CJH0y-Rxfs"
- }
- },
- "conditions": [
- {
- "expression": "@bool('false')"
- }
- ]
- }
- },
- "actions": {
- "dropboxconnector": {
- "type": "ApiApp",
- "inputs": {
- "apiVersion": "2015-01-14",
- "host": {
- "id": "/subscriptions/423db32d-4f58-4220-961c-b59f14c962f1/resourcegroups/bpmdemo003/providers/Microsoft.AppService/apiapps/dropboxconnector",
- "gateway": "https://bpmdemo003423db32d4f584220961cb59f14c962f1.azurewebsites.net"
- },
- "operation": "UploadFile",
- "parameters": {
- "FilePath": "@concat('tweets/logicapps/',triggers().outputs.body.Tweet_ID)",
- "content": {
- "Content": "@triggers().outputs.body.TweetText",
- "ContentTransferEncoding": "None"
- },
- "overwrite": true
- },
- "authentication": {
- "type": "Raw",
- "scheme": "Zumo",
- "parameter": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJtc25hbWUiOiJFTUEuUmVzb3VyY2VQcm92aWRlciIsImZ1bGxyb3ciOiJhbGwiLCJ2ZXIiOiIzIiwidWlkIjoic2lkOjE0Mjc0NzcwNjcxNDAiLCJpc3MiOiJ1cm46bWljcm9zb2Z0OndpbmRvd3MtYXp1cmU6enVtbyIsImF1ZCI6InVybjptaWNyb3NvZnQ6d2luZG93cy1henVyZTp6dW1vIiwibmJmIjoxNDI3NDc3MDY5fQ.ihuWiXgyOpsG64Du6sAnRXxZGM_wtrJF0CJH0y-Rxfs"
- }
- },
- "conditions": [ ]
- }
- },
- "outputs": { }
- }
-
Slide 28 - … more power
- Resource Manager
- 8 functions for basic referencing and string functions
- Can only PUT resources into resource groups
- Auth must be through AAD
- Triggered manual through API
- Logic Apps
- Over 50 functions from string manipulations to math, to sets operations, to logical operators
- All HTTP operations supported on any arbitrary endpoint
- Supports many OAuth providers, AAD, Cert auth, or Basic auth
- 4 different ways to be triggered
-
Slide 29 - Basic scenario
- Using WebHooks to start a workflow
-
Slide 30 - User adds an item to a list in their Mobile app
- Mobile app has the callback URI for the workflow
- When the callback URI is called, the workflow immediately starts the “first*” action
- All dependent actions in the workflow continue as normal
-
Slide 31 - Actions with simple orchestration
- 3 ways to introduce dependences between actions:
- Implicitly – whenever you reference the output of an action you’ll depend on that action executing first
- Explicit “dependsOn” condition – you can mark certain actions to run only after previous ones have completed“dependsOn” : “twitterconnector”
- Explicit “expression” condition – a complex function that evaluates properties of other actions“expression” : “@equals(actions(‘twitterconnector’).code, ‘InternalServerError’)”
-
Slide 32 - Actions that run in parallel will
-
Slide 33 - Triggering a Logic app “Run”
- Recurring schedule – “every X hours”
- Polling an API for a response
- A 200 response means “run” -- a 202 response means “wait”
- Can use trigger state to get information on the previous execution
- Registering an API App to “push” to a workflow
- Using a custom contract implemented for API Apps
- WebHook
- Every workflow has an endpoint you can POST to from any web service
- Supports Basic auth for simple systems
- Manually
- User can click the “Run Now” button in the portal
-
Slide 34 - The Next Level
-
Slide 35 - Repeating
- Loop a single action over a list of items
- Runs the action N times
- You can get at all of the statuses for each action
- Tip: when you have multiple collections use:
- "repeat" : "@range(0,length(body('connector1')))"
- …
- "inputs" : "@concat(body('connector1')[repeatItem()], body('connector2')[repeatItem()])"
-
Slide 36 - Conditionals
- Logic on a trigger or action
- For triggers conditionals are post-conditions
- For actions conditionals are pre-conditions
- You can do conditionals inside of repeats to perform as a filter
-
Slide 37 - Parameters
- Dev Workflow
- Prod Workflow
- Definition
- Declares parameters
- Uri: @parameters (‘endpoint’)
- Definition
- (identical)
- Declares same parameters
- Uri: @parameters (‘endpoint’)
- Parameters
- Provides DEV config
- Endpoint : “http://int.mysite.net”
- Parameters
- Provides PROD config
- Endpoint : “http://mysite.net”
- Re-using values, or even complex objects, throughout the definition, which makes it easier to comprehend
- Separate out config from the definition itself, making sharing easy, as well as across different environments.
-
Slide 38 - Messages
- Large message support is built-in (<100 MB)
- To handle binary blobs of data you can:
- 1. Externalize state (save it to Azure storage)
- 2. Base64 encode it and return it directly in the workflow (workflows are JSON)
- All messages are archived
- Retention period depends on the App Service plan
-
Slide 39 - Debugging tips
- Try calling the API App directly:
- POST {gatewayURI}/api/service/invoke/{api app name}/{operation name}?api-version=2015-01-14
- x-zumo-auth : {your token}
- This may be a faster way to iterate if you are seeing failures
- Use requestb.in to debug triggers – you can inspect all incoming requests
- Enable logging for the Web app hosting the API App
- *New* you can Cancel a Run if it is failed
-
Slide 40 - EAI Features
- v1
- v2
- XML Transformation
- Validation
- Content Based Routing
- Request Response
- AD Auth
- OAuth
- Flat File
- JSON
- XML
- Connector Extensibility
- Custom Code
- B2B Features
- v1
- v2
- AS2 / X12 / EDIFACT
- Agreement Decoupling
- Batching / De-batching
- Archiving
- Transform
- Trading Partner Management (API & Portal
- Vertical Extensibility
- Tracking
- Customer Code
- Workflow Features
- v1
- v2
- Long Running
- Browser Designer
- Control Flow
- Instance Management
- Tracking
- Large Messages (1GB)
- Config Support
- Expressions
- Rules Features
- v1
- v2
- Vocabulary
- Policy
- Sources (XML only today)
- Test Policy
- Browser Rule Editing
- Other Features
- v1
- v2
- OOB Connectors
- Marketplace
- Hybrid Connectivity
- Custom Code Isolation
- Unified Portal
- Auto Update with Opt Out
- V1 = BizTalk Services
- V2 = App Services (BizTalk + Logic)
-
Slide 41 - Api Apps
- Easily build and consume APIs in the cloud
- Web Apps
- Web apps that scale with your business
- LOGIC Apps
- Automate business process across SaaS and on-premises
- Mobile Apps
- Build Mobile apps for any device
- App Service
-
Slide 42
- Get Started w/ App Service!
- Logic & API Apps in preview
- Build & submit your API Apps (connectors)
- Get started for free @ azure.com
-
Slide 43
- RoadmapInvestments
- Feedback & data-driven development
- Ship Azure App Service on-premises
- Ship major version of BizTalk Server in 2016
- Grow the Ecosystem & Community
-
Slide 44
- Resources
- PMs, MVPs & community @ //build/
- https://tryappservice.azure.com
- Twitter: @iscsus, #BizTalkSummit2015
-
Slide 45
- Thank you!
-
Slide 46 - Improve your skills by enrolling in our free cloud development courses at the Microsoft Virtual Academy.
- Try Microsoft Azure for free and deploy your first cloud solution in under 5 minutes!
- Easily build web and mobile apps for any platform with AzureAppService for free.
- Resources