The ins and outs of application compatibility on Microsoft Azure

puzzle-piece

Many of our customers want to move their existing applications to the public cloud but are concerned about potential compatibility issues. This is a complex topic so I will attempt to address it by focusing on an application’s execution model and using Microsoft Azure to illustrate my points.

Leading public clouds like Microsoft Azure provide three execution models for applications:

  • Infrastructure as a Service (IaaS)
  • Platform as a Service (PaaS)
  • Software as a Service (SaaS)

Within each of these models, Azure provides a range of services that can be leveraged to enhance the total Azure experience for application owners and consumers. This blog will focus on IaaS and PaaS since they are the predominant execution models for application migrations.

IaaS

IaaS is instant computing infrastructure, provisioned and managed over the internet. It can easily scale (up or down) on demand, and the customers pay only for what they use. In Microsoft Azure, IaaS is simplistically available as Azure Virtual Machines (VMs).

There are fewer compatibility issues when migrating applications to Azure VMs, provided there are no differences between the source server and target Azure VM. Still, the factors below should be taken into account for application compatibility:

  • Operating System – If the current version of the operating system is unsupported on Azure VMs (Windows versions pre-2008 R2, HP-UX etc.) then the application will require remediation to function on Azure.
  • Technology – If the current versions of the application’s various components like database, application server or runtime are unsupported then these will require upgrades to the latest supported version. In some cases, the components may even need to be replaced with a different product if a supported version is not available on Azure.
  • Hardware – Compatibility with the hardware for Azure VMs will have to be met to ensure the application performs in line with expectations. So, applications that rely on Field Programmable Gate Array (FPGA) technology to deliver performance may need to be re-architected before deployment to Azure.
  • Commercial Software – In the case of commercial software, version upgrades may be required if the current version is not supported by the vendor on Azure VMs. Care must also be taken to ensure that functionality is not impacted when upgrading to a newer version. In extreme cases, the commercial software may even need to be replaced if a supported version does not exist.
  • Interfaces – Application configuration (endpoint addresses, etc.) for interfaces will need remediation. Some of these interfaces may also need to be replaced with equivalent Azure native services.
  • Scalability – If the application is expected to scale automatically then remediation will be required to make the application architecture stateless, enabling it to scale horizontally.
  • Security – Any security or regulatory compliance (HIPAA, PCI etc.) requirements for the application will have to be reviewed against the security services and compliance certifications provided by Microsoft Azure.
  • Availability and Disaster Recovery (DR) – Availability and DR requirements for the application will have to be manually designed and configured on Azure VMs.

PaaS

Platform as a service (PaaS), on the other hand, is a complete development and deployment environment in the cloud, with resources made available to deliver applications. App Services, Cloud Services, Azure SQL are some examples of Azure PaaS.

Compatibility issues are more likely when migrating applications or databases to PaaS as they will need to be supported by the PaaS platform. Factors that have to be taken into account for compatibility on Azure PaaS include:

  • Technology – PaaS services mandate a minimum supported version for the application technologies, database and runtime. If the current application falls short then it will need to be upgraded to a supported version. As part of this, components such as APIs, DLLs, and COM will need to be upgraded. In some cases, they may even need to be replaced if a supported flavor is not available on Azure PaaS.
  • Commercial Software – In the case of commercial software, a migration can only be considered if the supplier offers software that is compatible with PaaS. If not, the commercial software will need to be replaced or hosted on IaaS.
  • Storage – The application can no longer access data on traditional storage. In such cases, the data will need to be migrated to other services such as Azure Storage, Azure SQL or Azure CDN. Coded references to these data sources will have to be updated in the application.
  • Interfaces – As is the case with IaaS, configuration for interfaces (endpoints etc.) will need remediation or the interfaces can be replaced with equivalent Azure native services.
  • Security – Any security requirements of the application will have to be re-configured or remediated. These include ports and SSL certificates. Regulatory compliance (HIPAA, PCI etc.) is also a concern and it is important to ensure that a particular PaaS service carries the same level of compliance as the overall cloud service.
  • Scalability – While PaaS provides auto-scaling by default, most applications will need some remediation to a stateless architecture to be able to scale horizontally.

To conclude, application compatibility on Microsoft Azure is dependent on a host of factors that will vary based on the application’s execution model. At DXC Technology, our Application Advisors can conduct an assessment of your application portfolio to identify the most suitable execution model and the level of remediation required to ensure public cloud compatibility. We can also help customers migrate their application to public cloud with our Application Transformation Factories and Public Cloud Accelerators.


Mudasser Zaheer headshotMudasser Zaheer (Maz) is passionate about digital transformations. He is currently responsible for Public Cloud Application services at DXC Technology. His previous roles include Chief Evangelist, Digital Transformation Officer and Chief Product officer for companies like HP Enterprise.

Trackbacks

  1. […] are increasingly migrating their applications to public clouds, and Microsoft’s Azure is a preferred target for many of them. During the migration, […]

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s

%d bloggers like this: