SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Downloaden Sie, um offline zu lesen
Windows Azure Mobile Services:
The Perfect Partner
Michael S. Collier
@MichaelCollier
CodeMash – January 9, 2014
Michael S. Collier
• Principal Cloud Architect, Aditi

• michaelc@aditi.com
• @MichaelCollier
• www.MichaelSCollier.com
UPCOMING WINDOWS AZURE EVENTS
 DevUnleashed
 Saturday, February 8th
 Microsoft – Columbus
 Michael Collier, Samidip Basu, Jared Faris, or Mike Wood

 Global Windows Azure Boot Camp
 Saturday, March 29th
 http://global.windowsazurebootcamp.com
 Michael Collier, Brian Sherwin, or Mike Wood

 CloudDevelop
 Friday, August 15th 2014
 Ohio Union – The Ohio State University
 www.CloudDevelop.org / @CloudDevConf
 Michael Collier or Jared Faris
CLOUD / MOBILE USER GROUPS
Central Ohio Cloud Computing
User Group

Windows Developer User Group

 Windows Azure, AWS, Google, etc

 3rd Monday of each month

 2nd Monday of each month

 6pm – 8pm

 6pm – 8pm

 TechColumbus

 Improving Enterprises, Columbus

 http://thewindowsdeveloperusergroup.com/

 www.coccug.org

 @WindowsDevUG

 @coccug

 Samidip Basu

 Michael Collier

 Windows Store & Windows Phone
Agenda
•
•
•
•
•
•

What is it? / Getting Started
Data Storage Options
Server Scripts / Business Logic
Push Notifications
User Authentication
Diagnostics / Monitoring

• Q&A
6
Mobile Backend-as-a-Service (MBaaS)

Additional Services

Scheduled Tasks

Unstructured Storage

Messaging

Structured Storage

Identity

Windows Azure Mobile Services
Windows Azure Mobile Services
What is Windows Azure Mobile Services

Image courtesy of Windows Azure Training Kit

http://aka.ms/mobileservices
Client Support
Windows Phone
Windows Store
Android
iOS
HTML5
Xamarin.iOS
Xamarin.Android
Sencha
Image courtesy of http://msdn.microsoft.com/en-us/library/windowsazure/jj554228
DEMO TIME!!!
12
Shhh . . . It’s a Secret
Application Key
NOT A SECURITY TOKEN/CONTROL
Hint that user is coming from your app (reduce chance of
misuse)
Private until you publish the app

Master Key
All powerful
Do NOT distribute with your application
Use from server-side logic you control
Unstructured Data Storage
Leverage Windows Azure Storage or Service Bus
Tables: schemaless entity storage; NoSQL
Blobs: storage for any binary object (files . . . whatever you want)
Queues: simple messaging (push/pop)

