presenta
www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 1
Overview di
Azure Logic Apps
Marco Parenzan – Microsoft Azure MVP
Agenda
• Overview di Azure Logic Apps
• Architettura di un Workflow
• Demo
www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 2
Platform Services
Security &
Management
Infrastructure Services
Web Apps
Mobile
Apps
API
Management
API
Apps
Logic
Apps
Notification
Hubs
Content Delivery
Network (CDN)
Media
Services
HDInsight Machine
Learning
Stream
Analytics
Data
Factory
Event
Hubs
Mobile
Engagement
Active
Directory
Multi-Factor
Authentication
Automation
Portal
Key Vault
Biztalk
Services
Hybrid
Connections
Service
Bus
Storage
Queues
Store /
Marketplace
Hybrid
Operations
Backup
StorSimple
Site
Recovery
Import/Export
SQL
Database
DocumentDB
Redis
Cache Search
Tables
SQL Data
Warehouse
Azure AD
Connect Health
AD Privileged
Identity
Management
Operational
Insights
Cloud
Services
Batch Remote App
Service
Fabric Visual Studio
Application
Insights
Azure SDK
Team Project
VM Image Gallery
& VM Depot
Modellare
una
applicazione
con PaaS in
Azure
www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 4
API APPS
Costruisci e consuma API
nel Cloud
WEB APPS
Applicazione che scalano con
il tuo business
LOGIC APPS
Automatizza i processi di
business attraverso SaaS e
on-premises
MOBILE APPS
Applicazioni mobile
per ogni dispositivo
Logic Apps
sono Azure
PaaS Apps
• Full audit logs per tutte le operazioni di management
• Role-based access control
• Gestione del Deployment con Resource Manager
• Resource Management API + resource PowerShell
 Azure Resource manager è un sistema altamente scalabile,
geodistribuito che può gestire milioni di risorse su centiaia di
migliaia di sottoscrizioni
 Può solo aggiungere cose ad un resource group (non toglierle)
• Supporto on-premise con Azure Stack
• Supporta diversi protocolli di autenticazione: AAD, Cert auth, or
Basic auth
www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 5
Modello per
le Logic App
• Workflow
Processo espresso da un flusso (il
dato viene elaborato in vari step)
• Step fatto di API
Il workflow è un orchestratore
Un mondo di «microservices»
• Connettori
API pubbliche (SaaS)
WebHooks
www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 6
Workflow
Integrazione
www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 7
Learning/Co
dingEffort
Complexity
of problem
BizTalk ServicesBizTalk Server
First version of BizTalk build ‘cloud-up’
Already running mission critical
workload for large customers
Leader in integration on-premises
Handles mission critical workloads for
hundreds of customers
Renowned brand
Connettori
www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 8
• 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
Connettori (SaaS APIs)
Protocolli (Custom APIs) Servizi BizTalk
Esperienza
«designer»
www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 9
Struttura
JSON di un
workflow
• {
• "parameters": {
• ...
• },
• "triggers": {
• ...
• },
• "actions": {
• ...
• },
• "outputs": {
• ...
• }
• }
www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 10
Azioni
• L’azione è composta da
 Una precondizione di esecuzione
 Un loop di esecuzione sugli input
www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 11
"<name-of-the-action>": {
"type": "Http|ApiApp|Workflow",
"conditions": [ "<array-of-pre-conditions>" ],
"repeat": "<array-to-repeat-over>",
"inputs": { "<action-specific-inputs>" }
}
Linguaggio
• Funzioni utilizzabili:
 Collection (first, contains, length, intersection, take, skip…)
 String (concat, substring, replace)
 Logical (equals, less, greater, lessOrEquals, and, or, not…)
 Conversion (int, string, float, bool, coalesce, base64)
 Math (add, sub, mul, div, mod, min, max, range)
 Date (utcnow, addseconds, addminutes, addhours, adddays)
• Template Language Expression
 JSON values in template can be literals or expressions (special kinds
of strings)
 Denoted by the '@' symbol: "@exp"
 Or in form of string interpolation "… @{ exp } …"
 Expressions evaluation
 Static (agnostic to execution context): "@sum(3, 5)"
 Dynamic (can only evaluated at runtime): "@outputs('act1').body"
www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 12
Messaggi
• Supporto per messaggi max 100Mb
 Tutti I dati vengono serializzati in JSON
• Per gestire blob binari:
 Salvo su Azure Storage
 Il dato viene codificato BASE64 e immesso nel workflow
• Tutti I messaggi sono salvati
 Memorizzati con un tempo di retention dipendente
dall’ App Service plan
www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 13
Parametri
• Servono a differenziare la definizione (del particolare workflow)
dalla configurazione (del particolare ambiente)
www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 14
"parameters": {
"<parameterName>": {
"type": "<type-of-parameter-value>",
"defaultValue": "<optional-default-value-of-parameter>",
"allowedValues": [ "<optional-array-of-allowed-values>" ]
}
}
Dipendenze
• Implicita, quando si referenzia l’output di un’altra azione
• Esplicita, quando si specifica il parametron “dependsOn”
 “dependsOn” : “twitterconnector”
