eBook

The Enterprise Guide to Continuous Application Modernization

Introduction

Many organizations today are struggling to get the full value of migrating their enterprise systems to the cloud. The reason, according to consulting firm McKinsey & Company, is that companies tend to “fall into the trap of confusing simply moving IT systems to the cloud with the transformational strategy needed to get the full value of the cloud.” In essence, organizations are simply outsourcing their data centers, which prevents them from maximizing the benefits of the cloud.    

That’s where the concept of modernization comes in. Moving to the cloud is only one—albeit essential—component of modernizing your infrastructure, applications, and approach to software development. 

Why move to the cloud in the first place? 

Among the top reasons are increased business agility and speed—and the competitive advantage that offers. Another compelling driver for many companies is the increased productivity of their workforce, while a number of organizations shift to the cloud to innovate and transform their business with modern technologies, reimagining their applications within a modern framework.

That’s why simply getting to the cloud should never be thought of as the finish line for your modernization efforts. Creating a new application in Amazon Web Services (AWS) or “lifting and shifting” legacy applications to AWS doesn’t automatically result in applications that can take full advantage of the elasticity, resiliency, ease of deployment and management, and flexibility that AWS offers. Nor does it automatically modernize your culture and processes to enable high-performing software development.   

Modernization means taking your application environment in the form that it is today (most likely legacy and monolithic) and transforming it into something that is more agile, elastic, and highly available. In doing so, you can transform your business into a modern enterprise. However, modernization is not easy or trivial, nor does it happen overnight.

This ebook introduces a pragmatic and continuous approach to application modernization as part of a greater modernization effort on the AWS platform. You’ll learn about the choices, trade-offs, and benefits of various approaches to continuously modernizing your applications, and how you can achieve your goals for transformative IT and business outcomes.      

81% of organizations have at least one application or a portion of their computing infrastructure in the cloud. 

Source: “Cloud Computing Survey 2020,” IDG, June 2020

Why Modernize? 

For the vast majority of companies that were not “born” digital—and therefore not primed to take advantage of all the latest cloud technologies—there’s little choice about whether to modernize or not. Remaining stuck in the past in your infrastructure, technology, applications, and approach to software development means ceding the race to more agile, responsive, and innovative competitors. Large legacy businesses today must evolve quickly to remain competitive and relevant.

Rather than approaching modernization as simply a way to survive in your industry, it’s more productive to view it as the primary way to achieve business agility in the modern era. Modernization and transformation power your company’s ability to deliver measurable and sustainable outcomes such as: 

  • Improving customer experience and loyalty with a differentiated customer experience

  • Disrupting the industry and the competition 

  • Introducing innovation at a rapid pace 

  • Optimizing the cost, speed to market, and volume of new digital experiences

  • Supporting mandated changes such as regulatory compliance in a timely way     

The question is not whether to modernize at all, but what and how to modernize. Should you move your core applications to AWS? Which business areas or applications will deliver the largest impact or highest value for the business when modernized? Are there applications that should not be modernized because they have reached the end of their useful life? What are best practices for breaking apart monoliths?

To answer these “what” and “how” questions about your legacy applications, you need two fundamental things: an understanding of your modernization options and deep insight into your applications. Read on for a strategy that incorporates both of these must-haves.     

Implementing a Continuous Application Modernization Strategy

To deliver better quality software faster, and with greater frequency that enables the business to stay agile and respond rapidly to changes in the market, IT organizations must transform their culture, tools, and processes. The DevOps movement was born from this need, and includes core tenets such as collaboration, transparency, automation, and continuous delivery of software.   

However, for the majority of businesses, legacy applications are still an essential part of the company’s value chain, providing core capabilities and data for the business. The architecture, infrastructure, and technology used by legacy applications do not easily lend themselves to modern software development, limiting the ability of your IT teams to deliver software with the speed and stability the business requires.      

The answer is to incrementally—but continually—modernize your legacy applications. By gradually transforming them, you can reduce technical debt, improve the value and performance of each application to the business, and support the shift to DevOps in your IT organization. 

Here’s a pragmatic strategy for continuous application modernization:

  • Step 1: Set goals for the modernization. 

  • Step 2: Make sure you thoroughly understand each of your applications.

  • Step 3: Choose the optimal modernization approach for each application.  

  • Step 4: Observe and measure changes against your goals before, during, and after modernization. 

  • Step 5: Start over with step one. 

