Microsoft Azure’s mix of platform and infrastructure tools make it an interesting destination for enterprise developers, with the option of mixing development models. The ability to mix resources to take advantage of what works for your application can speed up development, support cloud migrations, and hande hybrid on- and off-premises designs. Azure’s PaaS tools can provide rapid scaling for front ends, while more complex back-end systems run on virtual machines or in containers.
With Azure, much of that PaaS front end is handled by Azure App Service, a bundle of tools and services that support mobile, web, and API integrations. It’s a quick way of building cloud-native applications, with integration points for other Azure services, supporting most common cloud design patterns. You’re not limited to one front-end technology, either: You can mix approaches, providing views that work with mobile, web, and desktop applications.
While Azure App Service counts Logic Apps as part of its portfolio, Logic Apps is best thought of as an instance of Azure’s serverless tools. That’s not to say you shouldn’t use Logic Apps as a tool for automating application workflow, but it’s worth understanding its limitations: You can’t build a complex application; it’s really just a way of constructing basic business logic that can link one API to another.
Getting started with Azure App Service is easy. In many cases, existing templates in the Azure Marketplace let you build on top of familiar open source solutions. Some, like Microsoft’s Mobile App and Notification Hub, are additional frameworks that simplify building code to run on the App Service, giving you templates and SDKs you can use with your development tools, while automatically generating code and service integrations. Similarly, you can flesh out a selection of starter web apps with your own code and your own data, building scalable model-view-controller instances.
Create mobile apps using the new MBaaS-based Mobile App framework
The most useful aspect of Azure App Service is its Mobile App option. Best thought of as Microsoft’s implementation of MBaaS (mobile back end as a service), Mobile App links code running on mobile devices to cloud data stores and services, including third-party authentication and push services. Native SDKs for most common device platforms simplify application integration. And you can hook into Azure’s SQL and NoSQL services for your data storage — as well as work with on-premises databases.
It’s easy enough to get started with Mobile App development, but the real advantages of using MBaaS to build apps is how it offers easy scaling, as well as giving you a common set of APIs to support all your possible clients. Microsoft’s implementation includes tools to handle various deployment models, including the option of offering different versions of your application for A/B testing.
Building a framework for a new app is straightforward. In the Azure Portal, use the Mobile App quickstart to configure your initial resource group. This sets up the basic elements of your service, ready to start building client code. You can now choose the target OS for your app, with options for native code on iOS and Android and for cross-platform apps using Xamarin or Cordova.
In the past, I’d have recommended using the native options, but now with Microsoft’s adoption of its Universal Windows Platform (UWP) framework your best choice now is Xamarin, because it can build Windows apps as well as iOS and Android apps.
Once you’ve chosen a target SDK for your client app, you can connect to an Azure database, building your connection and your database instance at the same time. Initially, you’re likely to use a key/value store for basic session details. More complex applications can use Azure’s full SQL Server implementation. You also choose how you’ll write your back-end code, in either Node.js or .Net.
This sets up the basic code for your app (in the service tutorial, it’ll create a simple to-do list app) and make the appropriate database connections. You can edit it in Azure’s built-in code editor or download it into Visual Studio as part of a complete end-to-end project along with the device application code.
One useful aspect of Azure App Service is its integration with devops and continuous integration. It’s easy to hook an App Service app to Microsoft’s App Insights service, with access to telemetry you can explore in Visual Studio Team Services and in other devops-focused platforms. That close coupling among platform, application, and development tools is extremely helpful, especially when trying to track down bugs that appear only when operating at scale.
Although the initial setup for Microsoft’s MBaaS framework may seem simple, it’s hiding a lot of complexity. There’s enough here to power much more than basic applications, especially when you start to combine it with the capabilities of modern mobile devices and the full extent of the Azure platform. Microsoft’s cloud messaging has shifted from “cloud first, mobile first” to “the intelligent cloud and the intelligent edge”, and Azure App Service is the bridge between the cloud and the edge.
Create apps to run on Linux, not just Windows, using Web Apps for Containers
The new Web Apps for Containers service takes Azure App Services out of Windows and onto Linux, so you can run containerized Node.js, PHP, .Net Core, and Ruby applications. Building on a set of standard Docker containers, your code is deployed and scaled automatically. It’s a simple and fast way of managing your containers, taking advantage of the rest of the Azure platform while still using existing Linux continuous integration and development tools. There’s no need to change an existing tool chain; you can pull images onto Azure from Docker Hub or the Azure Container Registry.
If you’re familiar with the portal-based management in the rest of the Azure App Service, you may find Web Apps for Containers less user-friendly, because much of it is handled through the Azure Cloud Shell command line. However, it gives you the option of automating much of the process, using collections of scripts to integrate containers with services like Git. Once you’ve set up your service, all you need to do is push changes from Git to Azure every time you make an update.
With Web Apps for Containers, you can treat your web application code as a single block that’s built, deployed, and run. Any changes need a whole new container deployment, though this should simplify rollback and any devops integrations.
There’s a lot to like in Azure App Service. What appears to be a simple PaaS environment offers a bridge between cloud native services and client devices, whether via the web or in your hand. You can start small and grow quickly, taking advantage of devops tools and modern software-development techniques, giving you a smooth transition from on-premises software to the public cloud.