Access via Windows Azure module for node.js
var azure = require('azure');
var tableService = azure.createTableService(‘<storage account>',‘<storage
key>', 'table.core.windows.net');
tableService.insertEntity(‘<table>’, entity, function(error) { });
Structured Data Storage
Leverage strengths of Windows Azure SQL Database
New or Existing Database
Reporting, TSQL support, existing tools, etc.
Manage your way (portal, REST API, SSMS, etc.)

Partition applications by schema
mycoupons.Users
speakers.Users

Dynamic Schema Support (on/off)
Default System Columns
Column

Type

Description

id

string

__createdAt

date

Any unique string
If not provided, server will create a unique value (GUID)
Set when item is inserted

__updatedAt

date

__version

timestamp

Set anytime there is an update to the item.
Updated via database trigger.
Unique value updated anytime there is a change to the item
Read-only value

•
•

Columns starting with ‘__’ (two underscores) will be rejected.
System columns not returned by default. Set ‘__systemProperties’ on request or
‘systemProperties’ in server

•

azure mobile table create --integerId [service_name] [table_name]

More info at http://blogs.msdn.com/b/carlosfigueira/archive/2013/11/23/new-tables-in-azure-mobile-services-string-id-system-properties-and-optimistic-concurrency.aspx
16
Data Access
REST API
OData Interface
GET, POST, PATCH, DELETE
https://<service>.azure-mobile.net/tables/<table_name>/{<item_id>}
Authorization
X-ZUM0-{APPLICATION | AUTH | MASTER}

Send JSON in request body
Receive JSON as response
DEMO TIME!!!
18
Server-Side Business Logic
• Never trust the client!
• Handled via JavaScript scripts on the server
• Intercept CRUD operations and apply your logic

Scripting

function(item, user, request)
{
…..
}

User authentication
Payload verification

Pre-Storage

Pre-Scripting

node.js

Dynamic schematization
Final checks
node.js
Known objects and modules
apns
azure
console
crypto
gcm
mpns
mssql
push
query
request
response
service
sendgrid
statusCodes
table
user
util

var SendGrid = require('sendgrid').SendGrid;
var sendgrid = new SendGrid(‘<account>', ‘<password>');
sendgrid.send({
to: userItem.EmailAddress,
from: 'notifications@mytodoitem.azure-mobile.net',
subject: 'New ToDoItem Added!!',
text: 'A new MyToDoItem was added: ' + item.text},
function(success, message)
{
// If the email failed to send, log it as an error.
if (!success) {
console.error('SendGrid Error! ' + message);
}
});
Source Control
• Enable via a Git repository
• Portal
• azure mobile preview enable SourceControl <service>

• Automatically pushed to the mobile service
Service

api
shared
scheduler

tables
21
node.js – Add your own modules
• Enable source control

• npm install [module-name]
• git add .
• git commit –m ‚added stuff‛

• Use in server scripts
22

service

• Go to ./service folder
api
node_modules
shared
scheduler
tables
Custom API
• HTTP request - GET, POST, PUT, PATCH, DELETE
https://<service_name>.azure-mobile.net/api/<api_name>

• Request / response object implemented by express.js
exports.post = function(request, response) {
// Use "request.service" to access features of your mobile service, e.g.:
// var tables = request.service.tables;
// var push = request.service.push;
response.send(200, "Hello World");
};
More details at http://blogs.msdn.com/b/carlosfigueira/archive/2013/06/14/custom-apis-in-azure-mobile-services.aspx

23
Scheduled Jobs
• Scheduled or on-demand
• Scenarios
•
•
•
•

Archive / Backup data (i.e. SQL Database)
Purge stale records (i.e. Push Notification channels)
Query external systems and store locally
Whatever you can think of 

• Initially disabled

24
Application Settings

function sendEmail(item)
{
// alternative: process.env.SendGridUsername

var config = require('mobileservice-config');
var sendgrid =
new SendGrid(config.appSettings.SendGridUsername,
config.appSettings.SendGridPassword);
sendgrid.send({
to: 'michael.collier@live.com',
from: 'notifications@codemash-todo.azure-mobile.net',
subject: 'You have work to do!!',
text: 'A new task was added: ' + item
},
table operation
25

exports.get = function (request, response) {
var config = request.service.config;
var isDebug = config.appSettings.isDebug === 'true';
if (isDebug) {
console.log('request url: ', request.url);
console.log('request headers: ', request.headers);
console.log('request query: ', request.query);
}

custom API operation
DEMO TIME!!!
26
Push Notifications
Microsoft
Push
Notification
Service

1. Register channel with app

Mobile
Services
Push Notifications
Obtain Windows, Apple, or GCM push notification credentials
Windows: WNS client secret and package SID from Windows dev portal.
Apple: Get a cert and create a profile from iOS Provisioning Portal
Google: Get API key from Google API console

Enter appropriate notification credentials into the WAMS portal.

Ability to send Tile, Toast, Badge, and Raw notifications (Windows)
push.wns.* / push.apns.send (token, {alert, sound})
Node.js module to create push notifications
Handles authentication against WNS, GCM, or APNS
Notification Hubs

May be ideal for working with multiple mobile clients.
Large number of clients & notifications.

More information at http://msdn.microsoft.com/en-us/library/windowsazure/jj927170.aspx
29
DEMO TIME!!!
30
Authentication
Microsoft Account, Facebook, Twitter, and Google

Server-side / web-based
OAuth
Does not use Windows Azure ACS
Authentication
Microsoft Account – Use the Live SDK
Tight integration with Windows Live services

Client side authentication

Facebook Android SDK info at http://blogs.msdn.com/b/carlosfigueira/archive/2014/01/08/using-the-facebook-android-sdk-for-logging-in-to-azure-mobile-services.aspx
Authorization
Table & API authorization
Everyone: any request by anyone is accepted.
Anyone with Application Key: app key distributed w/ the app (default)
Authenticated Users: users that have been authenticated
Scripts and Admins: registered scripts or requests via the master key

Your application can add whatever other authorization
is needed.
Authorization
Server script to match against your table (role-based
access, specific user, etc.)
Match against user.userId
Preview Features
• Requires Windows Azure CLI tools
• Once enabled, cannot be disabled

35
DEMO TIME!!!
36
Diagnostics
• API Calls
• CPU Time
• Data Out
Developer Analytics / New Relic
•
•
•
•

38

Add NewRelic via Windows Azure Store
Enable source control feature
npm install newrelic
Add and commit files
Logging
console object
log(formatString, obj, .. .)
info(…)
warn(…)
error(…)
Scale
Service Tier
Capacity
Autoscaling rules
Number of units

Storage
Manage SQL DB size
Pricing and SLA
BASIC

FREE 1

STANDARD

Price 2

Free
(up to 10 services / month)

$25 / month
per unit

$199 / month
per unit

API Calls 2

500K

1.5M per unit

15M per unit

Active Devices 3

500

Unlimited

Unlimited

Scale

N/A

Up to 6 units

Up to 10 units

Scheduled jobs
(Preview)

1 job, 1 execution per hour

10 jobs
50,000 executions

10 jobs
500,000 executions

SQL Database 5
(required)

20 MB included,
Standard rates apply for additional
capacity

20 MB included,
Standard rates apply for additional
capacity

20 MB included,
Standard rates apply for additional
capacity

SLA

N/A

99.9%

99.9%

N/A

N/A

Suspension of Service

No admin action or user access for
more than 90 days
30 days notice

More details at http://www.windowsazure.com/en-us/pricing/details/mobile-services/
Summary
Resources
• Windows Azure Mobile Services
• http://aka.ms/mobileservices

• Mobile Services Concepts
• http://msdn.microsoft.com/en-us/library/windowsazure/jj591475.aspx

• SDK and Samples available on GitHub
• https://github.com/WindowsAzure/azure-mobile-services

• Inside Windows Azure Mobile Services
• http://channel9.msdn.com/posts/Kirill-Gavrylyuk-and-Josh-Twist-InsideWindows-Azure-Mobile-Services

• Josh Twist’s Blog
• http://www.thejoyofcode.com

• Carlos Figueira’s Blog
• http://blogs.msdn.com/b/carlosfigueira/
Ask your questions
Thank You!
• Michael S. Collier
• Principal Cloud Architect, Aditi
Next: “More Cache with Less Cash” –
1:45pm on Friday (Indigo Bay)

• michaelc@aditi.com
• @MichaelCollier
• www.MichaelSCollier.com

Weitere ähnliche Inhalte

Was ist angesagt?

Using Windows Azure for Solving Identity Management Challenges
Using Windows Azure for Solving Identity Management ChallengesUsing Windows Azure for Solving Identity Management Challenges
Using Windows Azure for Solving Identity Management ChallengesMichael Collier
 
Using Windows Azure for Solving Identity Management Challenges (Visual Studio...
Using Windows Azure for Solving Identity Management Challenges (Visual Studio...Using Windows Azure for Solving Identity Management Challenges (Visual Studio...
Using Windows Azure for Solving Identity Management Challenges (Visual Studio...Michael Collier
 
What's New for the Windows Azure Developer? Lots!!
What's New for the Windows Azure Developer?  Lots!!What's New for the Windows Azure Developer?  Lots!!
What's New for the Windows Azure Developer? Lots!!Michael Collier
 
Windows Azure: Lessons From the Field
Windows Azure: Lessons From the FieldWindows Azure: Lessons From the Field
Windows Azure: Lessons From the FieldMichael Collier
 
Windows Phone 7 and Windows Azure – A Match Made in the Cloud
Windows Phone 7 and Windows Azure – A Match Made in the CloudWindows Phone 7 and Windows Azure – A Match Made in the Cloud
Windows Phone 7 and Windows Azure – A Match Made in the CloudMichael Collier
 
10 Ways to Gaurantee Your Azure Project will Fail
10 Ways to Gaurantee Your Azure Project will Fail10 Ways to Gaurantee Your Azure Project will Fail
10 Ways to Gaurantee Your Azure Project will FailMichael Collier
 
Infrastructure as Code for Beginners
Infrastructure as Code for BeginnersInfrastructure as Code for Beginners
Infrastructure as Code for BeginnersDavid Völkel
 
AWS Infrastructure as Code - September 2016 Webinar Series
AWS Infrastructure as Code - September 2016 Webinar SeriesAWS Infrastructure as Code - September 2016 Webinar Series
AWS Infrastructure as Code - September 2016 Webinar SeriesAmazon Web Services
 
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...MSDEVMTL
 
Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...
Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...
Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...Amazon Web Services
 
Inside Azure Resource Manager
Inside Azure Resource ManagerInside Azure Resource Manager
Inside Azure Resource ManagerMichael Collier
 
Going serverless with azure functions
Going serverless with azure functionsGoing serverless with azure functions
Going serverless with azure functionsgjuljo
 
Deep Dive - Infrastructure as Code
Deep Dive - Infrastructure as CodeDeep Dive - Infrastructure as Code
Deep Dive - Infrastructure as CodeAmazon Web Services
 
OpenStack Horizon: Controlling the Cloud using Django
OpenStack Horizon: Controlling the Cloud using DjangoOpenStack Horizon: Controlling the Cloud using Django
OpenStack Horizon: Controlling the Cloud using DjangoDavid Lapsley
 
DataSaturdayNL 2019 Azure Key Vault, Azure Dev Ops and Azure Data Factory h...
DataSaturdayNL 2019  Azure Key Vault, Azure Dev Ops and Azure Data Factory  h...DataSaturdayNL 2019  Azure Key Vault, Azure Dev Ops and Azure Data Factory  h...
DataSaturdayNL 2019 Azure Key Vault, Azure Dev Ops and Azure Data Factory h...Erwin de Kreuk
 
(CMP302) Amazon ECS: Distributed Applications at Scale
(CMP302) Amazon ECS: Distributed Applications at Scale(CMP302) Amazon ECS: Distributed Applications at Scale
(CMP302) Amazon ECS: Distributed Applications at ScaleAmazon Web Services
 
TechnoramaNL Azure Key Vault, Azure Dev Ops and Azure Data Factor
TechnoramaNL Azure Key Vault, Azure Dev Ops and Azure Data FactorTechnoramaNL Azure Key Vault, Azure Dev Ops and Azure Data Factor
TechnoramaNL Azure Key Vault, Azure Dev Ops and Azure Data FactorErwin de Kreuk
 

Was ist angesagt? (20)

Using Windows Azure for Solving Identity Management Challenges
Using Windows Azure for Solving Identity Management ChallengesUsing Windows Azure for Solving Identity Management Challenges
Using Windows Azure for Solving Identity Management Challenges
 
Using Windows Azure for Solving Identity Management Challenges (Visual Studio...
Using Windows Azure for Solving Identity Management Challenges (Visual Studio...Using Windows Azure for Solving Identity Management Challenges (Visual Studio...
Using Windows Azure for Solving Identity Management Challenges (Visual Studio...
 
What's New for the Windows Azure Developer? Lots!!
What's New for the Windows Azure Developer?  Lots!!What's New for the Windows Azure Developer?  Lots!!
What's New for the Windows Azure Developer? Lots!!
 
Windows Azure: Lessons From the Field
Windows Azure: Lessons From the FieldWindows Azure: Lessons From the Field
Windows Azure: Lessons From the Field
 
Windows Phone 7 and Windows Azure – A Match Made in the Cloud
Windows Phone 7 and Windows Azure – A Match Made in the CloudWindows Phone 7 and Windows Azure – A Match Made in the Cloud
Windows Phone 7 and Windows Azure – A Match Made in the Cloud
 
10 Ways to Gaurantee Your Azure Project will Fail
10 Ways to Gaurantee Your Azure Project will Fail10 Ways to Gaurantee Your Azure Project will Fail
10 Ways to Gaurantee Your Azure Project will Fail
 
Infrastructure as Code for Beginners
Infrastructure as Code for BeginnersInfrastructure as Code for Beginners
Infrastructure as Code for Beginners
 
infrastructure as code
infrastructure as codeinfrastructure as code
infrastructure as code
 
AWS Infrastructure as Code - September 2016 Webinar Series
AWS Infrastructure as Code - September 2016 Webinar SeriesAWS Infrastructure as Code - September 2016 Webinar Series
AWS Infrastructure as Code - September 2016 Webinar Series
 
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
 
Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...
Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...
Automating your Infrastructure Deployment with AWS CloudFormation and AWS Ops...
 
Inside Azure Resource Manager
Inside Azure Resource ManagerInside Azure Resource Manager
Inside Azure Resource Manager
 
Going serverless with azure functions
Going serverless with azure functionsGoing serverless with azure functions
Going serverless with azure functions
 
Deep Dive - Infrastructure as Code
Deep Dive - Infrastructure as CodeDeep Dive - Infrastructure as Code
Deep Dive - Infrastructure as Code
 
OpenStack Horizon: Controlling the Cloud using Django
OpenStack Horizon: Controlling the Cloud using DjangoOpenStack Horizon: Controlling the Cloud using Django
OpenStack Horizon: Controlling the Cloud using Django
 
Iac d.damyanov 4.pptx
Iac d.damyanov 4.pptxIac d.damyanov 4.pptx
Iac d.damyanov 4.pptx
 
Presentation Tier optimizations
Presentation Tier optimizationsPresentation Tier optimizations
Presentation Tier optimizations
 
DataSaturdayNL 2019 Azure Key Vault, Azure Dev Ops and Azure Data Factory h...
DataSaturdayNL 2019  Azure Key Vault, Azure Dev Ops and Azure Data Factory  h...DataSaturdayNL 2019  Azure Key Vault, Azure Dev Ops and Azure Data Factory  h...
DataSaturdayNL 2019 Azure Key Vault, Azure Dev Ops and Azure Data Factory h...
 
(CMP302) Amazon ECS: Distributed Applications at Scale
(CMP302) Amazon ECS: Distributed Applications at Scale(CMP302) Amazon ECS: Distributed Applications at Scale
(CMP302) Amazon ECS: Distributed Applications at Scale
 
TechnoramaNL Azure Key Vault, Azure Dev Ops and Azure Data Factor
TechnoramaNL Azure Key Vault, Azure Dev Ops and Azure Data FactorTechnoramaNL Azure Key Vault, Azure Dev Ops and Azure Data Factor
TechnoramaNL Azure Key Vault, Azure Dev Ops and Azure Data Factor
 

Ähnlich wie Windows Azure Mobile Services - The Perfect Partner

Cnam cours azure zecloud mobile services
Cnam cours azure zecloud mobile servicesCnam cours azure zecloud mobile services
Cnam cours azure zecloud mobile servicesAymeric Weinbach
 
Антон Бойко (Microsoft Azure MVP, Ukrainian Azure Community Founder) «Azure M...
Антон Бойко (Microsoft Azure MVP, Ukrainian Azure Community Founder) «Azure M...Антон Бойко (Microsoft Azure MVP, Ukrainian Azure Community Founder) «Azure M...
Антон Бойко (Microsoft Azure MVP, Ukrainian Azure Community Founder) «Azure M...DataArt
 
Cloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps  with AzureCloud Powered Mobile Apps  with Azure
Cloud Powered Mobile Apps with AzureKris Wagner
 
Azure Mobile Service - Techdays 2014
Azure Mobile Service - Techdays 2014Azure Mobile Service - Techdays 2014
Azure Mobile Service - Techdays 2014Puja Pramudya
 
Cloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with AzureCloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with AzureKen Cenerelli
 
Cloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with AzureCloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with AzureGameLandVN
 
Cloud Powered Mobile Apps With Azure
Cloud Powered Mobile Apps With AzureCloud Powered Mobile Apps With Azure
Cloud Powered Mobile Apps With AzureVinh Nguyen Quang
 
2015.04.23 Azure Mobile Services
2015.04.23 Azure Mobile Services2015.04.23 Azure Mobile Services
2015.04.23 Azure Mobile ServicesMarco Parenzan
 
Building mobile back ends with windows azure mobile services
Building mobile back ends with windows azure mobile servicesBuilding mobile back ends with windows azure mobile services
Building mobile back ends with windows azure mobile servicesAidan Casey
 
Windows Azure - Mobile Services
Windows Azure - Mobile ServicesWindows Azure - Mobile Services
Windows Azure - Mobile ServicesJose R Jara
 
Mobile Services for Windows Azure
Mobile Services for Windows AzureMobile Services for Windows Azure
Mobile Services for Windows AzureAbhishek Sur
 
Building a chat app with windows azure mobile
Building a chat app with windows azure mobileBuilding a chat app with windows azure mobile
Building a chat app with windows azure mobileFlavius-Radu Demian
 
Build an AI/ML-driven image archive processing workflow: Image archive, analy...
Build an AI/ML-driven image archive processing workflow: Image archive, analy...Build an AI/ML-driven image archive processing workflow: Image archive, analy...
Build an AI/ML-driven image archive processing workflow: Image archive, analy...wesley chun
 
Strategies to automate deployment and provisioning of Microsoft Azure.
Strategies to automate deployment and provisioning of Microsoft Azure.Strategies to automate deployment and provisioning of Microsoft Azure.
Strategies to automate deployment and provisioning of Microsoft Azure.HARMAN Services
 
Tokyo azure meetup #8 azure update, august
Tokyo azure meetup #8   azure update, augustTokyo azure meetup #8   azure update, august
Tokyo azure meetup #8 azure update, augustTokyo Azure Meetup
 
Tokyo azure meetup #8 - Azure Update, August
Tokyo azure meetup #8 - Azure Update, AugustTokyo azure meetup #8 - Azure Update, August
Tokyo azure meetup #8 - Azure Update, AugustKanio Dimitrov
 
VSTS and VS AppCenter overview and mobile releases 2018-05-30
VSTS and VS AppCenter overview and mobile releases 2018-05-30VSTS and VS AppCenter overview and mobile releases 2018-05-30
VSTS and VS AppCenter overview and mobile releases 2018-05-30Okko Oulasvirta
 
Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...
Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...
Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...99X Technology
 
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developersChris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developersChris O'Brien
 
Microsoft Azure News - March 2017
Microsoft Azure News - March 2017Microsoft Azure News - March 2017
Microsoft Azure News - March 2017Daniel Toomey
 

Ähnlich wie Windows Azure Mobile Services - The Perfect Partner (20)

Cnam cours azure zecloud mobile services
Cnam cours azure zecloud mobile servicesCnam cours azure zecloud mobile services
Cnam cours azure zecloud mobile services
 
Антон Бойко (Microsoft Azure MVP, Ukrainian Azure Community Founder) «Azure M...
Антон Бойко (Microsoft Azure MVP, Ukrainian Azure Community Founder) «Azure M...Антон Бойко (Microsoft Azure MVP, Ukrainian Azure Community Founder) «Azure M...
Антон Бойко (Microsoft Azure MVP, Ukrainian Azure Community Founder) «Azure M...
 
Cloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps  with AzureCloud Powered Mobile Apps  with Azure
Cloud Powered Mobile Apps with Azure
 
Azure Mobile Service - Techdays 2014
Azure Mobile Service - Techdays 2014Azure Mobile Service - Techdays 2014
Azure Mobile Service - Techdays 2014
 
Cloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with AzureCloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with Azure
 
Cloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with AzureCloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with Azure
 
Cloud Powered Mobile Apps With Azure
Cloud Powered Mobile Apps With AzureCloud Powered Mobile Apps With Azure
Cloud Powered Mobile Apps With Azure
 
2015.04.23 Azure Mobile Services
2015.04.23 Azure Mobile Services2015.04.23 Azure Mobile Services
2015.04.23 Azure Mobile Services
 
Building mobile back ends with windows azure mobile services
Building mobile back ends with windows azure mobile servicesBuilding mobile back ends with windows azure mobile services
Building mobile back ends with windows azure mobile services
 
Windows Azure - Mobile Services
Windows Azure - Mobile ServicesWindows Azure - Mobile Services
Windows Azure - Mobile Services
 
Mobile Services for Windows Azure
Mobile Services for Windows AzureMobile Services for Windows Azure
Mobile Services for Windows Azure
 
Building a chat app with windows azure mobile
Building a chat app with windows azure mobileBuilding a chat app with windows azure mobile
Building a chat app with windows azure mobile
 
Build an AI/ML-driven image archive processing workflow: Image archive, analy...
Build an AI/ML-driven image archive processing workflow: Image archive, analy...Build an AI/ML-driven image archive processing workflow: Image archive, analy...
Build an AI/ML-driven image archive processing workflow: Image archive, analy...
 
Strategies to automate deployment and provisioning of Microsoft Azure.
Strategies to automate deployment and provisioning of Microsoft Azure.Strategies to automate deployment and provisioning of Microsoft Azure.
Strategies to automate deployment and provisioning of Microsoft Azure.
 
Tokyo azure meetup #8 azure update, august
Tokyo azure meetup #8   azure update, augustTokyo azure meetup #8   azure update, august
Tokyo azure meetup #8 azure update, august
 
Tokyo azure meetup #8 - Azure Update, August
Tokyo azure meetup #8 - Azure Update, AugustTokyo azure meetup #8 - Azure Update, August
Tokyo azure meetup #8 - Azure Update, August
 
VSTS and VS AppCenter overview and mobile releases 2018-05-30
VSTS and VS AppCenter overview and mobile releases 2018-05-30VSTS and VS AppCenter overview and mobile releases 2018-05-30
VSTS and VS AppCenter overview and mobile releases 2018-05-30
 
Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...
Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...
Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...
 
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developersChris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers
 
Microsoft Azure News - March 2017
Microsoft Azure News - March 2017Microsoft Azure News - March 2017
Microsoft Azure News - March 2017
 

Kürzlich hochgeladen

Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDELiveplex
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxUdaiappa Ramachandran
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 

Kürzlich hochgeladen (20)

Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptx
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 

Windows Azure Mobile Services - The Perfect Partner

  • 1. Windows Azure Mobile Services: The Perfect Partner Michael S. Collier @MichaelCollier CodeMash – January 9, 2014
  • 2. Michael S. Collier • Principal Cloud Architect, Aditi • michaelc@aditi.com • @MichaelCollier • www.MichaelSCollier.com
  • 3. UPCOMING WINDOWS AZURE EVENTS  DevUnleashed  Saturday, February 8th  Microsoft – Columbus  Michael Collier, Samidip Basu, Jared Faris, or Mike Wood  Global Windows Azure Boot Camp  Saturday, March 29th  http://global.windowsazurebootcamp.com  Michael Collier, Brian Sherwin, or Mike Wood  CloudDevelop  Friday, August 15th 2014  Ohio Union – The Ohio State University  www.CloudDevelop.org / @CloudDevConf  Michael Collier or Jared Faris
  • 4. CLOUD / MOBILE USER GROUPS Central Ohio Cloud Computing User Group Windows Developer User Group  Windows Azure, AWS, Google, etc  3rd Monday of each month  2nd Monday of each month  6pm – 8pm  6pm – 8pm  TechColumbus  Improving Enterprises, Columbus  http://thewindowsdeveloperusergroup.com/  www.coccug.org  @WindowsDevUG  @coccug  Samidip Basu  Michael Collier  Windows Store & Windows Phone
  • 5. Agenda • • • • • • What is it? / Getting Started Data Storage Options Server Scripts / Business Logic Push Notifications User Authentication Diagnostics / Monitoring • Q&A 6
  • 6. Mobile Backend-as-a-Service (MBaaS) Additional Services Scheduled Tasks Unstructured Storage Messaging Structured Storage Identity Windows Azure Mobile Services Windows Azure Mobile Services
  • 7. What is Windows Azure Mobile Services Image courtesy of Windows Azure Training Kit http://aka.ms/mobileservices
  • 8. Client Support Windows Phone Windows Store Android iOS HTML5 Xamarin.iOS Xamarin.Android Sencha Image courtesy of http://msdn.microsoft.com/en-us/library/windowsazure/jj554228
  • 10. Shhh . . . It’s a Secret Application Key NOT A SECURITY TOKEN/CONTROL Hint that user is coming from your app (reduce chance of misuse) Private until you publish the app Master Key All powerful Do NOT distribute with your application Use from server-side logic you control
  • 11. Unstructured Data Storage Leverage Windows Azure Storage or Service Bus Tables: schemaless entity storage; NoSQL Blobs: storage for any binary object (files . . . whatever you want) Queues: simple messaging (push/pop) Access via Windows Azure module for node.js var azure = require('azure'); var tableService = azure.createTableService(‘<storage account>',‘<storage key>', 'table.core.windows.net'); tableService.insertEntity(‘<table>’, entity, function(error) { });
  • 12. Structured Data Storage Leverage strengths of Windows Azure SQL Database New or Existing Database Reporting, TSQL support, existing tools, etc. Manage your way (portal, REST API, SSMS, etc.) Partition applications by schema mycoupons.Users speakers.Users Dynamic Schema Support (on/off)
  • 13. Default System Columns Column Type Description id string __createdAt date Any unique string If not provided, server will create a unique value (GUID) Set when item is inserted __updatedAt date __version timestamp Set anytime there is an update to the item. Updated via database trigger. Unique value updated anytime there is a change to the item Read-only value • • Columns starting with ‘__’ (two underscores) will be rejected. System columns not returned by default. Set ‘__systemProperties’ on request or ‘systemProperties’ in server • azure mobile table create --integerId [service_name] [table_name] More info at http://blogs.msdn.com/b/carlosfigueira/archive/2013/11/23/new-tables-in-azure-mobile-services-string-id-system-properties-and-optimistic-concurrency.aspx 16
  • 14. Data Access REST API OData Interface GET, POST, PATCH, DELETE https://<service>.azure-mobile.net/tables/<table_name>/{<item_id>} Authorization X-ZUM0-{APPLICATION | AUTH | MASTER} Send JSON in request body Receive JSON as response
  • 16. Server-Side Business Logic • Never trust the client! • Handled via JavaScript scripts on the server • Intercept CRUD operations and apply your logic Scripting function(item, user, request) { ….. } User authentication Payload verification Pre-Storage Pre-Scripting node.js Dynamic schematization Final checks
  • 17. node.js Known objects and modules apns azure console crypto gcm mpns mssql push query request response service sendgrid statusCodes table user util var SendGrid = require('sendgrid').SendGrid; var sendgrid = new SendGrid(‘<account>', ‘<password>'); sendgrid.send({ to: userItem.EmailAddress, from: 'notifications@mytodoitem.azure-mobile.net', subject: 'New ToDoItem Added!!', text: 'A new MyToDoItem was added: ' + item.text}, function(success, message) { // If the email failed to send, log it as an error. if (!success) { console.error('SendGrid Error! ' + message); } });
  • 18. Source Control • Enable via a Git repository • Portal • azure mobile preview enable SourceControl <service> • Automatically pushed to the mobile service Service api shared scheduler tables 21
  • 19. node.js – Add your own modules • Enable source control • npm install [module-name] • git add . • git commit –m ‚added stuff‛ • Use in server scripts 22 service • Go to ./service folder api node_modules shared scheduler tables
  • 20. Custom API • HTTP request - GET, POST, PUT, PATCH, DELETE https://<service_name>.azure-mobile.net/api/<api_name> • Request / response object implemented by express.js exports.post = function(request, response) { // Use "request.service" to access features of your mobile service, e.g.: // var tables = request.service.tables; // var push = request.service.push; response.send(200, "Hello World"); }; More details at http://blogs.msdn.com/b/carlosfigueira/archive/2013/06/14/custom-apis-in-azure-mobile-services.aspx 23
  • 21. Scheduled Jobs • Scheduled or on-demand • Scenarios • • • • Archive / Backup data (i.e. SQL Database) Purge stale records (i.e. Push Notification channels) Query external systems and store locally Whatever you can think of  • Initially disabled 24
  • 22. Application Settings function sendEmail(item) { // alternative: process.env.SendGridUsername var config = require('mobileservice-config'); var sendgrid = new SendGrid(config.appSettings.SendGridUsername, config.appSettings.SendGridPassword); sendgrid.send({ to: 'michael.collier@live.com', from: 'notifications@codemash-todo.azure-mobile.net', subject: 'You have work to do!!', text: 'A new task was added: ' + item }, table operation 25 exports.get = function (request, response) { var config = request.service.config; var isDebug = config.appSettings.isDebug === 'true'; if (isDebug) { console.log('request url: ', request.url); console.log('request headers: ', request.headers); console.log('request query: ', request.query); } custom API operation
  • 25. Push Notifications Obtain Windows, Apple, or GCM push notification credentials Windows: WNS client secret and package SID from Windows dev portal. Apple: Get a cert and create a profile from iOS Provisioning Portal Google: Get API key from Google API console Enter appropriate notification credentials into the WAMS portal. Ability to send Tile, Toast, Badge, and Raw notifications (Windows) push.wns.* / push.apns.send (token, {alert, sound}) Node.js module to create push notifications Handles authentication against WNS, GCM, or APNS
  • 26. Notification Hubs May be ideal for working with multiple mobile clients. Large number of clients & notifications. More information at http://msdn.microsoft.com/en-us/library/windowsazure/jj927170.aspx 29
  • 28. Authentication Microsoft Account, Facebook, Twitter, and Google Server-side / web-based OAuth Does not use Windows Azure ACS
  • 29. Authentication Microsoft Account – Use the Live SDK Tight integration with Windows Live services Client side authentication Facebook Android SDK info at http://blogs.msdn.com/b/carlosfigueira/archive/2014/01/08/using-the-facebook-android-sdk-for-logging-in-to-azure-mobile-services.aspx
  • 30. Authorization Table & API authorization Everyone: any request by anyone is accepted. Anyone with Application Key: app key distributed w/ the app (default) Authenticated Users: users that have been authenticated Scripts and Admins: registered scripts or requests via the master key Your application can add whatever other authorization is needed.
  • 31. Authorization Server script to match against your table (role-based access, specific user, etc.) Match against user.userId
  • 32. Preview Features • Requires Windows Azure CLI tools • Once enabled, cannot be disabled 35
  • 34. Diagnostics • API Calls • CPU Time • Data Out
  • 35. Developer Analytics / New Relic • • • • 38 Add NewRelic via Windows Azure Store Enable source control feature npm install newrelic Add and commit files
  • 36. Logging console object log(formatString, obj, .. .) info(…) warn(…) error(…)
  • 37. Scale Service Tier Capacity Autoscaling rules Number of units Storage Manage SQL DB size
  • 38. Pricing and SLA BASIC FREE 1 STANDARD Price 2 Free (up to 10 services / month) $25 / month per unit $199 / month per unit API Calls 2 500K 1.5M per unit 15M per unit Active Devices 3 500 Unlimited Unlimited Scale N/A Up to 6 units Up to 10 units Scheduled jobs (Preview) 1 job, 1 execution per hour 10 jobs 50,000 executions 10 jobs 500,000 executions SQL Database 5 (required) 20 MB included, Standard rates apply for additional capacity 20 MB included, Standard rates apply for additional capacity 20 MB included, Standard rates apply for additional capacity SLA N/A 99.9% 99.9% N/A N/A Suspension of Service No admin action or user access for more than 90 days 30 days notice More details at http://www.windowsazure.com/en-us/pricing/details/mobile-services/
  • 40. Resources • Windows Azure Mobile Services • http://aka.ms/mobileservices • Mobile Services Concepts • http://msdn.microsoft.com/en-us/library/windowsazure/jj591475.aspx • SDK and Samples available on GitHub • https://github.com/WindowsAzure/azure-mobile-services • Inside Windows Azure Mobile Services • http://channel9.msdn.com/posts/Kirill-Gavrylyuk-and-Josh-Twist-InsideWindows-Azure-Mobile-Services • Josh Twist’s Blog • http://www.thejoyofcode.com • Carlos Figueira’s Blog • http://blogs.msdn.com/b/carlosfigueira/
  • 42. Thank You! • Michael S. Collier • Principal Cloud Architect, Aditi Next: “More Cache with Less Cash” – 1:45pm on Friday (Indigo Bay) • michaelc@aditi.com • @MichaelCollier • www.MichaelSCollier.com

Hinweis der Redaktion

  1. Principal Cloud ArchitectWindows Azure MVPHelp customers nationwide with their Windows Azure projects. This can include architectural design sessions, training, development, evangelism, etc.Reach me via email, Twitter, or my blog.
  2. Scenarios – scale, global distribution, focus on app not the infrastructurePlaying Field – infrastructure that would be too expensive to build/maintain; Anybody with great idea can make the next killer app
  3. Build out services individually – lots of extra workNot something many mobile app developers want to do – want to FOCUS ON THE APPMessaging – Push Notifications and Service BusUnstructured Storage (tables, blobs, queues)
  4. http://msdn.microsoft.com/en-us/library/windowsazure/jj554207.aspx
  5. Getting StartedDemo the New Mobile Service Create a new Windows 8 application experience in the portalVery fast provisioningBuilt on Windows Azure Web Sites
  6. How to secure the web service available by Mobile Services?Two ways – Application Key and Master Key
  7. Knowing some of the basics of security is important, because we’ve got some important things to secure – like our data.Let’s talk about data.* Ability to access Windows Azure Service Bus too.
  8. Relatively recent update to WAMS which introduced new system columns.Help with concurrency and provide more flexibility in the value of the key/id used.http://blogs.msdn.com/b/carlosfigueira/archive/2013/11/23/new-tables-in-azure-mobile-services-string-id-system-properties-and-optimistic-concurrency.aspx
  9. X-ZUMO-APPLICATION – The application key of the mobile service.X-ZUMO-AUTH - The service-generated authentication token for an authenticated user. You must specify a token for an authenticated user when required to access the table operation.X-ZUMO-MASTER - The service master key. 
  10. It’s Your DataShow data in management portal and SQL Management Studio
  11. Now that we have data in our service, let’s see how we can work with it. Could be our business logic or some basic data validation aside from what’s in the client.Pre-Scripting- User authentication (populates the ‘user’ object)- Single JSON object (no array)Pre-Storage- Final validation layer: no complex objects- Capture and log errors
  12. http://msdn.microsoft.com/en-us/library/windowsazure/jj554238.aspxhttp://msdn.microsoft.com/en-us/library/windowsazure/jj554226.aspx
  13. Service: Root of the mobile service-specific repository.api: Contains custom API script files (api_name.js) and JSON permission files (api_name.json).shared: Contains shared script files, such as the Apple Push Notification Service (APNS) feedback script (feedback.js).scheduler: Contains scheduled job script files (job_name.js)tables: Contains table operation script files (table_name.js) and JSON permission files (table_name.json). Legacy script files are stored in the formattablename.operation.js.
  14. Expose custom business logic that does not map to a CRUD operation or a scheduled jobCurrently only node.js - .NET support coming soonhttp://msdn.microsoft.com/en-us/library/windowsazure/dn280974.aspx
  15. Scheduled jobs in Mobile Services allow us to execute business logic . . . On a schedule. http://msdn.microsoft.com/en-us/library/windowsazure/dn167694.aspx
  16. Once we have our business logic in the server scripts, how do we store application settings?Storing secrets – username, password, API keys, etc.Share code – not secretsCondition code executionhttp://blogs.msdn.com/b/carlosfigueira/archive/2013/12/09/application-settings-in-azure-mobile-services.aspx
  17. Show creating a custom APIEnable Git support
  18. Let’s talk a little about how to notify users via Push Notifications.
  19. http://msdn.microsoft.com/en-us/library/windowsazure/jj927170.aspx
  20. Show push notification when item is added
  21. Now that we’ve got data added to our app, business logic in place, a custom API, and a scheduled task, let’s talk about how to authenticate the users.OAuthRenders the OAuth web interface for the selected provider.
  22. Provide SSO for Windows 8 users
  23. https://www.windowsazure.com/en-us/develop/mobile/tutorials/authorize-users-in-scripts-dotnet/
  24. While on the topic of authentication, there is another Preview feature that can help in making the user experience a little nicer.Users – enables you to retrieve more of the authenticated users profile without making a separate API call to the identity provider.http://blogs.msdn.com/b/carlosfigueira/archive/2013/12/16/enhanced-users-feature-in-azure-mobile-services.aspx
  25. User AuthenticationShow hooking up GoogleShow User enhancements preview feature
  26. http://www.windowsazure.com/en-us/develop/mobile/tutorials/monitor-with-new-relic/
  27. Autoscale resets every UTC morningAutoscale when &gt; 90% of API quota per unit
  28. 1 Quotas for the Mobile Services Free tier apply at the subscription level.2 Billing and the quotas for API calls are prorated daily.3 Active devices refers to the daily number of physical devices and emulators that make at least one call to or receive a push notification from your mobile service.4 The scheduled jobs feature is currently in preview. The Free tier is limited to one job and one execution per hour. Basic and Standard tiers include 50k and 500k job executions, respectively, and can accommodate up to 10 jobs.5 One 20MB Azure SQL Database is available per subscription for the first twelve months of use; standard rates apply thereafter.
  29. http://blogs.msdn.com/b/carlosfigueira/archive/2013/12/09/application-settings-in-azure-mobile-services.aspx
  30. Windows Azure National ArchitectWindows Azure MVPHelp customers nationwide with their Windows Azure projects. This can include architectural design sessions, training, development, evangelism, etc.Reach me via email, Twitter, or my blog.