Share this post:
Despite the significant benefits of cloud computing, which include cost savings, agility, elasticity and standardization, to name a few, some companies are struggling with their cloud journey. Most have successfully adopted a few software-as-a-service (SaaS) solutions, built cloud-native digital capabilities or migrated simpler distributed applications, but few have made real progress in application modernization. In fact, 80 percent of mission-critical workloads and sensitive data are still running on on-premises business systems because of performance and regulatory requirements, Forbes writes.
Large heritage portfolios can prevent organizations from transforming, due to:
- Long development and testing cycle times using traditional IT frameworks.
- Extended timeframes to bring new features to market.
- Increased risk profile due to skills attrition and scarcity of heritage skills.
- Disproportionate effort and cost in maintaining the established applications and infrastructure — also known as “technical debt”.
Without addressing these challenges, organizations risk a higher total cost of ownership, increased complexity across their target cloud and on-premises footprint, significant performance and stability challenges, and security exposure.
Beginning the application modernization journey
Many organizations need help with a wide range of applications from different eras, whether they’re mainframes, large commercial off-the-shelf packages or custom-developed monoliths. These heritage applications are frequently incompatible with the cloud; they’re either not supported by the cloud or they’re unable to fully use its automation and horizontal scalability benefits.
Companies simply can’t succeed in their cloud adoption journeys without modernizing their portfolios. However, transforming established applications requires a multidimensional approach. Let’s look more closely at the key elements of that transformation.
Align application modernization with business strategy
Companies too often embark upon the application modernization journey with only technology in mind and ignore the business and cost dimensions. The outcomes don’t align with underlying business needs and don’t generate desirable returns on investment.
If you assess how important applications are to the company business drivers and competitive landscape, you can appropriately sequence the technical approach and application modernization journey to generate value quickly and cost-effectively — and potentially in a self-funding manner.
Consider application modernization patterns
Businesses need to consider a wide range of transformation patterns to deliver meaningful application modernization incrementally, based on the type of application and the desired benefits. A few potential modernization options include:
Expose application programming interfaces. When companies begin the modernization journey, it is often best to expose established functionality as APIs to allow new business capabilities to be developed quickly.
Strangle the monolith. Most monolith applications have several components, but not all portions change as frequently or are equally important. Using the Strangler Pattern, monolithic applications can be incrementally transformed by replacing a particular functionality with a new service. Once the new functionality is ready, the old component is strangled, and the new service is put into use. The service can follow modern software engineering best practices and exploit cloud benefits such as automation, autoscaling and blue-green deployments.
Refactor and containerize. Wrapping an application — or parts of it — in a container is a good first step toward modernization, but many applications aren’t optimized for containers. Monitoring, load balancing, application state handling are different in containerized applications. You might still need to rewrite portions of the applications.
Replace with a new package. In some instances, it might make sense to replace the entire monolith or portions with newer-generation, born-in-the-cloud solutions.
Design an optimal target environment
The target environment must be designed appropriately. With containers and container management platforms such as Kubernetes, the benefits of cloud are no longer location-centric. Benefits can be realized on-premises without exiting data centers. However, critical choices must be made.
- Cloud design. Would the business benefit from a hybrid design, which is more portable, or a cloud-native design, which requires a greater cloud provider lock-in, but is simpler to adopt?
- Multicloud management. Inevitably, enterprises end up with multiple cloud land zones (a combination of on-premises, public cloud, SaaS and PaaS topologies). In order to manage the complexity of the target state, businesses must consider adopting multicloud management solutions.
- Solution design. Companies must also decide between a fully managed (e.g., managed platform as a service) or a do-it-yourself solution. The building blocks in the cloud world are fairly complex; a fully managed solution might not be a bad way to start.
Transform the operating model
Too many companies focus solely on the technology and not the transformation of their workforce and IT processes. Unlike traditional operating models, cloud adoption pushes the infrastructure-as-code paradigm with a deep focus on platform engineering, which requires companies to rework infrastructure organization and overhaul the processes related to provisioning and management of IT assets.
Modernizing an application portfolio is arguably the most critical phase of the cloud adoption journey. To get started, IBM recommends the following:
- Build a business case for the application modernization strategy first.
- Start small — perhaps by using a collaborative approach, such as the IBM Garage Method for Cloud, that focuses on co-creation — and declare success early.
- Reduce the risk of the transformation journey by partnering with firms that understand the technology landscape and the underlying industry.
- Share experiences with peer firms and learn from one another.
Learn more about how expert guidance, migration, modernization, cloud-native application development and managed services from IBM can help simplify and accelerate the journey to cloud.