Getty Images/iStockphoto

Tip

Use the 7 Rs to develop an app modernization strategy

Application modernization can be the bane or boon of app development. Learn how to use the seven Rs to create an effective development strategy for your business's applications.

Application development can be an ongoing process, and some applications might benefit from either modernization or migration. As an industry standard, cloud application developers use the seven Rs to create their own app modernization strategy. Gartner created these strategies -- and AWS expanded on them.

The 7 Rs are:

  • Rehost. Admins move applications with minimal code changes.
  • Relocate. Applications move to a different environment altogether.
  • Replatform. App architecture remains the same while providing platform optimization.
  • Refactor. Significant code modifications restructure applications.
  • Repurchase. Modern applications that support cloud features substitute legacy applications.
  • Retire. Admins terminate legacy applications entirely.
  • Retain. Applications remain as-is within their existing environments.

Organizations can use these approaches to improve application development throughout the program's lifecycle and within the ever-changing app ecosystem. Let's take an in-depth look at each of these app modernization strategies, as well as their benefits and major considerations.

The 7 Rs of application modernization and migration
Each R denotes one of the several standard methods for determining whether an on-premises application should be moved to the cloud and the best ways to do it.

Rehost

When the topic of cloud migration comes up, most people think of rehosting an application. It's the simplest approach and only involves moving existing workloads from on-premises infrastructure to the cloud. Many administrators call this method lift and shift, which demonstrates its relatively straightforward migration path.

A great example is a business moving from locally installed copies of office productivity suites, like Microsoft Office, to SaaS services. The process is transparent to end users and enables data migration to services that should match the compute requirements of the business's workloads. Done effectively, applications should take advantage of cloud benefits like scalability and fault tolerance. Costs of this approach are far less substantial than other strategies like replatforming or refactoring.

There is little to no cost in terms of recoding, updating the network or deploying supporting services with rehosting.

Benefits

  • Reduced upfront costs.
  • Minimizes service interruptions.
  • Provides some cloud benefits for some applications.

Considerations

  • Rehosted applications can require additional tweaking once in the cloud.
  • Applications might be incompatible with the cloud, thereby losing key cloud benefits.
  • Can introduce higher costs through the cloud if not strategically managed.

Relocate

Relocating applications refers to moving servers from on-premises virtualization platforms to cloud-based services. The applications themselves don't change; rather, the host system changes. An organization usually aims to offload the hosting costs to the cloud service provider (CSP) instead of investing in a data center with its required infrastructure and staff.

Relocating applications can result in significant cost savings. However, many companies prefer to relocate services to the cloud to take advantage of the cloud's other benefits. Even if there aren't financial savings, the reliability, accessibility and scalability of the application might increase significantly.

For example, an organization might migrate 10 locally hosted virtualized servers residing on its data center's Microsoft Windows Hyper-V virtualization platform to the Microsoft Azure cloud VM hosting service. The company's expenses might not change, and they will have options for scaling the servers, increasing uptime and more flexible deployments.

Benefits

  • Relatively straightforward and quick migration.
  • Minimal expertise required.
  • Immediate reduction in data center costs.

Considerations

  • Changes to spending from Capex to Opex.
  • Ensure that the target environment can support the existing application.
  • Long-term costs.

Replatform

Replatforming can provide organizations with performance benefits, additional security options and notable ROI. This approach requires additional resources to ensure accurate coding of an application; however, it is still cheaper and quicker than starting over, and the benefits should outweigh the expenses.

The application should show improved performance, updated compliance and integration of new technologies. The application should also interface with modern cloud-native applications, increasing its usefulness and extending its lifecycle.

Consider an organization's critical business database application. Developers, system administrators, cloud administrators and database administrators will team up to migrate the application to the cloud and add the ability to interface with other related cloud services.

Replatforming balances cost with application benefit. It's also known as lift, tinker and shift.

Benefits

  • In-house staff and third-party contractors require less expertise since architecture is maintained.
  • There is a controlled migration of selected services.
  • It can deliver a faster ROI with improved performance and reduced costs.

Considerations

  • Can be costly in terms of both resources and time.
  • This middle-ground approach is not fully taking advantage of cloud-native features.
  • It may not deliver the most optimal long-term benefits compared to the refactor method.
Steps of application modernization.
A walkthrough of the steps to modernize legacy applications.

Refactor

Application refactoring -- also referred to as rearchitecting -- requires substantial changes to the application's primary code to realize performance and feature benefits. These improvements require large overhauls in the program's design and coding, which is significantly more complex and costly than other approaches.

