Enterprises continues to migrate applications from traditional datacenter and dedicated servers to cloud infrastructure. The increased breadth of services and security provisions on dominant cloud providers (e.g. AWS, Azure, Google and IBM) enables migration and refactoring of many applications that have previously been considered too complex for migration to the cloud. However, there still remain a class of enterprise applications that are Migration Resistant.
Migration Resistant applications are legacy applications currently hosted on dedicated in-house or private data center servers that have one or more attributes that make them difficult to migrate to the cloud. These are the applications that are always dropping to the bottom of the list when prioritizing applications to be moved to the cloud.
Consider the following analogy.
Should you DIY?
Planning for enterprise application migration to the cloud raises a set of questions analogous to moving a household from an old residence to a new one.
- Are we capable of doing the move on our own?
- How much time and effort on our part is required?
- What can be thrown out?
- How do we get ready for a move?
- Should we hire professionals to do the whole move?
- What about the grand piano on the third floor? The antique dresser in the master bedroom? Or, the precious painting in the dining room?
We have all been part of a disorganized DIY move with open trailers, cars and Aunt Jane’s minivan at some point in life. Things get broken, lost and rained on. Never again! We might have also been part of a well organized and properly equipped DIY effort. Much better, but still a lot of work. You don’t want inexperienced friends, even strong ones, moving your most valuable and fragile items.
Many will at some point in life just hire a standard professional moving firm with moving trucks, furniture blankets and professional movers to do the labor. However, there is a class of valuable items that sometimes even the standard professional movers are not equipped to handle. That is when we call the piano movers and other speciality movers who are experienced at successfully moving the most valuable, fragile and complex items.
Migration Resistant applications are like that last category, valuable, fragile and scary to even think about moving.
Technology executives generally know when they have a Migration Resistant application but it is helpful to articulate just exactly what is it about those applications that give pause when thinking migration.
Eight Attributes of a Migration Resistant Application
Migration Resistant applications will almost always be characterized by at least one of the following attributes and potentially several. Even one of these attributes in a fairly extreme form may be enough to push an application into the Migration Resistant zone.
#1 Customized 3rd Party Application - Your 3rd party application (ERP, CRM, Financial) has so many customizations that it is barely recognizable as the original licensed application. Migration raises difficult decisions around porting older versions versus upgrading the core and refactoring many/all of the customizations.
#2 Minimally-Documented Custom Application - Your custom application is uniquely suited to your organizational needs but it has been built up in layers over many years and documentation hasn’t kept up. Hidden/undocumented features, integrations, data flows, reports and dependencies make you reluctant to migrate.
#3 Data Structure Complexity - Your databases contain hundreds, even thousands of tables and include many constraints, operational triggers, stored procedures and ETL processes embedded in the database layer. Preparatory work by application and data architects including prototyping and data modeling are all needed before pushing through with a migration.
#4 Dependency Rot - Your application is dependent on old versions of languages, libraries and frameworks, some of which are no longer supported by a vendor. These aging unsupported components will require refactoring/replacement in order to ensure a compliant and secure migration to the cloud.
#5 Tightly Coupled Integrations - Your application has multiple tightly coupled integrations with other applications. An application architect will need to be heavily involved in coordinating a move to ensure that all connected applications continue to share data and logic flows seamlessly.
#6 Internal Accounting Complexity - Your application serves numerous business functions/departments and requires complex cost accounting for chargebacks. Business analysts need to do an in-depth review, coordinate a strategy and work with all departments to structure the move.
#7 Critical to Regulatory Compliance - Your application processes and stores data that is highly regulated and critical from a risk management perspective. Security and data architects need to work closely with in-house security team, compliance officers and risk managers to ensure that proper policies and technologies are in place in the cloud solution. User and administrator training, security automation must all be in place in order to prevent mistakes during and after the move.
#8 Business Critical - Your application is absolutely integral to delivering a core capability/function of your organization. This is an all hands on deck approach with analysts, developers, security, data and systems architects, quality assurance stakeholders and executives deeply engaged to plan and execute a seamless move.
In future posts, we will further articulate how these eight attributes complicate migration to the cloud and we’ll explore the steps that your technology organization can take to prepare for a successful move.