SlideShare a Scribd company logo
1 of 36
Automating Provisioning For Your
Digital Workplace: With Azure Durable
Functions & Microsoft Graph
SharePoint Fest Seattle 2019
Vincent Biret
Passionate about technologies, development and community
Vincent Biret
@baywet
bit.ly/vince365
Microsoft Office Dev MVP
Azure and Office 365 developer @ 2toLead
Audience?
Agenda
Introduction
User Interface choices
Automation choices
Azure Durable Functions
SharePoint specifics
Microsoft Graph
Conclusion
Ready?
Context
2017201620152014
Over the last years Microsoft focused on delivering more specialized tools
Microsoft 365 Ecosystem
201820132012
Different tools for boundaries
Internal
External
Public
It’s important to consider the right tool for the right boundary, and your automation options must account
for it as well.
Overall users are happier with better tools, but it added stress on IT and power users.
The effects of more specialized tools
Pros
More efficient
Better capabilities
Faster releases
Cons
Context Switching
Licensing complexity
Managing multiple API’s
Administrative lifecycle
tasks
The first rule of licensing is we
don’t talk about licensing
Provisioning processes can be quite complex and often require to integrate many
technologies together. Thankfully the Microsoft Graph provides most of the APIs.
What do we want to automate?
Create Office 365 group
Enable Teams on the group
Update the logo
Set security
Create Channels for each project
Create a templated NoteBook for
each project
Create a Planner Plan for each
project
Add a welcome message
Add all the tabs
Create extranet site collection &
sites
Apply a template to it
…
Building custom User
Interfaces in
Microsoft 365
When building custom user interfaces for Office 365, the trick is to find the right balance.
Available choices when building custom UI
COMPLEXITY
C
O
N
T
R
O
L
Bots
Custom
Teams Tabs/SPFx
PowerApps
Forms
Benefits of going SPFx/Teams
Modern technologies (react, typescript…)
Open source libraries (PnP & more)
Integrated AuthN & AuthZ
Integrated hosting
Discoverable
High flexibility/control
UI of the provisioning solution
Demo
Automating in
Office 365
Azure Functions is a good complement to Flow/Logic App. Logic App good transition
from Microsoft Flow to move from user centric to entreprise grade
Available choices when automating O365
COMPLEXITY
C
O
N
T
R
O
L
App Service
Environment
Automation
RunBooks
Custom
WebJobs
WebApps
Functions
Logic Apps
Flow
ASE is a great tool to automate things for Office 365, especially if you’re a dev, with
almost no limitations
Benefits of App Service Environment
Built-in auth (Easy-Auth)
Built-in security (SSL…)
Autoscale
API driven (CORS…)
Built-in connectivity (vnet, vpns…)
Proven technology (6+ years)
Easy to get started
Cheap
Easy auth, CORS setup, CORS for dev
Demo
Azure Durable
Functions
Implementing complex workflows was complex with Azure Functions which are designed
for quick and simple activities
Value proposition of Azure Functions
Pros
Cheap
Fast
Simple
Scale extensively
Cons
Stateless
Coordination nightmare!
10/15 min limit run time
A common pattern to chain Azure Function was to use queues
Coordinating Azure Functions: Chaining
A common pattern to chain Azure Function was to use a state repository, each function
triggering the next one
Coordinating Azure Functions: State Repo
The pain of coordinating Azure Functions grows exponentially with the number of
functions.
TRYING TO
COORDINATE MANY
FUNCTIONS
Durable Functions remove a lot of pain introduced with regular functions
Introducing Durable Functions
All the benefits of « regular » Functions
Code defined workflow
Automates state management
Reports status
Enables new design patterns
Fan out/Fan-in
Chaining
Monitoring
The Orchestrator leverages a decorator design pattern to « work it’s magic »
High level overview
Orchestration
client
State persistence
Orchestrator
ActivitiesTrigger
Always remember these key principles toi avoid strange behavior
Important things about Orchestrator
Orchestrator WILL run multiple time
Orchestrator ONLY coordinates activities
No random
No time
No async calls
Idem potent logic
Use orchestrator methods to call activities
Activities input/output MUST be serializable
Azure Durable Functions Orchestrator and Activities, Graph Beta Client
Demo
SharePoint Specifics
Authentication & Authorization
Use Azure Active Directory, not ACS anymore
Most of ACS retired a year ago, which is not a good sign for
auth part
Use certificate (not secret) authentication
Otherwise, for some endpoints, you’ll get a token, and a
403…
¯_(ツ)_/¯
The situation is currently painful if you want to leverage Azure Functions and work with
SharePoint’s CSOM
Laggy SDK/CSOM
CSOM still does not support dot net standard
Azure Functions are now on dot net core 2.x
Most libraries moved to dot net standard
Painful transition ADAL/MSAL on top of that
Functions/Activities can only run for 10/15 minutes
It is possible to synchronize a webjob and Durable Functions using queues or events.
Either to the same orchestrator or a separate one.
Laggy SDK/CSOM - solutions
• Talk to SharePoint REST APIs & split the code
• This
Orchestration
client
State persistence
Orchestrator
Activities
Trigger
Events
WebJob
The WebJob for SharePoint and Synchronisation
Demo
Conclusion
Conclusion
Lot of time saved
Consistency of environments
Self-Service
Deep integration
Money saved
Bit.ly/vince365 @baywet slideshare.net/VincentBIRET
Thanks!/Questions?
Vincent Biret
Office 365 and Azure
Developer, 2toLead
@baywet
Bit.ly/vince365
#SPFestSEA Automate digital workplace provisioning with #MicrosoftGraph and #Azure #Functions