Before we explore each step in more detail, there’s a critical success factor you need to keep in mind: your data. Not just any data, but contextual information about your infrastructure and applications and their impact on your customers and your business. Without this data, you’re essentially going into the modernization process blind, with limited ability to minimize risk; avoid missteps; and accurately assess, predict, and confirm improvements.  

“Organizations have to change, now ... the path forward is clear: Accelerate digital business or risk the survival of the organization.” 

Source: “Why Now Is the Time to Accelerate Digital,” Smarter with Gartner, September 2020

Step One: Set Your Goals for Modernization

How will you measure the success of your modernization efforts? Simply moving a certain percentage of applications to AWS is not a good measure of success in and of itself. Instead, it’s better to link modernization efforts to measurable business and IT goals, such as greater agility and faster time-to-market with new capabilities. This will allow you to show incremental progress and success as you continuously modernize your applications.

One way to get started is to identify the highest priority business-critical applications and explore how they would benefit from better performance, scalability, and reliability by leveraging the economies of scale that AWS delivers. For instance, depending on your industry, target market, and other variables, you can identify how modernizing critical applications could impact areas such as profitability, revenue, churn, market share, differentiated customer experience, and more. 

Once you define how your current applications impact business success, then you can link modernization goals and priorities back to business outcomes. For example, modernizing a billing application so that it can integrate with a new e-commerce system could drive greater customer satisfaction and reduce customer service costs, as fewer customers need to contact the business about problems with their bills.

SAMPLE GOALS  IT IMPACT & KEY PERFORMANCE INDICATORS BUSINESS IMPACT & KEY PERFORMANCE INDICATORS
Increase revenue

Respond faster to business needs and market opportunities.

KPIs:

  • Lead time for changes
  • Frequency of code releases

Drive revenue in current business models and adopt new models that create additional revenue streams.

KPIs:

  • Average revenue per user
  • Conversion rates
  • User base growth rates
Improve profitability

Optimize IT costs through better resource utilization and higher quality software (less time spent fixing problems).

KPIs:

  • Application resource usage
  • Mean time to resolution
  • Application error rates

Reduce customer service costs due to software problems and optimize IT spend to improve margins and profitability.

KPIs:

  • Customer service costs
  • Cloud spend
Deliver improved customer experiences

Improve quality and performance of applications and deliver new capabilities faster.

KPIs:

  • Uptime
  • Application response time
  • Application error rates
  • Lead time for changes

Improve customer satisfaction and retention.

KPIs:

  • Customer satisfaction survey results
  • Churn rates
  • Increased volume
Grow market share

Outpace competitors to deliver innovative new features faster.

KPIs:

  • Lead time for changes
  • Frequency of code releases
  • Session count by geography
  • Total users by geography

Increase customer base and share of market.

KPIs:

  • User base growth rates
  • Market share

Step Two: Understand Your Applications     

The next step in the strategy is to get a clear understanding of each application and its interdependencies. To do this, take a baseline measurement that helps you figure out how each application currently performs. This gives you the foundation for making data-driven decisions as you create your initial road map for modernization. With this understanding, you can identify and prioritize applications to modernize and determine how you want to approach modernizing each application.  

To achieve this, you need an observability platform that delivers a single source of truth across your applications and infrastructure and supports both pre- and post-modernization environments. Otherwise, you’ll be relying on guesswork, anecdotes, and “gut feelings” to understand how your application is functioning now and whether or not modernization improves it.     

Once you have your full-stack observability in place, begin capturing data about your applications that will help you understand the following characteristics for each application:

Application Infrastructure 
  • How are resources being used?
  • Which resources are being used by this application?
  • What chronic resource issues exist (e.g., over- or under-utilization)?

Application Quality and Performance

  • How is the application performing? What is normal baseline performance? 
  • What errors does the application currently have? 
  • What are the application dependencies? 
  • How is the end-user experience? 
  • Where is your application spending most of its time?
Impact on the Business
  • How does performance and reliability impact revenue?
  • How much time do users spend on the application? 
  • How does the application impact conversion rates or order value?  
  • Do errors/downtime impact customer service costs? 

With an objective and holistic view of the application—including its running state, processes, infrastructure, business KPIs, codebase, and issues—you’ll now be able to make decisions about how best to modernize the application.

