In the latest “State of the Cloud” report by Flexera, 82% of respondents indicated that managing cloud spend was their top challenge with the technology, surpassing security for the first time. moving forward. As economic uncertainty continues, CIOs and their teams must be increasingly careful with their budgets – the tolerance for budget overruns and excessive costs is slim to none. In a public cloud migration study performed by Gartner, they identified four key areas that IT leaders must address to avoid these mishaps. They are:
- Understanding application candidates for migration and how best to optimize for the cloud
- Creating a strategy around which cloud provider(s) to use and for which workloads
- Attracting, developing, and retaining talent with relevant and evolving cloud skills as the cloud providers continue to innovate
- Enabling collaboration amongst an organization’s team for cloud cost optimization
As shown by these challenge areas, planning and the knowledge needed to effectively drive that plan are crucial to any successful cloud migration effort. The benefits that cloud migration can bring can be weighed down by unexpected costs, particularly for those organizations with existing legacy applications and infrastructures. For those with a legacy footprint, it is important to first take the time to more deeply understand the applications and options available for migration. And subsequently, they must modernize these applications in a way that is “cloud-native” in order to optimize performance and cost.
Software reverse engineering: Understand what you have and where you can go
Legacy applications can consist of layers and layers of code written in programming languages that are no longer actively used or understood by newer developers. If these applications have not been documented, an organization is reliant on the staff that has knowledge of them through experience and/or on talent that is proficient in the programming language used. Much of the workforce that carries this institutional knowledge is either retiring or is already retired, and the personnel replacing them have neither the experience nor the knowledge required to understand and maintain the application let alone modernize it for the cloud. So what can these organizations do?
Organizations must understand what logic is being implemented in their applications before moving ahead with any cloud strategy. One approach would be to use manual methods and services to gain this understanding. However, when you are dealing with millions of lines of code across multiple applications, manual methods can’t provide the amount of precision needed for success. In fact, there have been several modernization efforts that have been highlighted as unsuccessful due to errors stemming from an incomplete foundation of application knowledge.
More recently, companies that provide software for automated application documentation have emerged. These tools, including EvolveWare’s Intellisys platform, reverse-engineer an application’s source code in order to detail the logic and flow. Various documentation artifacts including reports and diagrams are then created. While different tools provide various levels of detail, the rule of thumb tends to be that the more detailed and contextual the information provided is, the better off you are in terms of determining your next steps.
The other side of this upfront planning approach is to deeply assess your future state and what will help you meet your business goals. There are multiple decisions that can be made including:
- Retiring applications that are no longer needed or that could be consolidated
- Refactoring or rewriting applications and keeping them on a client/server-based computer system such as the mainframe
- Replacing, refactoring or rewriting applications and moving them to the cloud
Not all applications gain the most benefit from being in the cloud, and so it is important to consider the needs and goals for each one. For those applications where cloud migration does make sense, the next decision becomes which cloud provider to use for which workloads and how to potentially devise a hybrid or multi-cloud strategy.
Decoding “cloud-native”: How to optimize your new applications for the cloud
Once an overall cloud migration strategy is in place, then an organization must focus on optimizing the application modernization execution to truly gain the benefits that are commonly associated with the cloud. If an organization is not replacing or rewriting its existing applications, they should first clear the current application code of any unnecessary elements such as dead code, redundancies, etc. While some vendors advocate for more of a “lift and shift” approach to take applications as they are to the cloud, this ultimately means that you’ll be running inefficient applications on the cloud until your development team is able to remove the “dead weight.” One study across 160 organizations found that there was approximately $3.61 worth of technical debt per line of legacy code. For organizations that follow the “optimize after” process, the impact of doing so results in the cost benefits generally associated with the cloud not being realized until further down the line.
Once the code has been optimized or when doing a re-write, an organization then needs to embrace the concept of “cloud-native.” But what does this really mean?
We use the following definition: “Cloud-native” describes an effort that is specifically designed and created to leverage the full extent of cloud capabilities. Most of this resides in the architecture used to create the new application(s). Considerations include:
- Proactive contingency planning: Applications need to be able to handle periods of latency as services are delivered over the internet and scattered across servers. They should also be able to withstand any failures of underlying components.
- Execute without dependencies: Applications should be broken down from a monolithic architecture into smaller components so that various functions are event-driven and so that they can be executed without complex dependencies. Microservices which work independently but communicate with each other through APIs have become a preferred option.
In the above-mentioned Gartner study, almost half of those who identified integration issues as a top challenge said that modernizing applications to use cloud native components would help to reduce costs or increase their migration efforts.
$1 trillion in business value potential
The cloud is estimated to unlock $1 trillion in business value. Securing the part of this value contributed by modernizing legacy applications truly requires end-to-end considerations. Legacy applications first need to be understood at a fundamental level, then optimized for current business environments and processes as needed, and finally optimized for the new computing environment. And collaboration across the company in acquiring the right talent and setting the right educational and operational processes in place is imperative. Only when all these pieces come together can organizations accelerate cloud adoption efforts and gain meaningful value from utilizing the cloud.
Evolveware’s Intellisys platform enables organizations to decide on cloud migration strategies for their applications as well as to execute on those strategies. To learn more, visit our website or contact us.