SlideShare une entreprise Scribd logo
1  sur  37
Automating Provisioning For Your
Digital Workplace: With Azure Durable
Functions & Microsoft Graph
SharePoint Saturday Toronto 2019
Vincent Biret
PLATINUM
Thank You Sponsors!
SILVERGOLD
3
SharePint
SharePint
The Drake & Firkin
6982 Financial Dr, Mississauga, ON L5N 8J4
SharePoint Saturday
Toronto #SPSToronto
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

Contenu connexe

Tendances

Continuous Delivery with Visual Studio Online
Continuous Delivery with Visual Studio Online Continuous Delivery with Visual Studio Online
Continuous Delivery with Visual Studio Online
Moataz Nabil
 
Devops the Microsoft Way
Devops the Microsoft WayDevops the Microsoft Way
Devops the Microsoft Way
Patrick Chanezon
 

Tendances (20)

Continuous Delivery en Tools
Continuous Delivery en ToolsContinuous Delivery en Tools
Continuous Delivery en Tools
 
Comment tirer partie de Visual Studio Online pour vos développements SharePoint
Comment tirer partie de Visual Studio Online pour vos développements SharePointComment tirer partie de Visual Studio Online pour vos développements SharePoint
Comment tirer partie de Visual Studio Online pour vos développements SharePoint
 
Leveraging Visual Testing with Your Functional Tests
Leveraging Visual Testing with Your Functional TestsLeveraging Visual Testing with Your Functional Tests
Leveraging Visual Testing with Your Functional Tests
 
CloudShare Dev and Test SPSTCDC
CloudShare Dev and Test SPSTCDCCloudShare Dev and Test SPSTCDC
CloudShare Dev and Test SPSTCDC
 
Microsoft Azure Cloud and DevOps
Microsoft Azure Cloud and DevOpsMicrosoft Azure Cloud and DevOps
Microsoft Azure Cloud and DevOps
 
Continuous Delivery with Visual Studio Online
Continuous Delivery with Visual Studio Online Continuous Delivery with Visual Studio Online
Continuous Delivery with Visual Studio Online
 
Introduction to Team Foundation Server (TFS) Online
Introduction to Team Foundation Server (TFS) OnlineIntroduction to Team Foundation Server (TFS) Online
Introduction to Team Foundation Server (TFS) Online
 
Enterprise DevOps
Enterprise DevOpsEnterprise DevOps
Enterprise DevOps
 
InCycle's DevOps with Azure
InCycle's DevOps with AzureInCycle's DevOps with Azure
InCycle's DevOps with Azure
 
DevOps in Azure : Puppetize the Cloud
DevOps in Azure : Puppetize the CloudDevOps in Azure : Puppetize the Cloud
DevOps in Azure : Puppetize the Cloud
 
RightScale Webinar: Continuous Integration and Delivery in the Cloud - How Ri...
RightScale Webinar: Continuous Integration and Delivery in the Cloud - How Ri...RightScale Webinar: Continuous Integration and Delivery in the Cloud - How Ri...
RightScale Webinar: Continuous Integration and Delivery in the Cloud - How Ri...
 
Devops the Microsoft Way
Devops the Microsoft WayDevops the Microsoft Way
Devops the Microsoft Way
 
Microsoft and DevOps - Presented by Atidan
Microsoft and DevOps - Presented by AtidanMicrosoft and DevOps - Presented by Atidan
Microsoft and DevOps - Presented by Atidan
 
Azure DevOps for Developers
Azure DevOps for DevelopersAzure DevOps for Developers
Azure DevOps for Developers
 
DevOps + Azure
DevOps + AzureDevOps + Azure
DevOps + Azure
 
Martin woodward - DevOps habits - part 4 of 4
Martin woodward - DevOps habits - part 4 of 4Martin woodward - DevOps habits - part 4 of 4
Martin woodward - DevOps habits - part 4 of 4
 
Chris OBrien - Azure DevOps for managing work
Chris OBrien - Azure DevOps for managing workChris OBrien - Azure DevOps for managing work
Chris OBrien - Azure DevOps for managing work
 
Top 5 Features To Look for in a Codeless Automation Solution -- Presentation ...
Top 5 Features To Look for in a Codeless Automation Solution -- Presentation ...Top 5 Features To Look for in a Codeless Automation Solution -- Presentation ...
Top 5 Features To Look for in a Codeless Automation Solution -- Presentation ...
 
Martin Woodward - DevOps Habits
Martin Woodward  - DevOps HabitsMartin Woodward  - DevOps Habits
Martin Woodward - DevOps Habits
 
DevOps In Azure: Deliver Value With Automation
DevOps In Azure: Deliver Value With AutomationDevOps In Azure: Deliver Value With Automation
DevOps In Azure: Deliver Value With Automation
 

Similaire à #SPSToronto 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
 
O365Engage17 - Supercharging Your Productivity and Business with Microsoft Po...
O365Engage17 - Supercharging Your Productivity and Business with Microsoft Po...O365Engage17 - Supercharging Your Productivity and Business with Microsoft Po...
O365Engage17 - Supercharging Your Productivity and Business with Microsoft Po...
NCCOMMS
 

Similaire à #SPSToronto 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...
 
#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
 
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 ...
 
#SpFestSea azr203 Azure functions lessons learned
#SpFestSea azr203 Azure functions lessons learned#SpFestSea azr203 Azure functions lessons learned
#SpFestSea azr203 Azure functions lessons learned
 
