SlideShare una empresa de Scribd logo
1 de 47
Azure – the best bits (for
Office 365/SharePoint devs)
Chris O’Brien (MVP)
Independent/Content and Code, UK
Add
Speaker
Photo here
Top Office 365 + Azure scenarios
What? How?
Do something on a schedule Put code in Azure Web Jobs/Functions
Build apps (Office 365 app/SP
provider-hosted add-in)
Deploy app files to an Azure app
SharePoint site provisioning Deploy PnP Partner Pack to Azure
Run code on a button click Use Azure Functions + JavaScript
Store data not suited to SP lists Use Azure SQL Database
Store files for my app Use Azure BLOB storage (and CDN if
appropriate)
Implement SharePoint web hooks Use Azure Queues and Functions
Implement authentication on a
custom web app
Implement Azure Active Directory (AAD) auth
Or the general case:
HOST MY REMOTE
SHAREPOINT CODE!
Some Azure features
Compute
•Virtual machines
•App services/web
apps
•Web Jobs
•Functions
Storage
•BLOB storage
•Table storage
•Queues
•File service
Data
•Azure SQL Database
•Redis cache
•Azure Search
•StorSimple
•DocumentDB
Messaging
•Service Bus
•Event Hubs
•Queues/Topics/Relays
Media
• CDN
• Encoding
• Streaming
Mobile services
• Push
notifications
• Mobile
Engagement
Integration
• Logic Apps
• API
management
• Data Factory
• Data Catalog
Security and
Identity
• Azure Active
Directory
• AAD B2C
• Azure RMS
• Key Vault
• MFA
Azure is… Big
> 90%
Fortune 500 using MS cloud
>
Active websites
300k 1,000,000
715Azure AD users
More than
SQL databases in Azure
120kPER
MONTH12Orgs in Azure AD
M
>
>> M
3Requests per second
M
> 30Storage objects
TN
> 2Developers in VS Online
M
New Azure subscriptions
Performance Q2 2017
•93% revenue increase
YoY
•2x compute usage YoY
Web Apps
A great hosting location
• Easy to manage, scale up/down
• Auto SSL/load-balancing/backup
Perfect for extending SharePoint
• Office 365 apps
• SharePoint Add-ins
• Standalone web apps
Create Azure
web app
Register app
in AAD/SP
Configure Deploy files
Deployment options
Drag and drop in browser (Kudu)
Publish from Visual Studio
WebDeploy
Source control integration (GitHub, Git, VS Online)
FTP
Azure Web Apps - deployment slots
Dev/test/prod “instances” of
your site
• Own URL
• Own App Settings/Connection
Strings
http://mysite.azurewebsites.net
http://mysite-dev.azurewebsites.net
http://mysite-test.azurewebsites.net
Allows you to test purely
in production Office 365
environment, BUT with
dev/test/prod code!
In Azure
portal:
PowerShell:
“Swapping” deployment slots
Slots can be swapped to
deploy updates
Actually a DNS update, not copy
of content
Process:
Publish updates to dev/test slots
Swap test/production when ready
Switch-AzureWebsiteSlot
–Name ‘COB website’
-Slot1 'Production'
-Slot2 <slotName>
More Azure coolness – “Testing in production”
Traffic Routing - send
some traffic to another
slot
Uses:
Testing new functionality on
small number of users
A/B testing
What is App Insights?
Azure-based monitoring/reporting of
your app
• Exceptions
• Events within your app
Basic page analytics
• (Not really suitable for site owners)
Free up to 20GB per month
Getting started
ASP.NET web app
• NuGet package:
Install-Package
Microsoft.ApplicationInsights
• https://www.nuget.org/
packages/Microsoft.
ApplicationInsights/
Modern web app
• npm package:
npm i applicationinsights
• https://www.npmjs.com/
package/
applicationinsights
Instrumentation key
Links your code to App Insights instance:
Log custom events/metrics
How long does a (Graph?) API
call take *for the user*?
How often did a user click
button X?
What are the most popular
file types?
Simple code hosting
Scenarios
• Button click (e.g. web part)
• Scheduled process
• Respond to event (e.g. new file in Azure)
Develop in any language
• C#, JavaScript, PowerShell etc.
Simpler than a Web Job or Web API!
Functions – pricing plans
App service plan Consumption plan
Runs on dedicated VMs Serverless
Pay for containing VM Pay for what you use (executions)
Great if running at high scale Great for intermittent/quicker jobs
Scale at VM level Scale up automatically
MORE EXPENSIVE CHEAPER
So, generally you want the consumption plan!
Functions vs. Web Jobs
Similarities
• Both can be scheduled or use trigger (queue/BLOB
etc.)
• Both support C#, JavaScript, PS
Differences
• Pricing - only Functions have pay-per-use option
• Flexibility - Functions can be triggered from HTTP
call/web hook, OneDrive, Github etc.
• Restrictions – max 10 min timeout on Function
Typically Functions > Web Jobs See http://cob-sp.com/2r1MZe5
Authentication options
Function auth
• A simple code passed to function
• Caller must know/store the code
• Auth to Office 365/SP handled separately
Azure AD auth
• Function cannot be called without auth token
• Requires adal.js/msal.js from JavaScript OR cookie/IFrame approach (currently)
• OpenID Connect may help in SPFx in future?
https://cob-pnp-
functions.azurewebsite
s.net//api/CreateModer
nPage?
code=
FniGsXQ43Nf1HYB0JEIRuR
rbLPaTTQnuithMnqtXoLQ5
4Hz6FY/j3g==
Options for developing Azure Functions (C#)
Use Azure portal
• Good for playing
around
• No source control
• Little coding support
Use VS Code
• Sync from source
control to Function
• Little coding support
for C# (more for
node.js)
Use Visual Studio 2017
• Full coding support (F5
debug, IntelliSense)
• Publish to Azure
• Requires VS2017 15.3+
with Azure
development workload
.csx files and #r references True C#
Azure Functions in the real world
Secured by AAD auth
Identity of current user available if required
Use of NuGet packages
Uses App Insights for monitoring
Uses PnP Core
Callable from SPFx (with adal.js or cookie method)
Stop storing things in SharePoint
that should be in SQL!
Benefits
Get started
faster than
on-prem
Don’t worry
about
backups (or
patching)
High
availability
Data
replicated
to 3 servers
Pricing:
- Free up to
20MB
- Pay for data
used
Azure SQL DB sizes
SQL in an Office 365 world
Can now auth with AAD identity
• No need for separate SQL
auth/identity
• Best practice – set AAD Group, not
User to be admin
Code options
• Connect with certificate – app-only
auth
• Connect with user token (using
MSAL or ADAL) – user auth
Create a new DB/add item with EF
Entity Framework code: using (var db = new ListDbContext())
{
List list = new List();
list.ListId = Guid.NewGuid();
list.WebId = Guid.NewGuid();
list.SiteId = Guid.NewGuid();
ListItem item = new ListItem();
item.List = list;
item.ItemUniqueId = Guid.NewGuid();
item.Id = 1;
db.Lists.Add(list);
db.SaveChanges();
db.ListItems.Add(item);
db.SaveChanges();
}
ARM templates
Easily deploy without button clicks!
Defined in JSON, deployed with
PowerShell (or C# etc.)
• Parameters extracted to separate file
Deploy entire app, and optionally resources (e.g.
code):
• Web app (inc. App Settings, SSL cert etc.)
• SQL Database
• Function app
• etc.
New-
AzureRmResource
GroupDeployment
–TemplateFile
xyz
Building an ARM template
• The scope is a Resource Groupod
reason to structure your resources in this way
• Export-AzureRmResourceGroup
• See
https://azure.microsoft.com/en-
us/blog/export-template
ARM templates – commands
New-AzureRmResourceGroupDeployment
-ResourceGroupName foo –TemplateFile app.json
-TemplateParameterFile params.json
- Mode Incremental
Test-AzureRmResourceGroupDeployment
–TemplateFile xyz
New-AzureRmResourceGroupDeployment
-ResourceGroupName foo –TemplateFile app.json
-TemplateParameterFile params.json
- Mode Incremental
Advanced ARM scenarios
Auto-deploying files for web app/Function
• Zip file must exist in Azure BLOB storage
• Auto-deploying SSL certs
• Fetch bytes from filesystem, use in parameters object
ARM templates – other features
Define
dependencies, for
correct provisioning
sequence
Tags
Role-based security
Queues are great for..
Anything that should be picked up by a longer running task
• SharePoint site provisioning
• SharePoint web hooks
• File processing (e.g. my image renditions demo)
QueueTrigger – the key
• Auto-runs your code (when new item added)
• Azure Function
• Azure Web Job
Decoupling code with a Queue
Itake thingsfrom queue
andprocessthem e.g.
- AzureFunction
- AzureWebJob
Iput thingson queue
QueueTriggerC#, REST etc.
What goes on a Queue?
Answer – a string (i.e.
anything)
{
“SiteUrl”: “/Project12345”,
“Title”: “Project 12345”,
“Template”: “ProjectSite”
“Owners”: {
“Primary”: “chris.obrien@foo.com”,
“Secondary”: “adam.smith@foo.com”
}
}
Create object
Serialize
Add to queue
Adding a queue item
// Retrieve storage account from connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("StorageConnectionString"));
// Create the queue client.
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
// Retrieve a reference to a queue.
CloudQueue queue = queueClient.GetQueueReference(“SiteRequestQueue");
// Create a message and add it to the queue.
CloudQueueMessage message = new CloudQueueMessage(siteInfoObject);
queue.AddMessage(message);
Other ops:
- Peek message
- Dequeue
message
- Amend contents
of existing
message
Storage Queues vs. Service Bus Queues
Be aware of the two options..
..but Storage Queues work well for most
Key differences:
Storage Queue Service Bus Queue
7 day max lifetime Unlimited lifetime
Full transaction log No transaction log
Order not guaranteed Order can be guaranteed
Potential duplicates Duplicate detection
Simpler More complex
See
http://cob-sp.com/
AzureQueues
And we didn’t even talk about…!
Azure Containers
(Docker)
API management Virtual machines (of course!)
Azure RMS Azure B2C Azure mobile apps (e.g. notification hub)
HDInsight Azure Data Lake Azure virtual networks
Azure media
services
Azure batch (HPC) Azure backup vault
Key take-aways
Web apps are cooler than you think!
Write your first Azure Function!
Perfect for timer jobs, perfect for web APIs (e.g. advanced web parts)
Try deploying the PnP Partner Pack as a good exercise
(manual approach)
Deployment slots
App Insights
Testing in production
Useful links
Azure Storage Explorer
• https://AzureStorageExplorer.codeplex.com
Azure Functions / SPFx series
• http://cob-sp.com/SPFx-AzureFunc-1
PnP Partner Pack
• https://github.com/SharePoint/PnP-Partner-Pack
Thank you!! 
Any questions?
www.sharepointnutsandbolts.com
@ChrisO_Brien

Más contenido relacionado

La actualidad más candente

[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
[Patel] SPFx: An ISV Insight into latest Microsoft's customization modelEuropean Collaboration Summit
 
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - referenceChris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - referenceChris O'Brien
 
Application Lifecycle Management for Office 365 development
Application Lifecycle Management for Office 365 developmentApplication Lifecycle Management for Office 365 development
Application Lifecycle Management for Office 365 developmentChris O'Brien
 
ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...
ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...
ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...European Collaboration Summit
 
COB - PowerApps - the good, the bad and the ugly - early 2018
COB - PowerApps - the good, the bad and the ugly - early 2018COB - PowerApps - the good, the bad and the ugly - early 2018
COB - PowerApps - the good, the bad and the ugly - early 2018Chris O'Brien
 
Do's and don'ts for Office 365 development
Do's and don'ts for Office 365 developmentDo's and don'ts for Office 365 development
Do's and don'ts for Office 365 developmentChris O'Brien
 
SPUnite17 Timer Jobs Event Handlers
SPUnite17 Timer Jobs Event HandlersSPUnite17 Timer Jobs Event Handlers
SPUnite17 Timer Jobs Event HandlersNCCOMMS
 
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...NCCOMMS
 
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 2018serge luca
 
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...NCCOMMS
 
[White/Himmelstein] Bridge the Cloud Divide with Hybrid Business Intelligence
[White/Himmelstein] Bridge the Cloud Divide with Hybrid Business Intelligence[White/Himmelstein] Bridge the Cloud Divide with Hybrid Business Intelligence
[White/Himmelstein] Bridge the Cloud Divide with Hybrid Business IntelligenceEuropean Collaboration Summit
 
O365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
O365Con18 - Automate your Tasks through Azure Functions - Elio StruyfO365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
O365Con18 - Automate your Tasks through Azure Functions - Elio StruyfNCCOMMS
 
ECS19 - Patrick Curran - Expanding User Profiles with Line of Business Data (...
ECS19 - Patrick Curran - Expanding User Profiles with Line of Business Data (...ECS19 - Patrick Curran - Expanding User Profiles with Line of Business Data (...
ECS19 - Patrick Curran - Expanding User Profiles with Line of Business Data (...European Collaboration Summit
 
DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISE
DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISEDEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISE
DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISEEuropean Collaboration Summit
 
Chris O'Brien - Introduction to the SharePoint Framework for developers
Chris O'Brien - Introduction to the SharePoint Framework for developersChris O'Brien - Introduction to the SharePoint Framework for developers
Chris O'Brien - Introduction to the SharePoint Framework for developersChris O'Brien
 
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...Chris O'Brien
 
ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...
ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...
ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...European Collaboration Summit
 

La actualidad más candente (20)

[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
 
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - referenceChris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - reference
 
ECS19 Bert Jansen - Modernizing your existing sites
ECS19 Bert Jansen - Modernizing your existing sitesECS19 Bert Jansen - Modernizing your existing sites
ECS19 Bert Jansen - Modernizing your existing sites
 
Application Lifecycle Management for Office 365 development
Application Lifecycle Management for Office 365 developmentApplication Lifecycle Management for Office 365 development
Application Lifecycle Management for Office 365 development
 
ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...
ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...
ECS 19 - Chris O'Brien - The hit list - Office 365 dev techniques you should ...
 
[Roine] Serverless: Don't Take It Literally
[Roine] Serverless: Don't Take It Literally[Roine] Serverless: Don't Take It Literally
[Roine] Serverless: Don't Take It Literally
 
COB - PowerApps - the good, the bad and the ugly - early 2018
COB - PowerApps - the good, the bad and the ugly - early 2018COB - PowerApps - the good, the bad and the ugly - early 2018
COB - PowerApps - the good, the bad and the ugly - early 2018
 
Do's and don'ts for Office 365 development
Do's and don'ts for Office 365 developmentDo's and don'ts for Office 365 development
Do's and don'ts for Office 365 development
 
SPUnite17 Timer Jobs Event Handlers
SPUnite17 Timer Jobs Event HandlersSPUnite17 Timer Jobs Event Handlers
SPUnite17 Timer Jobs Event Handlers
 
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...
 
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
 
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
 
[White/Himmelstein] Bridge the Cloud Divide with Hybrid Business Intelligence
[White/Himmelstein] Bridge the Cloud Divide with Hybrid Business Intelligence[White/Himmelstein] Bridge the Cloud Divide with Hybrid Business Intelligence
[White/Himmelstein] Bridge the Cloud Divide with Hybrid Business Intelligence
 
O365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
O365Con18 - Automate your Tasks through Azure Functions - Elio StruyfO365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
O365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
 
ECS19 - Patrick Curran - Expanding User Profiles with Line of Business Data (...
ECS19 - Patrick Curran - Expanding User Profiles with Line of Business Data (...ECS19 - Patrick Curran - Expanding User Profiles with Line of Business Data (...
ECS19 - Patrick Curran - Expanding User Profiles with Line of Business Data (...
 
DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISE
DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISEDEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISE
DEVELOPING SHAREPOINT FRAMEWORK SOLUTIONS FOR THE ENTERPRISE
 
Chris O'Brien - Introduction to the SharePoint Framework for developers
Chris O'Brien - Introduction to the SharePoint Framework for developersChris O'Brien - Introduction to the SharePoint Framework for developers
Chris O'Brien - Introduction to the SharePoint Framework for developers
 
[Struyf] Automate Your Tasks With Azure Functions
[Struyf] Automate Your Tasks With Azure Functions[Struyf] Automate Your Tasks With Azure Functions
[Struyf] Automate Your Tasks With Azure Functions
 
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
 
ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...
ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...
ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...
 

Similar a Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers

Serverless API with Azure Functions
Serverless API with Azure FunctionsServerless API with Azure Functions
Serverless API with Azure FunctionsAnalben Mehta
 
Building API in the cloud using Azure Functions
Building API in the cloud using Azure FunctionsBuilding API in the cloud using Azure Functions
Building API in the cloud using Azure FunctionsAleksandar Bozinovski
 
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, 2011Spiffy
 
Spca2014 chris o brien modern share-point development - techniques for off-...
Spca2014 chris o brien   modern share-point development - techniques for off-...Spca2014 chris o brien   modern share-point development - techniques for off-...
Spca2014 chris o brien modern share-point development - techniques for off-...NCCOMMS
 
Building Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows AzureBuilding Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows AzureBill Wilder
 
Azure Functions Real World Examples
Azure Functions Real World Examples Azure Functions Real World Examples
Azure Functions Real World Examples Yochay Kiriaty
 
Getting Started with Serverless Architectures using Azure Functions
Getting Started with Serverless Architectures using Azure FunctionsGetting Started with Serverless Architectures using Azure Functions
Getting Started with Serverless Architectures using Azure FunctionsMarc Duiker
 
2014 SharePoint Saturday Melbourne Apps or not to Apps
2014 SharePoint Saturday Melbourne Apps or not to Apps2014 SharePoint Saturday Melbourne Apps or not to Apps
2014 SharePoint Saturday Melbourne Apps or not to AppsGilles Pommier
 
MSFT Dumaguete 061616 - Building High Performance Apps
MSFT Dumaguete 061616 - Building High Performance AppsMSFT Dumaguete 061616 - Building High Performance Apps
MSFT Dumaguete 061616 - Building High Performance AppsMarc Obaldo
 
2013 - Back to the Future with Client/Server Development
2013 - Back to the Future with Client/Server Development 2013 - Back to the Future with Client/Server Development
2013 - Back to the Future with Client/Server Development Chris O'Connor
 
Cloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps  with AzureCloud Powered Mobile Apps  with Azure
Cloud Powered Mobile Apps with AzureKris Wagner
 
Sergiy Lunyakin "Cloud BI with Azure Analysis Services"
Sergiy Lunyakin "Cloud BI with Azure Analysis Services"Sergiy Lunyakin "Cloud BI with Azure Analysis Services"
Sergiy Lunyakin "Cloud BI with Azure Analysis Services"DataConf
 
Automating Your Azure Environment
Automating Your Azure EnvironmentAutomating Your Azure Environment
Automating Your Azure EnvironmentMichael Collier
 
Continuously deploy a containerized app to “Azure App Service”
Continuously deploy a containerized app to “Azure App Service”Continuously deploy a containerized app to “Azure App Service”
Continuously deploy a containerized app to “Azure App Service”Seven Peaks Speaks
 
Microsoft SQL Azure - Building Applications Using SQL Azure Presentation
Microsoft SQL Azure - Building Applications Using SQL Azure PresentationMicrosoft SQL Azure - Building Applications Using SQL Azure Presentation
Microsoft SQL Azure - Building Applications Using SQL Azure PresentationMicrosoft Private Cloud
 
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 flowVincent Biret
 
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...SPS Paris
 
Infrastructure as a service and code using Azure - DevOps practice
Infrastructure as a service and code using Azure  - DevOps practiceInfrastructure as a service and code using Azure  - DevOps practice
Infrastructure as a service and code using Azure - DevOps practiceSrini Kadiam
 
Azure Functions. Hasta la Vista Server...
Azure Functions. Hasta la Vista Server...Azure Functions. Hasta la Vista Server...
Azure Functions. Hasta la Vista Server...Carlos Mendible
 

Similar a Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers (20)

Serverless API with Azure Functions
Serverless API with Azure FunctionsServerless API with Azure Functions
Serverless API with Azure Functions
 
Building API in the cloud using Azure Functions
Building API in the cloud using Azure FunctionsBuilding API in the cloud using Azure Functions
Building API in the cloud using Azure Functions
 
Azure App Services
Azure App ServicesAzure App Services
Azure App Services
 
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
 
Spca2014 chris o brien modern share-point development - techniques for off-...
Spca2014 chris o brien   modern share-point development - techniques for off-...Spca2014 chris o brien   modern share-point development - techniques for off-...
Spca2014 chris o brien modern share-point development - techniques for off-...
 
Building Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows AzureBuilding Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows Azure
 
Azure Functions Real World Examples
Azure Functions Real World Examples Azure Functions Real World Examples
Azure Functions Real World Examples
 
Getting Started with Serverless Architectures using Azure Functions
Getting Started with Serverless Architectures using Azure FunctionsGetting Started with Serverless Architectures using Azure Functions
Getting Started with Serverless Architectures using Azure Functions
 
2014 SharePoint Saturday Melbourne Apps or not to Apps
2014 SharePoint Saturday Melbourne Apps or not to Apps2014 SharePoint Saturday Melbourne Apps or not to Apps
2014 SharePoint Saturday Melbourne Apps or not to Apps
 
MSFT Dumaguete 061616 - Building High Performance Apps
MSFT Dumaguete 061616 - Building High Performance AppsMSFT Dumaguete 061616 - Building High Performance Apps
MSFT Dumaguete 061616 - Building High Performance Apps
 
2013 - Back to the Future with Client/Server Development
2013 - Back to the Future with Client/Server Development 2013 - Back to the Future with Client/Server Development
2013 - Back to the Future with Client/Server Development
 
Cloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps  with AzureCloud Powered Mobile Apps  with Azure
Cloud Powered Mobile Apps with Azure
 
Sergiy Lunyakin "Cloud BI with Azure Analysis Services"
Sergiy Lunyakin "Cloud BI with Azure Analysis Services"Sergiy Lunyakin "Cloud BI with Azure Analysis Services"
Sergiy Lunyakin "Cloud BI with Azure Analysis Services"
 
Automating Your Azure Environment
Automating Your Azure EnvironmentAutomating Your Azure Environment
Automating Your Azure Environment
 
Continuously deploy a containerized app to “Azure App Service”
Continuously deploy a containerized app to “Azure App Service”Continuously deploy a containerized app to “Azure App Service”
Continuously deploy a containerized app to “Azure App Service”
 
Microsoft SQL Azure - Building Applications Using SQL Azure Presentation
Microsoft SQL Azure - Building Applications Using SQL Azure PresentationMicrosoft SQL Azure - Building Applications Using SQL Azure Presentation
Microsoft SQL Azure - Building Applications Using SQL Azure Presentation
 
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
 
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...
 
Infrastructure as a service and code using Azure - DevOps practice
Infrastructure as a service and code using Azure  - DevOps practiceInfrastructure as a service and code using Azure  - DevOps practice
Infrastructure as a service and code using Azure - DevOps practice
 
Azure Functions. Hasta la Vista Server...
Azure Functions. Hasta la Vista Server...Azure Functions. Hasta la Vista Server...
Azure Functions. Hasta la Vista Server...
 

Más de Chris O'Brien

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 workChris O'Brien
 
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)Chris O'Brien
 
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrienDeep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrienChris O'Brien
 
Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrien
Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrienCustomizing the SharePoint 2013 user interface with JavaScript - Chris OBrien
Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrienChris O'Brien
 
SP2013 for Developers - Chris O'Brien
SP2013 for Developers - Chris O'BrienSP2013 for Developers - Chris O'Brien
SP2013 for Developers - Chris O'BrienChris O'Brien
 
Getting to grips with SharePoint 2013 apps - Chris O'Brien
Getting to grips with SharePoint 2013 apps - Chris O'BrienGetting to grips with SharePoint 2013 apps - Chris O'Brien
Getting to grips with SharePoint 2013 apps - Chris O'BrienChris O'Brien
 
SharePoint Ribbon Deep Dive
SharePoint Ribbon Deep DiveSharePoint Ribbon Deep Dive
SharePoint Ribbon Deep DiveChris O'Brien
 
Automated Builds And UI Testing in SharePoint 2010 Development
Automated Builds And UI Testing in SharePoint 2010 DevelopmentAutomated Builds And UI Testing in SharePoint 2010 Development
Automated Builds And UI Testing in SharePoint 2010 DevelopmentChris O'Brien
 
Optimizing SharePoint 2010 Internet Sites
Optimizing SharePoint 2010 Internet SitesOptimizing SharePoint 2010 Internet Sites
Optimizing SharePoint 2010 Internet SitesChris O'Brien
 
Managing the SharePoint 2010 Application Lifecycle - Part 2
Managing the SharePoint 2010 Application Lifecycle - Part 2Managing the SharePoint 2010 Application Lifecycle - Part 2
Managing the SharePoint 2010 Application Lifecycle - Part 2Chris O'Brien
 
Managing the SharePoint 2010 Application Lifecycle - Part 1
Managing the SharePoint 2010 Application Lifecycle - Part 1Managing the SharePoint 2010 Application Lifecycle - Part 1
Managing the SharePoint 2010 Application Lifecycle - Part 1Chris O'Brien
 
SharePoint workflow deep-dive
SharePoint workflow deep-dive SharePoint workflow deep-dive
SharePoint workflow deep-dive Chris O'Brien
 
SharePoint Web Content Management - Lessons Learnt/top 5 tips
SharePoint Web Content Management - Lessons Learnt/top 5 tipsSharePoint Web Content Management - Lessons Learnt/top 5 tips
SharePoint Web Content Management - Lessons Learnt/top 5 tipsChris O'Brien
 

Más de Chris O'Brien (13)

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
 
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)
 
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrienDeep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
 
Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrien
Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrienCustomizing the SharePoint 2013 user interface with JavaScript - Chris OBrien
Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrien
 
SP2013 for Developers - Chris O'Brien
SP2013 for Developers - Chris O'BrienSP2013 for Developers - Chris O'Brien
SP2013 for Developers - Chris O'Brien
 
Getting to grips with SharePoint 2013 apps - Chris O'Brien
Getting to grips with SharePoint 2013 apps - Chris O'BrienGetting to grips with SharePoint 2013 apps - Chris O'Brien
Getting to grips with SharePoint 2013 apps - Chris O'Brien
 
SharePoint Ribbon Deep Dive
SharePoint Ribbon Deep DiveSharePoint Ribbon Deep Dive
SharePoint Ribbon Deep Dive
 
Automated Builds And UI Testing in SharePoint 2010 Development
Automated Builds And UI Testing in SharePoint 2010 DevelopmentAutomated Builds And UI Testing in SharePoint 2010 Development
Automated Builds And UI Testing in SharePoint 2010 Development
 
Optimizing SharePoint 2010 Internet Sites
Optimizing SharePoint 2010 Internet SitesOptimizing SharePoint 2010 Internet Sites
Optimizing SharePoint 2010 Internet Sites
 
Managing the SharePoint 2010 Application Lifecycle - Part 2
Managing the SharePoint 2010 Application Lifecycle - Part 2Managing the SharePoint 2010 Application Lifecycle - Part 2
Managing the SharePoint 2010 Application Lifecycle - Part 2
 
Managing the SharePoint 2010 Application Lifecycle - Part 1
Managing the SharePoint 2010 Application Lifecycle - Part 1Managing the SharePoint 2010 Application Lifecycle - Part 1
Managing the SharePoint 2010 Application Lifecycle - Part 1
 
SharePoint workflow deep-dive
SharePoint workflow deep-dive SharePoint workflow deep-dive
SharePoint workflow deep-dive
 
SharePoint Web Content Management - Lessons Learnt/top 5 tips
SharePoint Web Content Management - Lessons Learnt/top 5 tipsSharePoint Web Content Management - Lessons Learnt/top 5 tips
SharePoint Web Content Management - Lessons Learnt/top 5 tips
 

Último

Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 

Último (20)

Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 

Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers

  • 1. Azure – the best bits (for Office 365/SharePoint devs) Chris O’Brien (MVP) Independent/Content and Code, UK Add Speaker Photo here
  • 2. Top Office 365 + Azure scenarios What? How? Do something on a schedule Put code in Azure Web Jobs/Functions Build apps (Office 365 app/SP provider-hosted add-in) Deploy app files to an Azure app SharePoint site provisioning Deploy PnP Partner Pack to Azure Run code on a button click Use Azure Functions + JavaScript Store data not suited to SP lists Use Azure SQL Database Store files for my app Use Azure BLOB storage (and CDN if appropriate) Implement SharePoint web hooks Use Azure Queues and Functions Implement authentication on a custom web app Implement Azure Active Directory (AAD) auth Or the general case: HOST MY REMOTE SHAREPOINT CODE!
  • 3. Some Azure features Compute •Virtual machines •App services/web apps •Web Jobs •Functions Storage •BLOB storage •Table storage •Queues •File service Data •Azure SQL Database •Redis cache •Azure Search •StorSimple •DocumentDB Messaging •Service Bus •Event Hubs •Queues/Topics/Relays Media • CDN • Encoding • Streaming Mobile services • Push notifications • Mobile Engagement Integration • Logic Apps • API management • Data Factory • Data Catalog Security and Identity • Azure Active Directory • AAD B2C • Azure RMS • Key Vault • MFA
  • 4. Azure is… Big > 90% Fortune 500 using MS cloud > Active websites 300k 1,000,000 715Azure AD users More than SQL databases in Azure 120kPER MONTH12Orgs in Azure AD M > >> M 3Requests per second M > 30Storage objects TN > 2Developers in VS Online M New Azure subscriptions Performance Q2 2017 •93% revenue increase YoY •2x compute usage YoY
  • 5.
  • 6. Web Apps A great hosting location • Easy to manage, scale up/down • Auto SSL/load-balancing/backup Perfect for extending SharePoint • Office 365 apps • SharePoint Add-ins • Standalone web apps Create Azure web app Register app in AAD/SP Configure Deploy files
  • 7. Deployment options Drag and drop in browser (Kudu) Publish from Visual Studio WebDeploy Source control integration (GitHub, Git, VS Online) FTP
  • 8. Azure Web Apps - deployment slots Dev/test/prod “instances” of your site • Own URL • Own App Settings/Connection Strings http://mysite.azurewebsites.net http://mysite-dev.azurewebsites.net http://mysite-test.azurewebsites.net Allows you to test purely in production Office 365 environment, BUT with dev/test/prod code!
  • 9. In Azure portal: PowerShell: “Swapping” deployment slots Slots can be swapped to deploy updates Actually a DNS update, not copy of content Process: Publish updates to dev/test slots Swap test/production when ready Switch-AzureWebsiteSlot –Name ‘COB website’ -Slot1 'Production' -Slot2 <slotName>
  • 10. More Azure coolness – “Testing in production” Traffic Routing - send some traffic to another slot Uses: Testing new functionality on small number of users A/B testing
  • 11.
  • 12.
  • 13. What is App Insights? Azure-based monitoring/reporting of your app • Exceptions • Events within your app Basic page analytics • (Not really suitable for site owners) Free up to 20GB per month
  • 14. Getting started ASP.NET web app • NuGet package: Install-Package Microsoft.ApplicationInsights • https://www.nuget.org/ packages/Microsoft. ApplicationInsights/ Modern web app • npm package: npm i applicationinsights • https://www.npmjs.com/ package/ applicationinsights
  • 15. Instrumentation key Links your code to App Insights instance:
  • 16. Log custom events/metrics How long does a (Graph?) API call take *for the user*? How often did a user click button X? What are the most popular file types?
  • 17.
  • 18. Simple code hosting Scenarios • Button click (e.g. web part) • Scheduled process • Respond to event (e.g. new file in Azure) Develop in any language • C#, JavaScript, PowerShell etc. Simpler than a Web Job or Web API!
  • 19. Functions – pricing plans App service plan Consumption plan Runs on dedicated VMs Serverless Pay for containing VM Pay for what you use (executions) Great if running at high scale Great for intermittent/quicker jobs Scale at VM level Scale up automatically MORE EXPENSIVE CHEAPER So, generally you want the consumption plan!
  • 20. Functions vs. Web Jobs Similarities • Both can be scheduled or use trigger (queue/BLOB etc.) • Both support C#, JavaScript, PS Differences • Pricing - only Functions have pay-per-use option • Flexibility - Functions can be triggered from HTTP call/web hook, OneDrive, Github etc. • Restrictions – max 10 min timeout on Function Typically Functions > Web Jobs See http://cob-sp.com/2r1MZe5
  • 21. Authentication options Function auth • A simple code passed to function • Caller must know/store the code • Auth to Office 365/SP handled separately Azure AD auth • Function cannot be called without auth token • Requires adal.js/msal.js from JavaScript OR cookie/IFrame approach (currently) • OpenID Connect may help in SPFx in future? https://cob-pnp- functions.azurewebsite s.net//api/CreateModer nPage? code= FniGsXQ43Nf1HYB0JEIRuR rbLPaTTQnuithMnqtXoLQ5 4Hz6FY/j3g==
  • 22. Options for developing Azure Functions (C#) Use Azure portal • Good for playing around • No source control • Little coding support Use VS Code • Sync from source control to Function • Little coding support for C# (more for node.js) Use Visual Studio 2017 • Full coding support (F5 debug, IntelliSense) • Publish to Azure • Requires VS2017 15.3+ with Azure development workload .csx files and #r references True C#
  • 23.
  • 24. Azure Functions in the real world Secured by AAD auth Identity of current user available if required Use of NuGet packages Uses App Insights for monitoring Uses PnP Core Callable from SPFx (with adal.js or cookie method)
  • 25.
  • 26. Stop storing things in SharePoint that should be in SQL!
  • 27. Benefits Get started faster than on-prem Don’t worry about backups (or patching) High availability Data replicated to 3 servers Pricing: - Free up to 20MB - Pay for data used
  • 28. Azure SQL DB sizes
  • 29. SQL in an Office 365 world Can now auth with AAD identity • No need for separate SQL auth/identity • Best practice – set AAD Group, not User to be admin Code options • Connect with certificate – app-only auth • Connect with user token (using MSAL or ADAL) – user auth
  • 30. Create a new DB/add item with EF Entity Framework code: using (var db = new ListDbContext()) { List list = new List(); list.ListId = Guid.NewGuid(); list.WebId = Guid.NewGuid(); list.SiteId = Guid.NewGuid(); ListItem item = new ListItem(); item.List = list; item.ItemUniqueId = Guid.NewGuid(); item.Id = 1; db.Lists.Add(list); db.SaveChanges(); db.ListItems.Add(item); db.SaveChanges(); }
  • 31.
  • 32. ARM templates Easily deploy without button clicks! Defined in JSON, deployed with PowerShell (or C# etc.) • Parameters extracted to separate file Deploy entire app, and optionally resources (e.g. code): • Web app (inc. App Settings, SSL cert etc.) • SQL Database • Function app • etc. New- AzureRmResource GroupDeployment –TemplateFile xyz
  • 33. Building an ARM template • The scope is a Resource Groupod reason to structure your resources in this way • Export-AzureRmResourceGroup • See https://azure.microsoft.com/en- us/blog/export-template
  • 34. ARM templates – commands New-AzureRmResourceGroupDeployment -ResourceGroupName foo –TemplateFile app.json -TemplateParameterFile params.json - Mode Incremental Test-AzureRmResourceGroupDeployment –TemplateFile xyz New-AzureRmResourceGroupDeployment -ResourceGroupName foo –TemplateFile app.json -TemplateParameterFile params.json - Mode Incremental
  • 35. Advanced ARM scenarios Auto-deploying files for web app/Function • Zip file must exist in Azure BLOB storage • Auto-deploying SSL certs • Fetch bytes from filesystem, use in parameters object
  • 36. ARM templates – other features Define dependencies, for correct provisioning sequence Tags Role-based security
  • 37.
  • 38. Queues are great for.. Anything that should be picked up by a longer running task • SharePoint site provisioning • SharePoint web hooks • File processing (e.g. my image renditions demo) QueueTrigger – the key • Auto-runs your code (when new item added) • Azure Function • Azure Web Job
  • 39. Decoupling code with a Queue Itake thingsfrom queue andprocessthem e.g. - AzureFunction - AzureWebJob Iput thingson queue QueueTriggerC#, REST etc.
  • 40. What goes on a Queue? Answer – a string (i.e. anything) { “SiteUrl”: “/Project12345”, “Title”: “Project 12345”, “Template”: “ProjectSite” “Owners”: { “Primary”: “chris.obrien@foo.com”, “Secondary”: “adam.smith@foo.com” } } Create object Serialize Add to queue
  • 41. Adding a queue item // Retrieve storage account from connection string. CloudStorageAccount storageAccount = CloudStorageAccount.Parse( CloudConfigurationManager.GetSetting("StorageConnectionString")); // Create the queue client. CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient(); // Retrieve a reference to a queue. CloudQueue queue = queueClient.GetQueueReference(“SiteRequestQueue"); // Create a message and add it to the queue. CloudQueueMessage message = new CloudQueueMessage(siteInfoObject); queue.AddMessage(message); Other ops: - Peek message - Dequeue message - Amend contents of existing message
  • 42.
  • 43. Storage Queues vs. Service Bus Queues Be aware of the two options.. ..but Storage Queues work well for most Key differences: Storage Queue Service Bus Queue 7 day max lifetime Unlimited lifetime Full transaction log No transaction log Order not guaranteed Order can be guaranteed Potential duplicates Duplicate detection Simpler More complex See http://cob-sp.com/ AzureQueues
  • 44. And we didn’t even talk about…! Azure Containers (Docker) API management Virtual machines (of course!) Azure RMS Azure B2C Azure mobile apps (e.g. notification hub) HDInsight Azure Data Lake Azure virtual networks Azure media services Azure batch (HPC) Azure backup vault
  • 45. Key take-aways Web apps are cooler than you think! Write your first Azure Function! Perfect for timer jobs, perfect for web APIs (e.g. advanced web parts) Try deploying the PnP Partner Pack as a good exercise (manual approach) Deployment slots App Insights Testing in production
  • 46. Useful links Azure Storage Explorer • https://AzureStorageExplorer.codeplex.com Azure Functions / SPFx series • http://cob-sp.com/SPFx-AzureFunc-1 PnP Partner Pack • https://github.com/SharePoint/PnP-Partner-Pack
  • 47. Thank you!!  Any questions? www.sharepointnutsandbolts.com @ChrisO_Brien