More Related Content

What's hot

What's hot (20)

Introduction to Microsoft Flow - Introduction & advanced scenarios
Introduction to Microsoft Flow - Introduction & advanced scenariosIntroduction to Microsoft Flow - Introduction & advanced scenarios
Introduction to Microsoft Flow - Introduction & advanced scenarios
 
Microsoft Azure Logic apps
Microsoft Azure Logic appsMicrosoft Azure Logic apps
Microsoft Azure Logic apps
 
Building Azure Logic Apps
Building Azure Logic AppsBuilding Azure Logic Apps
Building Azure Logic Apps
 
AOS Germany- 2020-Advanced Business Process Management with Power Automate an...
AOS Germany- 2020-Advanced Business Process Management with Power Automate an...AOS Germany- 2020-Advanced Business Process Management with Power Automate an...
AOS Germany- 2020-Advanced Business Process Management with Power Automate an...
 
Doctor Flow- Best practices Microsoft flow - Techorama 2019
Doctor Flow- Best practices Microsoft flow - Techorama 2019Doctor Flow- Best practices Microsoft flow - Techorama 2019
Doctor Flow- Best practices Microsoft flow - Techorama 2019
 
Connect SharePoint Framework solutions to APIs secured with Azure AD
Connect SharePoint Framework solutions to APIs secured with Azure ADConnect SharePoint Framework solutions to APIs secured with Azure AD
Connect SharePoint Framework solutions to APIs secured with Azure AD
 
Azure logic app
Azure logic appAzure logic app
Azure logic app
 
Inside Logic Apps
Inside Logic AppsInside Logic Apps
Inside Logic Apps
 
Microsoft Flow best practices European Collaboration Summit 2018
Microsoft Flow best practices European Collaboration Summit 2018Microsoft Flow best practices European Collaboration Summit 2018
Microsoft Flow best practices European Collaboration Summit 2018
 
Make IT Pro's great again: Microsoft Azure for the SharePoint professional
Make IT Pro's great again: Microsoft Azure for the SharePoint professionalMake IT Pro's great again: Microsoft Azure for the SharePoint professional
Make IT Pro's great again: Microsoft Azure for the SharePoint professional
 
Microsoft flow best practices SharePoint Saturday Bremen 2019 (Germany)
Microsoft flow best practices SharePoint Saturday Bremen 2019 (Germany)Microsoft flow best practices SharePoint Saturday Bremen 2019 (Germany)
Microsoft flow best practices SharePoint Saturday Bremen 2019 (Germany)
 
Getting started with development in azure
Getting started with development in azureGetting started with development in azure
Getting started with development in azure
 
O365Con18 - Innovate, Connecting Bleeding Edge Technologies - Sjoukje Zaal & ...
O365Con18 - Innovate, Connecting Bleeding Edge Technologies - Sjoukje Zaal & ...O365Con18 - Innovate, Connecting Bleeding Edge Technologies - Sjoukje Zaal & ...
O365Con18 - Innovate, Connecting Bleeding Edge Technologies - Sjoukje Zaal & ...
 
