What email address or phone number would you like to use to sign in to Docs.com?
If you already have an account that you use with Office or other Microsoft services, enter it here.
Or sign in with:
Signing in allows you to download and like content, which the author will be aware of.
Embed code for: The Big Cloud Theory - Azure App Services
Select a size
Session I've delivered at several events. I cover Azure App Services: Web Apps, API Apps, Logic Apps & Mobile Apps
The Big Cloud Theory
Season 1: Azure App Services
Alejandro Campos Magencio
Microsoft Technical Evangelist
IaaS vs PaaS vs SaaS
(as a Service)
You scale, make
resilient & manage
You scale, make resilient and manage
Scale, resilience and management by vendor
Managed by vendor
Why the cloud?
Azure regions around the world
More than AWS and Google Cloud combined
Over 85% of Fortune 500 use Microsoft Cloud
NEW AZURE CUSTOMER SUBSCRIPTIONS/MONTH
MESSAGES PER WEEK PROCESSED BY AZURE IOT
SQL DATABASES IN AZURE
ORGANIZATIONS USING AZURE ACTIVE DIRECTORY
REVENUE FROM START-UPS AND ISVS
DEVELOPER REGISTERED WITH VISUAL STUDIO TEAM SERVICES
We Open Source
Security & Management
Web and Mobile
Analytics & IoT
Media & CDN
VM Image Gallery
& VM Depot
Datacenter Infrastructure (38 Regions)
Azure App Services
App Services is PaaS
Benefits of App Services
Automatic OS patching
Enterprise grade security
Support for many platforms & languages
Auto scaling and load balancing
WebJobs for background processing
Easy deployment, including continuous delivery
Access on-premises data
Develop apps with…
Full capability set available including…
Visual Studio integration
Autoscale, Auto-load balance, Geo DR
Web Jobs support
Testing in Prod.
Hybrid Connections and Virtual Networks
Intelligent customer routing with Traffic Manager
Microsoft SQL Server
Other published resources
Hybrid Connection Manager
API Apps addresses key pains around building and consuming APIs
Managed Middle Tier
On Premise Applications
Databases in Azure VMs
Cloud-Hosted Web Apps
SSO, Auth, Scale, etc.
Rest API Client…
Azure App Service
First version of BizTalk build ‘cloud-up’
Already running mission critical workload for large customers
Includes BizTalk Services capabilities – evolved to benefit from App Service approach
More accessible to a broader audience, not just integration specialists
Takes BizTalk brand and capabilities forward
Leader in integration on-premises
Handles mission critical workloads for hundreds of customers
Benefits of Logic Apps
No code designer for rapid creation
Dozens of pre-built templates to get started
Support for popular SaaS and on-premises apps
Use with custom API apps of your own
Biztalk APIs for expert integration scenarios
Triggers and Actions
Built-in API Connectors
Azure HD Insight
Azure Media Services
Azure Service Bus
Timer / Recurrence
Azure Web Jobs
Batching / Debatching
SOAP + WCF
Azure Active Directory
New capabilities for Mobile Apps
More VM size and instance options
Webjobs for long running tasks
CI with GitHub, BitBucket, VS Team Services
Site slots for staged deployments
Virtual networking and hybrid connections
Easy-to-use, multiplatform scaled push infrastructure that allows you to send push notifications almost anywhere.
Create a Mobile Service
MobileService = new MobileServiceClient(
public async Task Init()
const string path = "syncstore.db";
var db = new MobileServiceSQLiteStore(path);
var handler = new MobileServiceSyncHandler();
await MobileService.SyncContext.InitializeAsync(db, h);
table = MobileService.GetSyncTable<Store>();
Get and Modify Data
public async Task<IEnumerable<Store>> GetStoresAsync()
await table.PullAsync("allStores", table.CreateQuery());
return await table.ToEnumerableAsync();
public async Task<Store> AddStoreAsync (Store store)
await table.InsertAsync (store);
await table.PullAsync ( " allStores " , table.CreateQuery ());
Sync files to Azure Storage, just like you did for structured data.
Nuestras apps necesitan un backend que les permita conectarse a cualquier tipo de datos, autenticar a nuestros usuarios con Directorio Activo o redes sociales como Facebook o Twitter, enviar notificaciones Push a cualquier tipo de dispositivo, y conectarse a sistemas empresariales como SAP, Sharepoint, y muchos más. Nuestras apps necesitan Azure App Services. Aunque Sheldon no estará de acuerdo, porque Azure App Services nos lo pone demasiado fácil para su gusto.
© 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
What is the cloud? The computer of someone else.
Rapidly setup environments to drive business priorities
Scale to meet peak demands
Increase daily activities, efficiency and reduced cost.
How we differentiate with Azure:
© 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Regiones de Azure
Azure tiene disponibilidad general en 30 regiones de todo el mundo y ha anunciado planes para 8 regiones adicionales.
In fact, over 85% of Fortune 500 enterprises use the Microsoft Cloud.
Makes it easier for you as developers to create SaaS applications which target these enterprises
© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Over 1 million servers in over 100 datacenters.
Azure (DreamSpark/Imagine) includes all these services at their free tier:
Azure SQL Server
Microsoft Azure App Services
App Services have everything you need to build apps that target both web and mobile clients from a single app back-end.
Create web and mobile experiences that share data access and business logic
Automate business processes with logic apps
Build custom APIs or consume connectors from Marketplace
One common billing model for all of your App Services
Connecting to On-Premises Data
Allows Web Apps, Mobile Apps, and Logic Apps to access existing on-premises data
Multiple apps can share a hybrid connection
TCP ports for network access to specific resources
Group Policy settings, event and audit logs
Industry standard site-to-site and point-to-site IPSec VPN.
Allows access to your local network.
App Service plans
Azure App Service plans in-depth overview
Azure > App Services > Web Apps
Easily create and scale your new sites in seconds
Automatically scale your sites that scale with your business
Quickly improve performance and reduce latency with right resources
Built-in web jobs support
Leverage existing skills – Languages and databases you know
Start with open source apps and frameworks
Develop with VS and WebMatrix
Supports X-Plat development
Improve developer productivity through continuous automated deployment
Built-in monitoring of perf and usage data
Built-in diagnostics to assist with debugging
Built for DevOps
Visual Studio + App Service Web Apps
Create Azure Resources during File / New
Create Web App during deploy
Manage with Server Explorer
Disk Queue Length
HTTP Queue Length
Only Scales the Web Tier
Scale Up/Down is not instantaneous
for staged deployments
Streamline dev, test and production deployment workflow
Swap staging and production with zero downtime
Instantaneous rollback to previous “last known good site”
Enables A/B testing, continuous deployment, staged publishing and much more
Light-weight CPU Intensive Tasks
Job Type: On-Demand, Scheduled, Continuous
Scale: Singleton, Multi-instance
WebJobs SDK Feature: BlobTrigger, TableTrigger, QueueTrigger, ServicebusTrigger
Deployment: Portal, Visual Studio, CLI, Git
Intelligent customer routing
Web App Files
Web App Settings Manifest
Full Functionality Redis Cache Cluster
Up to 26GB
Although it is possible to use Sticky Sessions in Azure it’s not a great fit for cloud architecture, for these reasons:
1) When you provision new instances, only new sessions will be routed to them. Depending on your load balancing logic, new sessions may also still be provisioned on the old instances. This results in it taking a long time (depending on the average length of your session) for load to be evenly distributed across your instances.
2) Cloud solutions should be designed to fail. One of your instances may be removed at any time for patching, or hardware failure. With a sticky session scenario, the clients with a session on this instance will probably have to log in again, or may see an error page, depending on your load balancing logic.
3) Unless your load balancer shares state in some way, it’s likely that you’re load balancing with a single instance (single point of failure) and not eligible for the Microsoft SLA.
Detect issues, diagnose crashes and track usage in your mobile apps and web apps.
Azure > App Services > API Apps
Azure API Apps provide a rich platform and ecosystem for building, consuming, and distributing APIs in the cloud and on-premises.
Challenges Authoring APIs
Manual plumbing: Logging, auth/SSO, secret store, config, updating, versioning
Difficult to integrate to on-premises and SaaS investments
No governance or monitoring of API performance without separate APIM product
Monolithic designs complicating versioning, agility, and scale
Challenges Consuming APIs
Difficult for professional developers; impossible for business users
Inconsistent metadata and authentication story
Lack of organizationally-scoped galleries
Inconsistent (or lack) of API documentation
Benefits of API Apps
Bring your API as-is: .NET Web API, Node.js + Express, Java, PHP, Python.
Integrated Swagger metadata
Simple access control
Connect easily to SaaS platforms
Easy connectivity to Logic Apps
Built-in Visual Studio tooling/support
Marketplace support: Private API gallery (NuGet feed), Public Azure Marketplace.
Easily use cloud or custom APIs
Dozens of built-in APIs for popular SaaS
An ecosystem of APIs for any need
Create and publish custom, reusable APIs
Visual Studio tooling with one click publish and remote debugging
Automatic client SDK generation for many languages
Authoring API Apps
Package and Publish
Use WebDeploy like Web Apps
Use local Git repo
Publish to the Marketplace (coming soon)
Metadata about Web Service forms Contract
Done using Swagger 2.0 for your platform of choice
Metadata makes API “discoverable”
SSO or security aspects are handled at the server level, not the app
Easily build Microservices
Anyone can call the API app from outside the resource group without being logged in.
Only authenticated users are allowed to call the API app from outside the resource group.
Only other API apps in the same resource group are allowed to call the API app.
Public (Authenticated) Access Level
API App Access
-> Azure Active Directory
-> Microsoft Account
-> Social Identities: Facebook, Google, Twitter.
Consuming API Apps
API Apps expose HTTP services
Metadata is exposed using Swagger 2.0 metadata
Engine that provides a JSON representation of your API for integration with various frameworks, applications and tools.
Swagger metadata is a description of the capabilities of your API application.
Through dynamic metadata you can generate:
Integrates into many services and frameworks including
Already supported in the API Management service
Already supported in many tools:
Postman, Runscope, SoapUI
Automatically generated User Interface to view metadata and documentation for each service endpoint.
The Azure Preview Portal can visualize your API for you. You can also download the JSON Swagger metadata directly from the portal.
API App Templates
App Templates are available today to connect to your favorite SaaS services.
Languages, tools, and SDKs
Anything supported by Azure App Services
.NET, Java, PHP, Python, Node, … and yes, even Go!
Visual Studio: templates, publishing, debugging
X-platform Command Line tool (coming soon!)
NuGet package for .NET; more coming!
Drag/drop experience in Logic Apps
Get started with API Apps and ASP.NET in Azure App Service
Azure > App Services > Logic Apps
Logic Apps Preview Refresh released
Visually create business process and workflows
Deliver integration capabilities in Web, Mobile, and API Apps
Integrate with your SaaS and enterprise applications
Automate EAI/B2B and business processes
Connect to on-premises data
All of the Azure-native capabilities you’d expect
Full audit logs of all management operations
Role-based access control
Deployment lifecycle with Resource Manager
Resource Management API + resource PowerShell
On-prem support with release of Azure Stack
Logic apps for orchestration across API apps
1. Implicitly – whenever you reference the output of an action you’ll depend on that action executing first
2. Explicit “dependsOn” condition – you can mark certain actions to run only after previous ones have completed
3. Explicit “expression” condition – a complex function that evaluates properties of other actions
Loop a single action over a list of items
Runs the action N times
You can get at all of the statuses for each action
Logic on a trigger or action
For triggers conditionals are post-conditions
For actions conditionals are pre-conditions
You can do conditionals inside of repeats to perform as a filter
The Azure Resource manager is a highly-scalable geo-distributed system that handles millions of resources across 100,000’s of subscriptions. Can create 200 node cluster in < 5 minutes!
Same underlying engine…
Can handle thousands of parallel deployments per stamp
Resilient against failure – retries with “at least once” guarantee
Simple, declarative JSON template
Automatically infers dependences between resources
Can handle thousands of parallel runs per stamp
Simple, declarative JSON definition
Automatically infers dependences between actions
… more power
8 functions for basic referencing and string functions
Can only PUT resources into resource groups
Auth must be through AAD
Triggered manual through UI or API
Over 50 functions from string manipulations to math, to sets operations, to logical operators
All HTTP operations supported on any arbitrary endpoint
Supports many OAuth providers, AAD, Cert auth, or Basic auth
Different ways to be triggered including recurrence
Create a new logic app connecting SaaS services
App Service API Apps - What's changed
The Logic Apps designer will be adding especially seamless integration with the new API Apps model in early 2016. That said, the HTTP connector built into Logic Apps can invoke any HTTP endpoint and supports service principal authentication, which is also supported natively by the App Service authentication services. Learn how to consume an App Service-hosted API in Logic Apps in Using your custom API hosted on App Service with Logic apps.
Using your custom API hosted on App Service with Logic apps
Azure > App Services > Mobile Apps
Xamarin Dev Days (Xamarin.Forms + Mobile Apps with Easy Tables + App Service Helpers )
Xamarin and Azure Mobile App Bootcamp (Xamarin.Forms + temporary Mobile App via https://tryappservice.azure.com/, mainly focused on Xamarin.Forms )
Spent - Learn to build cloud-connected mobile apps for iOS, Android, and Windows (Xamarin.Forms with MVVM & Plug-ins & Native Controls + Mobile App with Easy Tables + Azure Storage)
Learn Azure - Learn how to build connected mobile apps with Xamarin and Azure (Mobile App with Easy Tables, Mobile App with ASP.NET, good as a continuation of https://github.com/pierceboggan/spent)
Azure Mobile Apps = Mobile Services + App Service
Harness the full power of Azure Web Apps for your mobile backend
Connect to API Apps, SaaS connectors
Why use mobile offline sync?
Improve app responsiveness by caching server data locally on the device
Make apps resilient against intermittent network connectivity
Allow end-users to create and modify data even when there is no network access
Sync data across multiple devices
Detect and handle conflicts when the same record is modified by more than one client
How offline sync works
Access data from Mobile Services tables even when app is offline
Keep a local queue of Create, Update, Delete operations and synchronize with server when app is back online
Detect conflicts when same item is changed both locally and on server
Use soft delete to remove deleted records from client data stores
Can use push notifications to trigger client sync
Azure Mobile offline sync
Lightweight and composable. Eliminates burdens of database-to-database sync
Works with a variety of server data stores. SQL, Azure Tables, Mongo, Dynamics CRM, Salesforce, etc.
Cross-platform client SDKs. Windows Universal, Xamarin, iOS, Android
Supports both “primarily online” and “occasionally connected” scenarios. Explicit push and pull leaves control to the developer
Flexible and powerful. Supports custom local storage layers. Detect and handle conflicts on server or client.
Push Notifications 101
Register device handle at app launch
Client app retrieves handle from Platform Notification Service (PNS)
Client app sends handle to your custom backend
Your backend connects to PNS and requests push Your code has to manage scale Your code has to map between logical users and device handles
PNS pushes notification to device
Maintain backend device handles
Your code must delete expired handles when PNS rejects them
Your code must map between logical users and device handles
Azure Notification Hubs
Client app retrieves handle from Platform Notification Service
Client sends handle to your backend Backend registers with Notification Hub using tags to represent logical users and groups
Backend sends request to Notification Hub using a tag Notification Hub manages scale Notification Hub maps logical users/groups to device handles
Notification Hub delivers notifications to matching devices via PNS
Notification Hub deletes expired handles when PNS rejects them
Notification Hub maintains mapping between logical users/groups and device handles
File management with Azure Mobile Apps
Backup and restore
In production A/B testing
Richer monitoring and alerting
Syncing Files Between Devices with Azure File Sync