• Espressione (Esplicita), quando in una condizione di espressione
si riferisce a qualche altra azione
 “expression” : “@equals(actions(‘twitterconnector’).code,
‘InternalServerError’)”
www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 15
Triggers
• Definiscono come il workflow può svegliarsi
www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 16
"<name-of-the-trigger>": {
"type": "Http|ApiApp|Recurrence",
"inputs": { "<trigger-specific-inputs>" },
"recurrence": {
"frequency": "Second|Minute|Hour|Week|Month|Year",
"interval": "<recurrence interval in units of frequency>"
},
"conditions": [ "<array-of-post-conditions>" ]
}
WebHook
POST
{
“outputs”:
{
“par”: 20
}
}
Tipi di
Trigger
www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 17
Manuale
Ricorrenza API AppTriggerAPI Polling
200: run
202: wait
trigger state
DEMO
www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 18
Conclusioni
• DEVs
 Studio 2012)
 OEC107 Cloud Computing con Microsoft Azure
 MOC10978 Introduction to Azure for Developers (studenti)
 MOC20487 Developing Windows Azure and Web Services (Visual
Studio 2012)
 MOC20532 Developing Microsoft Azure Solutions
• IT Pro
 MOC10979 Microsoft Azure® Essentials
 MOC20533 Implementing Microsoft Azure Infrastructure Solutions
www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 19
Contatti
OverNet
Education
OverNet Education
info@overneteducation.it
www.overneteducation.it
Tel. 02 365738
@overnete
www.facebook.com/OverNetEducation
www.linkedin.com/company/overnet-solutions
www.wpc2015.it
www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 20
Q & A
Marco Parenzan
marco [dot] parenzan [at] 1nn0va [dot] it
@marco_parenzan
www.facebook.com/parenzan.marco
https://it.linkedin.com/in/marcoparenzan
http://www.slideshare.net/marco.parenzan
https://github.com/marcoparenzan
www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 21