Azure Logic Apps and Microsoft Flows
Azure Logic Apps and Microsoft FlowsAzure Logic Apps and Microsoft Flows
Azure Logic Apps and Microsoft Flows
 
4 Integrating azure monitor with power bi and power automate
4 Integrating azure monitor with power bi and power automate4 Integrating azure monitor with power bi and power automate
4 Integrating azure monitor with power bi and power automate
 
Integrating saas applications
Integrating saas applicationsIntegrating saas applications
Integrating saas applications
 
Integrating saa s application using azure services v0.5
Integrating saa s application using azure services v0.5Integrating saa s application using azure services v0.5
Integrating saa s application using azure services v0.5
 
Unleashing the power of Microsoft Flow at Dynamics 365 Saturday
Unleashing the power of Microsoft Flow at Dynamics 365 SaturdayUnleashing the power of Microsoft Flow at Dynamics 365 Saturday
Unleashing the power of Microsoft Flow at Dynamics 365 Saturday
 
Microsoft PowerApps- 'What can really I do with it?'
Microsoft PowerApps- 'What can really I do with it?'Microsoft PowerApps- 'What can really I do with it?'
Microsoft PowerApps- 'What can really I do with it?'
 
API Management and Hybrid Integration
API Management and Hybrid IntegrationAPI Management and Hybrid Integration
API Management and Hybrid Integration
 

Similar to #SPFestSEA Automate digital workplace provisioning with #MicrosoftGraph and #Azure #Functions

Introduction to Microsoft Flow and Azure Functions
Introduction to Microsoft Flow and Azure FunctionsIntroduction to Microsoft Flow and Azure Functions
Introduction to Microsoft Flow and Azure Functions
BIWUG
 
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
WSPDC & FEDSPUG
 

Similar to #SPFestSEA Automate digital workplace provisioning with #MicrosoftGraph and #Azure #Functions (20)

#SPSHouston Automating your digital workplace proivisioning with #Azure Durab...
#SPSHouston Automating your digital workplace proivisioning with #Azure Durab...#SPSHouston Automating your digital workplace proivisioning with #Azure Durab...
#SPSHouston Automating your digital workplace proivisioning with #Azure Durab...
 
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
 
Introduction to Microsoft Flow and Azure Functions
Introduction to Microsoft Flow and Azure FunctionsIntroduction to Microsoft Flow and Azure Functions
Introduction to Microsoft Flow and Azure Functions
 
#SpFestSea azr203 Azure functions lessons learned
#SpFestSea azr203 Azure functions lessons learned#SpFestSea azr203 Azure functions lessons learned
#SpFestSea azr203 Azure functions lessons learned
 
SPFestDc AZR204 Microsoft Graph and SharePoint Framework under steroids with ...
SPFestDc AZR204 Microsoft Graph and SharePoint Framework under steroids with ...SPFestDc AZR204 Microsoft Graph and SharePoint Framework under steroids with ...
SPFestDc AZR204 Microsoft Graph and SharePoint Framework under steroids with ...
 
#Techorama belgium 2018 vincent biret deep dive with the #MicrosoftGraph
#Techorama belgium 2018 vincent biret deep dive with the #MicrosoftGraph#Techorama belgium 2018 vincent biret deep dive with the #MicrosoftGraph
#Techorama belgium 2018 vincent biret deep dive with the #MicrosoftGraph
 
Office apps in Office 365 - Napa the next big thing
Office apps in Office 365 - Napa the next big thingOffice apps in Office 365 - Napa the next big thing
Office apps in Office 365 - Napa the next big thing
 
Azure from Rookie to DevStart
Azure from Rookie to DevStartAzure from Rookie to DevStart
Azure from Rookie to DevStart
 
BizSpark Startup Night Windows Azure March 29, 2011
BizSpark Startup Night Windows Azure March 29, 2011BizSpark Startup Night Windows Azure March 29, 2011
BizSpark Startup Night Windows Azure March 29, 2011
 
#SPFestSea Introduction to #Azure #Functions v2
#SPFestSea Introduction to #Azure #Functions v2#SPFestSea Introduction to #Azure #Functions v2
#SPFestSea Introduction to #Azure #Functions v2
 
Oracle OpenWorld 2009 AIA Best Practices
Oracle OpenWorld 2009 AIA Best PracticesOracle OpenWorld 2009 AIA Best Practices
Oracle OpenWorld 2009 AIA Best Practices
 
