IaaS or PaaS – Migrating Legacy Microsoft Applications to Azure ‘Business as a Platform’
Cloud Solution Design
In their white paper Microsoft IT transitions core business applications to Microsoft Azure PaaS1, Microsoft explores the dynamics that can be considered when determining whether IaaS, PaaS or SaaS is the right option for your Cloud Migration project, through detailing a number of their own migration case studies.
This decision process is central to Cloud Solution Design.
The goal of the project was to modernize a number of LOB (Line of Business) applications, such as BCWeb (Business Case Web), a web-based application used to create business cases for exemptions to product pricing, as well as other key internal apps for employee functions.
The decision to opt for PaaS was for two main reasons:
- PaaS handles low level maintenance functions such as patching, that didn’t add any value to the goals of this project.
- As the LOB applications were of critical importance to Microsoft sales activities requiring ongoing customization to business needs, they wanted more direct developer control than SaaS enables.
Sharepoint to Azure Transformation
BCWeb was originally developed as a Sharepoint application, highlighting another decision possibility for migrating legacy apps to the Cloud, in that a ‘lift and shift’ option is possible, through migrating on-premise Sharepoint to Azure-based Sharepoint hosting, or even to Office 365.
In the case of this project they moved away from Sharepoint and re-built a new application based on PaaS, describing the mapping of Sharepoint functions to their modernized equivalent on Azure:
- Web-based user interfaces mapped directly to Azure web roles.
- WCF (Windows Communication Foundation) Services and background processes were split into two worker roles (Web and worker roles explained by TechTarget).
- SQL Server database mapped to Azure SQL Database.
This approach delivered business benefits including:
- Increased performance and stability – Traffic loads for the prior Sharepoint-based system had exceeded what the infrastructure could handle, and it became unstable and went offline during peak usage times at month ends, and attempts to alleviate the issue such as load balancers and architecture improvements failed to remedy the situation. Moving to Azure applied Cloud-scale capacities that eliminated the issue.
- Cost savings / avoidance – Eliminated the requirement to procure and maintain servers.
- Best practices and reusable components – The team developed practices and components to support the migration that other Azure projects could benefit from.
An example of the benefits of growing best practices is the second of the application case studies.
The ‘Connect’ application was used for employee performance reviews and ran on a large web cluster that sat idle for much of the year, because of the infrequent schedule of conducting the reviews. Not only were they able to also migrate this app to an elastic Cloud supply that easily scales to service more than 120,000 employees and eliminate the servers, but the new app was built from scratch in only four months.
Secure, Real-time Architecture
The third case study for the ‘Paystub’ application highlights the serious issues that some poorly architected legacy applications can cause. In this case it pulled and maintained a local copy of personal data, presenting privacy and security risks and requiring batch job synchronization, causing data latency problems.
Furthermore the business logic was programmed directly into the user interface, so even the smallest of business workflow-level changes required source code reengineering and distribution. The application also required a dedicated server cluster.
So again migrating to Azure eliminated these hardware costs, but more importantly enabled architecture modernization that also eliminated the more severe issues caused by the poor design model, making possible a single data source, real-time approach.
Delivering Business Value
The ‘Returns Service’ was how Microsoft customers would arrange for the return of products via the online and retail stores. It was painful for customers because it was manual, slow and sometimes introduced errors such as assigning refund credit incorrectly. Customers had to wait 24 hours to receive a shipping label.
Therefore in this case migrating the app to Azure delivered customer value. Integrating with the online store it enabled self-service submitting of return requests, eliminating the delays and errors and greatly improving the customer experience.
In another paper Creating a user-centric mobile hub with Xamarin and Azure App Service2 Microsoft further describes how Azure can power mobile-enabled applications.
The team developed ‘EmpEx’, a mobile app that brings together various employee experiences, such as booking a shuttle to travel to various office buildings, ordering online from the nearest building café, and even viewing a summary of their benefits information, with goals of:
- Providing snack-size experiences for everyday things employees care about.
- Empowering employees to work from anywhere.
- Orienting employee experiences to their context.
- Carrying interactions across places, time, and people.
A key feature of this project was the use of Xamarin, whch enabled the development of a single code base deployed to multiple different mobile devices – Windows 10 Mobile, iOS, and Android devices without building and managing three distinct apps. HockeyApp was used to distribute the apps, to easily publish new builds of EmpEx and make it available for employees to install, integrating with Visual Studio Team Services (VSTS) and logging telemetry, crash reports, and deployment release (flighting) information.
Conclusion: Business PaaS-Enabled Consolidation
Although Cloud migration scenarios tend to focus on a single, big ticket application, the reality is that large enterprise organizations also feature a ‘long tail’ of thousands of small applications, those built using tools such as Sharepoint through Excel spreadsheets, and also there are still manual processes. While they are built via much lower standards of IT architecture they can still be important to customers and make use of sensitive data, and incur relatively high costs as they require their own dedicated hardware.
Migrating all of these to a PaaS not only eliminates multiple instances of excessive hardware installs it enables a powerful framework for consolidating a portfolio of applications sharing common functionality, both at the technology and business logic layers.
For example rather than duplicating identity authentication procedures each of the apps uses the Active Directory Authentication Library (ADAL) to communicate with AAD to authenticate users and securely call web APIs by using OAuth 2.0 across all platforms via the Azure App APIs.
Furthermore Microsoft built another services layer atop this again, what could be considered a ‘Business PaaS’, in that it facilitates the same common components but for business components, in addition to the technical ones. Called the EDM for Employee Data Management it’s built around the complete ‘Hire to Retire’ lifecycle of employee management, providing a common platform that facilitates multiple required applications, and makes use of common components such as MS Approvals.
This ‘Business as a Platform’ approach yields multiple benefits:
- Widespread upgrade of the ‘long tail’ of small business applications that harbour a myriad of expensive, inefficient and non-compliant IT solutions.
- Modernization of these tools via very rapid application development methods. For example adding a new EDM application is as simple as creating an Azure web site.