#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
 
Oracle OpenWorld 2009 AIA Best Practices
Oracle OpenWorld 2009 AIA Best PracticesOracle OpenWorld 2009 AIA Best Practices
Oracle OpenWorld 2009 AIA Best Practices
 
SharePoint 2013 on-premise vs Office 365 Online compared
SharePoint 2013 on-premise vs Office 365 Online comparedSharePoint 2013 on-premise vs Office 365 Online compared
SharePoint 2013 on-premise vs Office 365 Online compared
 
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
 
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...
 
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
 
Azure from Rookie to DevStart
Azure from Rookie to DevStartAzure from Rookie to DevStart
Azure from Rookie to DevStart
 
Share point2013 office365_workflows_sergeluca_sharepointsaturdaybelgium2015
Share point2013 office365_workflows_sergeluca_sharepointsaturdaybelgium2015Share point2013 office365_workflows_sergeluca_sharepointsaturdaybelgium2015
Share point2013 office365_workflows_sergeluca_sharepointsaturdaybelgium2015
 
SPEDUC: SharePoint on Premises vs Online for Education
SPEDUC: SharePoint on Premises vs Online for EducationSPEDUC: SharePoint on Premises vs Online for Education
SPEDUC: SharePoint on Premises vs Online for Education
 
#SPFestSea Introduction to #Azure #Functions v2
#SPFestSea Introduction to #Azure #Functions v2#SPFestSea Introduction to #Azure #Functions v2
#SPFestSea Introduction to #Azure #Functions v2
 
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...
 
SharePoint 2010 design and deploy
SharePoint  2010 design and deploySharePoint  2010 design and deploy
SharePoint 2010 design and deploy
 
Peter De Tender - How to efficiently license office 365
Peter De Tender - How to efficiently license office 365Peter De Tender - How to efficiently license office 365
Peter De Tender - How to efficiently license office 365
 
O365Engage17 - Supercharging Your Productivity and Business with Microsoft Po...
O365Engage17 - Supercharging Your Productivity and Business with Microsoft Po...O365Engage17 - Supercharging Your Productivity and Business with Microsoft Po...
O365Engage17 - Supercharging Your Productivity and Business with Microsoft Po...
 
Azure Logic Apps and Microsoft Flows
Azure Logic Apps and Microsoft FlowsAzure Logic Apps and Microsoft Flows
Azure Logic Apps and Microsoft Flows
 

Plus de Vincent Biret

Plus de 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
 
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...
 
#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
 
Global Office 365 Dev Bootcamp 2018 - Intro slides
Global Office 365 Dev Bootcamp 2018 - Intro slidesGlobal Office 365 Dev Bootcamp 2018 - Intro slides
Global Office 365 Dev Bootcamp 2018 - Intro slides
 
#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...
#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...
#SPSottawa The SharePoint Framework and The Microsoft Graph on steroids with ...
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

#SPSToronto Digital Workplace provisioning with #MicrosoftGraph and #Azure functions

  • 1. Automating Provisioning For Your Digital Workplace: With Azure Durable Functions & Microsoft Graph SharePoint Saturday Toronto 2019 Vincent Biret
  • 3. 3 SharePint SharePint The Drake & Firkin 6982 Financial Dr, Mississauga, ON L5N 8J4 SharePoint Saturday Toronto #SPSToronto
  • 4. Passionate about technologies, development and community Vincent Biret @baywet bit.ly/vince365 Microsoft Office Dev MVP Azure and Office 365 developer @ 2toLead
  • 6. Agenda Introduction User Interface choices Automation choices Azure Durable Functions SharePoint specifics Microsoft Graph Conclusion
  • 9. 2017201620152014 Over the last years Microsoft focused on delivering more specialized tools Microsoft 365 Ecosystem 201820132012
  • 10. 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.
  • 11. 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
  • 12. 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 …
  • 14. 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
  • 15. Benefits of going SPFx/Teams Modern technologies (react, typescript…) Open source libraries (PnP & more) Integrated AuthN & AuthZ Integrated hosting Discoverable High flexibility/control
  • 16. UI of the provisioning solution Demo
  • 18. 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
  • 19. 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
  • 20. Easy auth, CORS setup, CORS for dev Demo
  • 22. 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
  • 23. A common pattern to chain Azure Function was to use queues Coordinating Azure Functions: Chaining
  • 24. A common pattern to chain Azure Function was to use a state repository, each function triggering the next one Coordinating Azure Functions: State Repo
  • 25. The pain of coordinating Azure Functions grows exponentially with the number of functions. TRYING TO COORDINATE MANY FUNCTIONS
  • 26. 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
  • 27. The Orchestrator leverages a decorator design pattern to « work it’s magic » High level overview Orchestration client State persistence Orchestrator ActivitiesTrigger
  • 28. 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
  • 29. Azure Durable Functions Orchestrator and Activities, Graph Beta Client Demo
  • 31. 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… ¯_(ツ)_/¯
  • 32. 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
  • 33. 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
  • 34. The WebJob for SharePoint and Synchronisation Demo
  • 36. Conclusion Lot of time saved Consistency of environments Self-Service Deep integration Money saved
  • 37. Bit.ly/vince365 @baywet slideshare.net/VincentBIRET Thanks!/Questions? Vincent Biret Office 365 and Azure Developer, 2toLead @baywet Bit.ly/vince365

Notes de l'éditeur

  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