Azure presentation nnug dec 2010
Azure presentation nnug  dec 2010Azure presentation nnug  dec 2010
Azure presentation nnug dec 2010
 
#SPFestSea azr302 The SharePoint Framework and the #MicrosoftGraph under ster...
#SPFestSea azr302 The SharePoint Framework and the #MicrosoftGraph under ster...#SPFestSea azr302 The SharePoint Framework and the #MicrosoftGraph under ster...
#SPFestSea azr302 The SharePoint Framework and the #MicrosoftGraph under ster...
 
Deep Dive SharePoint 2013: Brave New World: What SharePoint 2013 Really Means...
Deep Dive SharePoint 2013: Brave New World: What SharePoint 2013 Really Means...Deep Dive SharePoint 2013: Brave New World: What SharePoint 2013 Really Means...
Deep Dive SharePoint 2013: Brave New World: What SharePoint 2013 Really Means...
 
Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)
 
Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)
 
Serverless Computing with Azure
Serverless Computing with AzureServerless Computing with Azure
Serverless Computing with Azure
 
Serverless API with Azure Functions
Serverless API with Azure FunctionsServerless API with Azure Functions
Serverless API with Azure Functions
 
SPS calgary 2017 introduction to azure functions microsoft flow
SPS calgary 2017 introduction to azure functions microsoft flowSPS calgary 2017 introduction to azure functions microsoft flow
SPS calgary 2017 introduction to azure functions microsoft flow
 
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
FEDSPUG April 2014: Visual Studio 2013 for Application Lifecycle Management &...
 

More from Vincent Biret

More from Vincent Biret (20)

#MSGraph introduction at #M365SaturdayOttawa
#MSGraph introduction at #M365SaturdayOttawa#MSGraph introduction at #M365SaturdayOttawa
#MSGraph introduction at #M365SaturdayOttawa
 
#MWCP19 atelier provisionnement #Office365 slides teams
#MWCP19 atelier provisionnement #Office365 slides teams#MWCP19 atelier provisionnement #Office365 slides teams
#MWCP19 atelier provisionnement #Office365 slides teams
 
#MWCP19 atelier provisionnement #Office365 slides introduction
#MWCP19 atelier provisionnement #Office365 slides introduction#MWCP19 atelier provisionnement #Office365 slides introduction
#MWCP19 atelier provisionnement #Office365 slides introduction
 
December #PnP #SPFx call #CLI exteranlize demo
December #PnP #SPFx call #CLI exteranlize demoDecember #PnP #SPFx call #CLI exteranlize demo
December #PnP #SPFx call #CLI exteranlize demo
 
#ESPC19 How to do #DevOps with #SPFx
#ESPC19 How to do #DevOps with #SPFx#ESPC19 How to do #DevOps with #SPFx
#ESPC19 How to do #DevOps with #SPFx
 
MS365 dev bootcamp - day introduction slides
MS365 dev bootcamp - day introduction slidesMS365 dev bootcamp - day introduction slides
MS365 dev bootcamp - day introduction slides
 
MS365 Dev Bootcamp Montreal 2019 - Microsoft graph introduction
MS365 Dev Bootcamp Montreal 2019 - Microsoft graph introductionMS365 Dev Bootcamp Montreal 2019 - Microsoft graph introduction
MS365 Dev Bootcamp Montreal 2019 - Microsoft graph introduction
 
#SPSOttawa introduction to the #microsoftGraph
#SPSOttawa introduction to the #microsoftGraph#SPSOttawa introduction to the #microsoftGraph
#SPSOttawa introduction to the #microsoftGraph
 
#SPFestSEA Introduction to #MicrosoftGraph
#SPFestSEA Introduction to #MicrosoftGraph#SPFestSEA Introduction to #MicrosoftGraph
#SPFestSEA Introduction to #MicrosoftGraph
 
Groupe usagers SharePoint Quebec Juin 2019 - Nouveautés de dev et évènements
Groupe usagers SharePoint Quebec Juin 2019 - Nouveautés de dev et évènementsGroupe usagers SharePoint Quebec Juin 2019 - Nouveautés de dev et évènements
Groupe usagers SharePoint Quebec Juin 2019 - Nouveautés de dev et évènements
 