Step Three: Choose the Optimal Modernization Approach for Each Application

Now it’s time to use all the data you’ve gathered to make an informed decision about how to begin modernizing or further modernize each application. Although there are six industry-recognized approaches that you can consider, only the last three—rehost, replatform, and refactor—involve modernizing the application.

modernization approach flowchart
Approach 

Risk / Impact 

 Reason to Choose This Option 

Action Required

Retire low / low  The application no longer provides value to the business. Remove the application altogether.
Repurchase  low / low  The application is an undifferentiated support system such as email. Replace the current application with a new, off-the-shelf package.
Retain low / low  The application is not worth modernizing currently, because it’s of low value to the business and low impact on IT. Keep the application and the infrastructure it runs on as is and revisit the decision in the future. 
Rehost low / low  Moving the application to a more modern environment would create benefits such as cost savings, performance gains, or ease of operations. Migrate to a more modern infrastructure such as cloud with no changes other than those related to the rehosting.
Replatform low / medium  Moving the application and modifying some of the infrastructure it uses would generate additional benefits such as time and resource savings.  Take an existing component of an application and move it to a managed service (such as a database service) with no changes to business logic.
Refactor high / high Re-architecting the application to take advantage of modern cloud services, architectures, and technologies would fundamentally improve the quality and performance and enable the rapid delivery of innovative new features. Make code-level changes to improve performance, scalability, manageability, reliability, and resource usage as well as developer productivity and the ability to innovate rapidly. 

Keep in mind that with an iterative modernization strategy, you can start with one approach, reap some initial benefits, and then continue to modernize through other approaches to obtain more benefits. For example, you could rehost an application with no code changes, then replatform it to swap out the current database for a cloud-based database service. With a different, higher priority application, you could decide to go straight to refactoring it to take advantage of additional cloud technologies. 

application modernization methods comparison chart

Step Four: Observe and Optimize       

It should now be clear that you need to fully understand how your applications perform before you can decide how and whether to modernize them. The baseline picture of application performance gives you data not only to inform your decisions, but also to serve as a comparison during and after your modernization effort. It also helps you identify any issues that you need to address before you begin the modernization.

evaluate, plan, design, migrate, and optimize diagram

After the initial modernization iteration is complete, you can demonstrate success by comparing your previous baseline against current performance, customer experience, and business outcome data. Ideally, you’ll see improvements and identify areas where further modernization and optimization can help. 

  Sample KPIs to Track Before/During/After Modernization
Application Infrastructure
 
  • CPU percentage
  • Memory used percentage 
  • Average load
Application Quality and Performance
 
  • Availability percentage
  • Page load time
  • Throughput
  • Perceived response times of key transactions
  • Application response time
  • Database response time 
  • Apdex
  • Application error rates
Business and IT Impact
 
  • Cost to operate 
  • Lead time for changes
  • Mean time to resolution 
  • Conversion rates
  • Average revenue per user (ARPU)/Revenue
  • Churn

Step Five: Repeat 

This last step is neither an actual step nor the last activity of the modernization process; rather, it’s a reminder that modernization is continuous, and that even as you gradually modernize your applications, there will always be new technologies and capabilities to incorporate and support. 

However, with each cycle of modernization, your organization is making significant strides in enabling and fostering digital transformation and the culture, process, and technology changes that must happen as part of it.  

New Relic can support you before, during, and after each modernization iteration, providing data-driven insights to help you make smart business decisions when considering which applications to modernize and the right approach to take for each. New Relic One, the most powerful cloud-based observability platform, is designed for everything that makes modern software great, with a connected, real-time view of all your operational data in one place. Using New Relic One throughout your modernization efforts helps you reduce risk, set priorities, and demonstrate your impact at every step. 

Using New Relic One together with our Cloud Observability Framework helps you reduce risk and accelerate your cloud journey in any phase—from pilot to migration to optimization and modernization to thriving digital business. To learn more about how New Relic One and New Relic Cloud Observability Framework can help you achieve your modernization goals, read our solution sheet AWS Cloud Adoption with New Relic.

Visit https://newrelic.com/partners/aws-monitoring to learn about New Relic’s partnership with AWS, our integrations, competencies, and case studies.

Special thanks to Jay Year and Carmen Puccio from Amazon Web Services for their contributions to this ebook.