Azure Logic Apps

  • 1.
    presenta www.wpc2015.it – info@wpc2015.it- +39 02 365738.11 - #wpc15it 1 Overview di Azure Logic Apps Marco Parenzan – Microsoft Azure MVP
  • 2.
    Agenda • Overview diAzure Logic Apps • Architettura di un Workflow • Demo www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 2
  • 3.
    Platform Services Security & Management InfrastructureServices Web Apps Mobile Apps API Management API Apps Logic Apps Notification Hubs Content Delivery Network (CDN) Media Services HDInsight Machine Learning Stream Analytics Data Factory Event Hubs Mobile Engagement Active Directory Multi-Factor Authentication Automation Portal Key Vault Biztalk Services Hybrid Connections Service Bus Storage Queues Store / Marketplace Hybrid Operations Backup StorSimple Site Recovery Import/Export SQL Database DocumentDB Redis Cache Search Tables SQL Data Warehouse Azure AD Connect Health AD Privileged Identity Management Operational Insights Cloud Services Batch Remote App Service Fabric Visual Studio Application Insights Azure SDK Team Project VM Image Gallery & VM Depot
  • 4.
    Modellare una applicazione con PaaS in Azure www.wpc2015.it– info@wpc2015.it - +39 02 365738.11 4 API APPS Costruisci e consuma API nel Cloud WEB APPS Applicazione che scalano con il tuo business LOGIC APPS Automatizza i processi di business attraverso SaaS e on-premises MOBILE APPS Applicazioni mobile per ogni dispositivo
  • 5.
    Logic Apps sono Azure PaaSApps • Full audit logs per tutte le operazioni di management • Role-based access control • Gestione del Deployment con Resource Manager • Resource Management API + resource PowerShell  Azure Resource manager è un sistema altamente scalabile, geodistribuito che può gestire milioni di risorse su centiaia di migliaia di sottoscrizioni  Può solo aggiungere cose ad un resource group (non toglierle) • Supporto on-premise con Azure Stack • Supporta diversi protocolli di autenticazione: AAD, Cert auth, or Basic auth www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 5
  • 6.
    Modello per le LogicApp • Workflow Processo espresso da un flusso (il dato viene elaborato in vari step) • Step fatto di API Il workflow è un orchestratore Un mondo di «microservices» • Connettori API pubbliche (SaaS) WebHooks www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 6
  • 7.
    Workflow Integrazione www.wpc2015.it – info@wpc2015.it- +39 02 365738.11 - #wpc15it 7 Learning/Co dingEffort Complexity of problem BizTalk ServicesBizTalk Server First version of BizTalk build ‘cloud-up’ Already running mission critical workload for large customers Leader in integration on-premises Handles mission critical workloads for hundreds of customers Renowned brand
  • 8.
    Connettori www.wpc2015.it – info@wpc2015.it- +39 02 365738.11 - #wpc15it 8 • 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 Connettori (SaaS APIs) Protocolli (Custom APIs) Servizi BizTalk
  • 9.
  • 10.
    Struttura JSON di un workflow •{ • "parameters": { • ... • }, • "triggers": { • ... • }, • "actions": { • ... • }, • "outputs": { • ... • } • } www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 10
  • 11.
    Azioni • L’azione ècomposta da  Una precondizione di esecuzione  Un loop di esecuzione sugli input www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 11 "<name-of-the-action>": { "type": "Http|ApiApp|Workflow", "conditions": [ "<array-of-pre-conditions>" ], "repeat": "<array-to-repeat-over>", "inputs": { "<action-specific-inputs>" } }
  • 12.
    Linguaggio • Funzioni utilizzabili: Collection (first, contains, length, intersection, take, skip…)  String (concat, substring, replace)  Logical (equals, less, greater, lessOrEquals, and, or, not…)  Conversion (int, string, float, bool, coalesce, base64)  Math (add, sub, mul, div, mod, min, max, range)  Date (utcnow, addseconds, addminutes, addhours, adddays) • Template Language Expression  JSON values in template can be literals or expressions (special kinds of strings)  Denoted by the '@' symbol: "@exp"  Or in form of string interpolation "… @{ exp } …"  Expressions evaluation  Static (agnostic to execution context): "@sum(3, 5)"  Dynamic (can only evaluated at runtime): "@outputs('act1').body" www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 12
  • 13.
    Messaggi • Supporto permessaggi max 100Mb  Tutti I dati vengono serializzati in JSON • Per gestire blob binari:  Salvo su Azure Storage  Il dato viene codificato BASE64 e immesso nel workflow • Tutti I messaggi sono salvati  Memorizzati con un tempo di retention dipendente dall’ App Service plan www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 13
  • 14.
    Parametri • Servono adifferenziare la definizione (del particolare workflow) dalla configurazione (del particolare ambiente) www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 14 "parameters": { "<parameterName>": { "type": "<type-of-parameter-value>", "defaultValue": "<optional-default-value-of-parameter>", "allowedValues": [ "<optional-array-of-allowed-values>" ] } }
  • 15.
    Dipendenze • Implicita, quandosi referenzia l’output di un’altra azione • Esplicita, quando si specifica il parametron “dependsOn”  “dependsOn” : “twitterconnector” • Espressione (Esplicita), quando in una condizione di espressione si riferisce a qualche altra azione  “expression” : “@equals(actions(‘twitterconnector’).code, ‘InternalServerError’)” www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 15
  • 16.
    Triggers • Definiscono comeil workflow può svegliarsi www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 16 "<name-of-the-trigger>": { "type": "Http|ApiApp|Recurrence", "inputs": { "<trigger-specific-inputs>" }, "recurrence": { "frequency": "Second|Minute|Hour|Week|Month|Year", "interval": "<recurrence interval in units of frequency>" }, "conditions": [ "<array-of-post-conditions>" ] }
  • 17.
    WebHook POST { “outputs”: { “par”: 20 } } Tipi di Trigger www.wpc2015.it– info@wpc2015.it - +39 02 365738.11 - #wpc15it 17 Manuale Ricorrenza API AppTriggerAPI Polling 200: run 202: wait trigger state
  • 18.
    DEMO www.wpc2015.it – info@wpc2015.it- +39 02 365738.11 - #wpc15it 18
  • 19.
    Conclusioni • DEVs  Studio2012)  OEC107 Cloud Computing con Microsoft Azure  MOC10978 Introduction to Azure for Developers (studenti)  MOC20487 Developing Windows Azure and Web Services (Visual Studio 2012)  MOC20532 Developing Microsoft Azure Solutions • IT Pro  MOC10979 Microsoft Azure® Essentials  MOC20533 Implementing Microsoft Azure Infrastructure Solutions www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 19
  • 20.
    Contatti OverNet Education OverNet Education info@overneteducation.it www.overneteducation.it Tel. 02365738 @overnete www.facebook.com/OverNetEducation www.linkedin.com/company/overnet-solutions www.wpc2015.it www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 20
  • 21.
    Q & A MarcoParenzan marco [dot] parenzan [at] 1nn0va [dot] it @marco_parenzan www.facebook.com/parenzan.marco https://it.linkedin.com/in/marcoparenzan http://www.slideshare.net/marco.parenzan https://github.com/marcoparenzan www.wpc2015.it – info@wpc2015.it - +39 02 365738.11 - #wpc15it 21

Editor's Notes

  • #4 Tantissimi servizi, per fare moltissime cose = pezzi di un puzzle che si possono integrare tra loro per aggiungere complessità e nuove funzionalità per gli utenti alle proprie applicazioni
  • #18 Ricorrenza: ogni specific intervallo di tempo Polling (pull) su un endpoint HTTP: 200 esegue, 202 aspetta Registrare una API App che far scatenare il workflow dall’esterno (push) WebHook: un endpoint di default su cui fare POST (supporta Basic auth) Manuale: run da portale