#MSBuild using #IoT to improve peoples's health and brain power
#MSBuild using #IoT to improve peoples's health and brain power#MSBuild using #IoT to improve peoples's health and brain power
#MSBuild using #IoT to improve peoples's health and brain power
 
#SPFestDC #Azure #Functions V2: What's new and getting started
#SPFestDC #Azure #Functions V2: What's new and getting started#SPFestDC #Azure #Functions V2: What's new and getting started
#SPFestDC #Azure #Functions V2: What's new and getting started
 
#SPFestDC Migrate your custom solutions to the modern stack
#SPFestDC Migrate your custom solutions to the modern stack#SPFestDC Migrate your custom solutions to the modern stack
#SPFestDC Migrate your custom solutions to the modern stack
 
Microsoft #ignite tour #toronto 2019 How to do #DevOps with the #SPFx and why...
Microsoft #ignite tour #toronto 2019 How to do #DevOps with the #SPFx and why...Microsoft #ignite tour #toronto 2019 How to do #DevOps with the #SPFx and why...
Microsoft #ignite tour #toronto 2019 How to do #DevOps with the #SPFx and why...
 
Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...
Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...
Granite state #spug The #microsoftGraph and #SPFx on steroids with #AzureFunc...
 
#ESPC18 how to migrate to the #SharePoint Framework?
#ESPC18 how to migrate to the #SharePoint Framework?#ESPC18 how to migrate to the #SharePoint Framework?
#ESPC18 how to migrate to the #SharePoint Framework?
 
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?
 
#SPSToronto 2018 migrate you custom development to the SharePoint Framework
#SPSToronto 2018 migrate you custom development to the SharePoint Framework#SPSToronto 2018 migrate you custom development to the SharePoint Framework
#SPSToronto 2018 migrate you custom development to the SharePoint Framework
 
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...
#SPSToronto The SharePoint Framework and the Microsoft Graph on steroids with...
 
Global Office Bootcamp Montreal 2018 Introduction au Microsoft Graph
Global Office Bootcamp Montreal 2018 Introduction au Microsoft GraphGlobal Office Bootcamp Montreal 2018 Introduction au Microsoft Graph
Global Office Bootcamp Montreal 2018 Introduction au Microsoft Graph
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Microsoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdfMicrosoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdf
Overkill Security
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
panagenda
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
FIDO Alliance
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
FIDO Alliance
 

Recently uploaded (20)

TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate Guide
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cf
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxCyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Microsoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdfMicrosoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdf
 
Generative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfGenerative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdf
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
Navigating the Large Language Model choices_Ravi Daparthi
Navigating the Large Language Model choices_Ravi DaparthiNavigating the Large Language Model choices_Ravi Daparthi
Navigating the Large Language Model choices_Ravi Daparthi
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 

