5. Choose your Editors
and Tools
Open Source
with Contributions Cross-PlatformOSS
Seamless transition
from on-premises to cloud
Faster Development CycleTotally Modular
Fast
6. .NET Standard
Base Core Library (BCL) supported by all
.NET Framework
ASP.NET
Console
Windows Forms
WPF
.NET Core
ASP.NET Core
Console
Xamarin
iOS
MacOS
Android
7. .NET Framework .NET Core
Full .NET Framework for any scenario and
library support on Windows
Modular libraries & runtime optimized for
server and cloud workloads
8. Create a new ASP.NET Core WebAPI
Work with authorization
Test locally and in Azure
9.
10.
11.
12.
13. Show data in PostMan
Show resources in Azure
Code walk-through:
• Data model, mock data,
updated values controller
• Configuration –
application.json, user secrets
http://bit.ly/AzureSPC-WebAPI
17. Name in Azure Portal Name in Resource Manager Other aliases What is it?
App Service Plan Microsoft.Web/serverFarms Web service Plan,
Server farm
Virtualized web farm
App Service Microsoft.Web/sites Web service Web site
App Service
Authentication
use a “Config” resource within
Microsoft.Web/sites
Easy Auth
18. App Service Reference Architectures
99.95% SLA does not apply to
free and shared tiers
19. FREE SHARED
GOOD FOR
FOR DEV/TEST
BASIC
GOOD FOR
DEV/TEST
STANDARD
GOOD FOR
PRODUCTION
WORKLOADS
PREMIUM
ENHANCED
PERF AND
SCALE
ISOLATED
HIGH-PERF,
SECURITY AND
ISOLATION
Web, mobile, or
API apps
10 100 Unlimited Unlimited Unlimited Unlimited
Disk space 1 GB 1 GB 10 GB 50 GB 250 GB 1 TB
Maximum
instances
– – Up to 3 Up to 10 Up to 20 Up to 100*
Custom domain – Supported Supported Supported Supported Supported
Auto Scale – – – Supported Supported Supported
VPN hybrid
connectivity
– – – Supported Supported Supported
Network
Isolation
Supported
23. Tightly coupled containers of
resources that are related in some
way
Every resource *must* exist in one
and only one resource group
Resource groups can span regions
Nesting of Resource Groups not
supported
RESOURCE GROUP
Set Permissions
Monitor and alerting rules
Billing
Deployment
Communication
24. Question:
Should these resources be in the
same group or a different one?
Hint:
Do they have common lifecycle
and management?
Answer:
Up to you.
27. Name-value pairs assigned to resources or
resource groups
Subscription-wide taxonomy
Each resource can have up to 15 tags
• Tag by environment, e.g. dev/test/prod
• Tag by role, e.g. web/cache/db
• Tag by department, e.g.
finance/retail/legal
• Tag by responsible party, e.g. Bob
• Tags show up in billing
28. When you download the usage CSV for services that support
tags with billing, the tags will appear in the Tags column.
29.
30. RBAC Concepts
Role Definitions
• describes the set of permissions
(e.g. read actions)
• can be used in multiple
assignments
Role Assignments
• associate role definitions with an
identity (e.g. user/group) at a
scope (e.g. resource group)
• always inherited – subscription
assignments apply to all resources
Show permissions in portal and
PowerShell
32. Azure Templates can:
• Repeated deployment and consistent state.
• Simplify Orchestration
• Simplify Roll-back
• Provide unified management and Update
Support.
Azure Templates are:
• Source file, checked-in
• Able to specify resources and
dependencies (VMs, WebSites, DBs) and
connections (config, LB sets)
• Based on parametrized input/output
SQL - A Website
Virtual
Machines
SQL-A
Website
[SQL CONFIG] VM (2x)
DEPENDS ON SQLDEPENDS ON SQL
SQL CONFIG
33. Element
name
Requi
red
Description
$schema Yes Location of the JSON schema file that describes the
version for the template language. You should use
the URL.
content
Version
Yes Version of the template. (i.e.1.0.0.0). Any value can
be provided. When deploying resources using the
template, this value ensures that the right template
is being used.
parameters No Values that are provided when deployment is
executed to customize resource deployment
variables No Values that are used as JSON fragments in the
template to simplify template language expressions
resources Yes Resource types that are deployed or updated in a
resource group
outputs No Values that are returned after deployment
37. • leaves unchanged resources that exist in the resource group but aren’t
specified in the template
• adds resources specified in the template that don’t exist in the resource group
• does not re-provision resources that exist in the resource group in the same
condition defined in the template
• deletes resources that exist in the resource group but aren’t specified in the
template
• adds resources specified in the template that don’t exist in the resource group
• does not re-provision resources that exist in the resource group in the same
condition defined in the template
38. Deployment Best Practices for ARM
1. Define and deploy your infrastructure through the declarative
syntax in Resource Manager templates, rather than through
imperative commands.
2. Define all deployment and configuration steps in the
template. You should have no manual steps for setting up
your solution.
3. Run imperative commands to manage your resources, such as
to start or stop an app or machine.
4. Arrange resources with the same lifecycle in a resource group.
Use tags for all other organizing of resources.
39.
40. Visual Studio Team Services
OneDrive
Local Git
Github
BitBucket
Dropbox
External repositories Show ARM code to deploy from Github
Show .deployment file
Show in portal
41. Call service from SPFx web part
Show in old and new admin portals
Code walk-through
43. Which one to use?
SQL Server in Azure VM
Need a specific version of SQL Server or Windows
Need instance-level SQL features (e.g. Agent Job, Linked
Servers, DTC)
Ok configuring/managing SQL Server and Windows (patching,
high availability, backups)
Great for migrating existing apps
Azure SQL Database
Don’t need a specific version of SQL Server or Windows
Don’t need instance-level SQL features
Don’t want to configure and manage SQL Server or
Windows
Great for new apps
Many customers use both
44. Built for SaaS and Enterprise applications
Predictable performance & pricing
99.99% availability built-in
Geo-replication and restore services for data
protection
Secure and compliant for your sensitive data
Fully compatible with SQL Server 2014 databases
Fully managed SQL database service so you can focus on your business
SQL DB
V12
45. B S0 S1 S2 S3 P1 P2 P4 P6 P11
Database Throughput Units (DTUs)
Azure SQL Database Service Tiers
Basic, Standard, and Premium provide increasing
performance levels
Scale individual databases up/down via portal, PS, APIs, or
T-SQL
Database remains online while scaling
Hourly billing provides cost efficiency
46. What exactly is a DTU?
% CPU
% READ % WRITE
% MEMORY
DTU represents a set of operations that
are typical for an online transaction processing
(OLTP) request, and then measured by how
many transactions could be completed per
second under fully loaded conditions
Create SQL Server and database using ARM
48. LINQ to Entities
Object Services
ObjectQuery
Entity SQL
Entity Client
Entity Framework layers
Conceptural
Mapping
Logical
1st migration
Scaffolding a Web API Controller for our DB
nuget packages
DB Context code
66. DNS-based load balancing and failover
Health probe of endpoints to determine availability
Impact of Time To Live (TTL)
Multiple performance policies
WRK403 - What Every SharePoint Developer should know about Microsoft Azure
While the SharePoint Framework is the new place to customize the SharePoint UI, it runs completely within the web browser, and does nothing to help with background processing or other server-side work, including situations where you need to elevate permissions beyond what the end user is allowed to do. Both sandboxed and farm solutions are off the table in SharePoint Online, leaving few SharePoint-based options for this kind of work. Fortunately, Microsoft Azure is well positioned to handle these situations and many more, and should be part of every SharePoint developer's tool set.This workshop will introduce Azure platform services including Azure Active Directory, web apps, logic apps, Azure Functions, and more. You will learn practical approaches to integrate these with SharePoint. Scenarios will include:• Surfacing line of business data in SharePoint via Azure web apps and functions• Elevating permission in a SharePoint web part• Using Azure functions as timer jobs and web services• Implementing workflows and business orchestration with Azure Logic Apps• Storing and querying large data sets (beyond 5,000 rows) in SQL Azure• Safely managing security and secrets in your Azure code with Managed Service Identities and Key VaultAttendees should have a working knowledge of C# development and familiarity with SharePoint Online.Don't miss this opportunity to upgrade your development skills for modern SharePoint!
2
4 STEP video demo
1. Create new project, get 401, comment out Authorize2. Open Azure AD fix up entry copy values
3. Test in Postman – 401 – fix headers, select right token – works!
4. Deploy to Azure works there too
4 STEP video demo
1. Create new project, get 401, comment out Authorize2. Open Azure AD fix up entry copy values
3. Test in Postman – 401 – fix headers, select right token – works!
4. Deploy to Azure works there too
4 STEP video demo
1. Create new project, get 401, comment out Authorize2. Open Azure AD fix up entry copy values
3. Test in Postman – 401 – fix headers, select right token – works!
4. Deploy to Azure works there too
4 STEP video demo
1. Create new project, get 401, comment out Authorize2. Open Azure AD fix up entry copy values
3. Test in Postman – 401 – fix headers, select right token – works!
4. Deploy to Azure works there too
4 STEP video demo
1. Create new project, get 401, comment out Authorize2. Open Azure AD fix up entry copy values
3. Test in Postman – 401 – fix headers, select right token – works!
4. Deploy to Azure works there too
Blue pill – go on believing what you want
Red pill – all the way down the rabbit hole
A JSON template file is a text file that contains descriptions of the resources, configurations code and extensions. JSON templates are idempotent, which means that they can be run multiple times without changing the outcome beyond initial deployment. A consequence of this characteristic is that templates can be used to upgrade applications, for example, by scaling out applications with additional VMs. You modify the template to include the specifications for the additional virtual machines. When you deploy the template, Azure Resource Manager will recognize the resources that have previously been deployed and create only the resources that have been added.
A JSON template is divided into sections:
<CLICK> The $schema (a required element that provides the location of the file that describes the version of the template language) along with a required element that provides the version of the template
The schema reference is used by intelligent JSON clients to determine the schema that is applicable to the JSON file and to provide additional functionality such as autocomplete and intellisense.
<CLICK> Parameters (optional elements that define values that are passed in when the template is executed)
The value for the Parameters key is an array of parameter objects that representing the dynamic input for the JSON template. Each of the parameter objects has a name that is used pass values in at runtime and is referenced within the JSON itself in other sections. For example, "NewStorageAccount" is the name of the parameter that is supplied as an input and used to provide the name of the storage account resource specified in the JSON file.
<CLICK> Variables (optional elements that define the values that are used when template is executed)
<CLICK> Resources (a required element that defines the resources that are deployed or updated in a resource group); and
This slide doesn’t show it, but you can also have an optional Outputs section that defines values that are returned after a deployment
<CLICK> A JSON file is constructed of key/value pairs. For example, in the image above, "ContentVersion" is the key and "1.0.0.0" is the value. A key is always a string enclosed in quotation marks. A value can be a string, securestring, number, boolean expression, array, or object. A JSON object is enclosed in curly braces, "{ }". In a key/value pair the key is always followed by a colon. Key/pairs are separated by commas.
A JSON template may also contain functions and expressions. Expression are enclosed in square brackets, "[ ]', and can appear anywhere in a JSON string. Functions calls have the format functionName(arg1,arg2,arg3). Properties are referenced using the dot and index operators.
The lab provides notes with additional details regarding specific parameters, variables, resources, etc.
Authoring Azure Resource Manager templates
https://azure.microsoft.com/en-us/documentation/articles/resource-group-authoring-templates/
In general don’t worry about it
As you scale out, fabric controller will put instances into different fault domains