The upfront cost of refactoring a key business application can be high, so teams must weigh this against the potential benefits of application modernization. In many cases, refactoring is cheaper than starting over, especially for very business-specific purposes. While simpler applications might be rehosted or repurchased, refactoring is best for complex and custom applications. This strategy is sometimes called rip and replace.

Benefits

  • Implements and take full advantage of cloud-native technologies.
  • Refactoring can create apps that are easier to maintain.
  • Reducing long-term costs.

Considerations

  • Requires more upfront costs.
  • Increases the migration's complexity.
  • Requires significant expertise from either in-house staff or third-party sources.

Repurchase

Repurchasing recognizes that the cost of refactoring or replatforming an application is too high and that an outside vendor has a viable replacement. While this approach involves less effort and can be completed quickly, it requires resources to explore the available options and migrate existing data from the old application to the new one.

For companies that use custom-built project management software, it might be worth exploring offerings from vendors specializing in those applications. These vendors can readily offer off-the-shelf products, tech support and migration assistance. Furthermore, many of these companies already have cloud-native solutions in place. Cloud migration experts sometimes call this strategy drop and shop.

Purchasing a modern version of an application balances feature requirements, cost, support and migration resources. Tied to this decision is whether to keep the maintenance and improvements to the application in-house or rely on the expertise of an outside vendor.

Benefits

  • Implements modern coding designed specifically for cloud services.
  • Allows quick implementation.
  • Enables professional support options.

Considerations

  • Vendor lock-in.
  • Might require IT support and end-user training on new applications.
  • Vendors control patch, update and feature-enhancement schedules.

Retire

Application retirement involves establishing the necessity of an application. Employees might no longer use the program or its services; another program has already replaced its functionality. Once the initial analysis is complete about whether the program is still in use, admins can begin the process of removing it. If some users still rely on it, begin training them on other applications or let them know how workflows will change.

Perhaps a legacy inventory management system at a remote location still exists with only a few employees using it. Show the users how to use the replacement application, then disable the legacy app for a month or two before uninstalling it entirely. Remember to archive its data.

This method does not cost money and consumes relatively little time, assuming a replacement program already exists or workflows no longer require the legacy application.

Benefits

  • Frees resources from supporting unused applications.
  • Low-cost or no-cost method.
  • Outdated or unsupported applications may pose security risks.

Considerations

  • Ensure the application is no longer in use.
  • Premature removal could create disruptions and delays.
  • Ensure historical data, if required, is migrated.

Retain

Some applications are necessary for an organization's workloads but are not yet viable candidates for cloud migration. The time and financial costs of refactoring or replatforming might be too high, and third-party applications might not offer the required features, or it might be too costly.

It's also possible that development teams plan to refactor or replatform an application in the future, but other applications require the team's attention first. The program might become a priority next year, so the team plans to revisit it then.

Development teams must ensure an ROI for their business while prioritizing performance increases and improved UX.

Retaining an application also retains its current expense burden, so the decision usually has no change or impact.

Benefits

  • Avoids the cost of moving and maintaining inefficient or unnecessary applications to the cloud.
  • Enables additional evaluation of application performance and use.
  • Enables additional exploration of migration options, including repurchasing.

Considerations

  • Does not take advantage of cloud benefits like scalability and fault tolerance.
  • Retains any existing support inefficiencies.
  • Cost implications remain the same.

Final considerations for app modernization strategies

When considering application modernization strategies, the two major concerns are cost and performance. Development teams must ensure an ROI for their business while prioritizing performance increases and improved UX.

However, teams need to consider other factors, such as the future development of the application. Here are some additional questions to guide decision-making:

  • Does the development team have the skills to refactor or replatform applications?
  • Does the development team have the time to invest in significant application recoding?
  • Does a budget exist to cover application recoding?
  • What are the long-term benefits of migration compared to the financial and time costs involved?
  • How many other applications must the team migrate at the same time?
  • Are multi-cloud environments involved that might require more application migration effort to account for differences in CSP options?
  • How much training will employees require to use the modernized application(s)?

Damon Garn owns Cogspinner Coaction and provides freelance IT writing and editing services. He has written multiple CompTIA study guides, including the Linux+, Cloud Essentials+ and Server+ guides, and contributes extensively to TechTarget Editorial, The New Stack and CompTIA Blogs.

Dig Deeper on Cloud app development and management