#SPFestSEA Automate digital workplace provisioning with #MicrosoftGraph and #Azure #Functions

  • 1. Automating Provisioning For Your Digital Workplace: With Azure Durable Functions & Microsoft Graph SharePoint Fest Seattle 2019 Vincent Biret
  • 2. Passionate about technologies, development and community Vincent Biret @baywet bit.ly/vince365 Microsoft Office Dev MVP Azure and Office 365 developer @ 2toLead
  • 4. Agenda Introduction User Interface choices Automation choices Azure Durable Functions SharePoint specifics Microsoft Graph Conclusion
  • 7. 2017201620152014 Over the last years Microsoft focused on delivering more specialized tools Microsoft 365 Ecosystem 201820132012
  • 8. Different tools for boundaries Internal External Public It’s important to consider the right tool for the right boundary, and your automation options must account for it as well.
  • 9. Overall users are happier with better tools, but it added stress on IT and power users. The effects of more specialized tools Pros More efficient Better capabilities Faster releases Cons Context Switching Licensing complexity Managing multiple API’s Administrative lifecycle tasks The first rule of licensing is we don’t talk about licensing
  • 10. Provisioning processes can be quite complex and often require to integrate many technologies together. Thankfully the Microsoft Graph provides most of the APIs. What do we want to automate? Create Office 365 group Enable Teams on the group Update the logo Set security Create Channels for each project Create a templated NoteBook for each project Create a Planner Plan for each project Add a welcome message Add all the tabs Create extranet site collection & sites Apply a template to it …
  • 12. When building custom user interfaces for Office 365, the trick is to find the right balance. Available choices when building custom UI COMPLEXITY C O N T R O L Bots Custom Teams Tabs/SPFx PowerApps Forms
  • 13. Benefits of going SPFx/Teams Modern technologies (react, typescript…) Open source libraries (PnP & more) Integrated AuthN & AuthZ Integrated hosting Discoverable High flexibility/control
  • 14. UI of the provisioning solution Demo
  • 16. Azure Functions is a good complement to Flow/Logic App. Logic App good transition from Microsoft Flow to move from user centric to entreprise grade Available choices when automating O365 COMPLEXITY C O N T R O L App Service Environment Automation RunBooks Custom WebJobs WebApps Functions Logic Apps Flow
  • 17. ASE is a great tool to automate things for Office 365, especially if you’re a dev, with almost no limitations Benefits of App Service Environment Built-in auth (Easy-Auth) Built-in security (SSL…) Autoscale API driven (CORS…) Built-in connectivity (vnet, vpns…) Proven technology (6+ years) Easy to get started Cheap
  • 18. Easy auth, CORS setup, CORS for dev Demo
  • 20. Implementing complex workflows was complex with Azure Functions which are designed for quick and simple activities Value proposition of Azure Functions Pros Cheap Fast Simple Scale extensively Cons Stateless Coordination nightmare! 10/15 min limit run time
  • 21. A common pattern to chain Azure Function was to use queues Coordinating Azure Functions: Chaining
  • 22. A common pattern to chain Azure Function was to use a state repository, each function triggering the next one Coordinating Azure Functions: State Repo
  • 23. The pain of coordinating Azure Functions grows exponentially with the number of functions. TRYING TO COORDINATE MANY FUNCTIONS
  • 24. Durable Functions remove a lot of pain introduced with regular functions Introducing Durable Functions All the benefits of « regular » Functions Code defined workflow Automates state management Reports status Enables new design patterns Fan out/Fan-in Chaining Monitoring
  • 25. The Orchestrator leverages a decorator design pattern to « work it’s magic » High level overview Orchestration client State persistence Orchestrator ActivitiesTrigger
  • 26. Always remember these key principles toi avoid strange behavior Important things about Orchestrator Orchestrator WILL run multiple time Orchestrator ONLY coordinates activities No random No time No async calls Idem potent logic Use orchestrator methods to call activities Activities input/output MUST be serializable
  • 27. Azure Durable Functions Orchestrator and Activities, Graph Beta Client Demo
  • 29. Authentication & Authorization Use Azure Active Directory, not ACS anymore Most of ACS retired a year ago, which is not a good sign for auth part Use certificate (not secret) authentication Otherwise, for some endpoints, you’ll get a token, and a 403… ¯_(ツ)_/¯
  • 30. The situation is currently painful if you want to leverage Azure Functions and work with SharePoint’s CSOM Laggy SDK/CSOM CSOM still does not support dot net standard Azure Functions are now on dot net core 2.x Most libraries moved to dot net standard Painful transition ADAL/MSAL on top of that Functions/Activities can only run for 10/15 minutes
  • 31. It is possible to synchronize a webjob and Durable Functions using queues or events. Either to the same orchestrator or a separate one. Laggy SDK/CSOM - solutions • Talk to SharePoint REST APIs & split the code • This Orchestration client State persistence Orchestrator Activities Trigger Events WebJob
  • 32. The WebJob for SharePoint and Synchronisation Demo
  • 34. Conclusion Lot of time saved Consistency of environments Self-Service Deep integration Money saved
  • 35. Bit.ly/vince365 @baywet slideshare.net/VincentBIRET Thanks!/Questions? Vincent Biret Office 365 and Azure Developer, 2toLead @baywet Bit.ly/vince365

Editor's Notes

  1. Mostly Devs and architects that want to know how to implement it. PMO and PMs who want to know how it’s done. Questions: XP with functions XP with SPFx XP with MS Graph
  2. Gestion des questions, interaction, ok avec ce programme?
  3. Timing: Just talk about the releases, do not explain what the products do
  4. Discoverable: Teams Tabs, SharePoint App Pages, Webpart gallery, already in tools users leverage
  5. Show the application page (create a PMO team and embed as a tab?), show all the controls (pnp), show the SPFx project and react components
  6. Tip: flows are in fact Azure logic Apps behind the scenes
  7. Not using event because passing data back (SharePoint) and renewing token (OneNote)
  8. Money save = dev time saved, less support to provide, better product/service