Chapter 5. Planning your application migration
5.1. Goals of assessing a migration
Many organizations are faced with the challenges of keeping their existing business operations running, while also trying to innovate. There are typically increased expectations to deliver new functionality faster and to reduce cost.
When assessing a migration or modernization effort, it is important to address the challenges that are specific to your organization. Common challenges that organizations face are limited budgets, lack of in-house skills, perceived risks, no known predictable process, and accurate effort estimation in a timely manner.
In general, the goals when assessing a large-scale middleware migration or modernization effort are the following:
- Predicting the level of effort and cost
- Scheduling application migrations and handling conflicts
- Identifying all potential risks at a code, infrastructure, process, or knowledge level
- Predicting the return on investment to make the business case
- Identifying and mitigating risks to the business
- Minimizing disruption to existing business operations
Red Hat has developed a strategy to minimize risk and make application migration and modernizations more efficient.
5.2. Red Hat’s application migration approach
Red Hat has defined a strategy to make large-scale application migrations to Red Hat JBoss Middleware quantifiable, less costly, less risky, and easier to complete.
Migrating from proprietary or outdated middleware platforms to Red Hat JBoss Middleware gives you lightweight, modular, and cloud-ready middleware with a supporting application infrastructure to make teams more productive. JBoss Middleware and other Red Hat technologies also provide great opportunities to modernize your application development and delivery, allowing you to innovate more quickly.
5.2.1. Best practices
Red Hat recommends the following practices when planning and executing a migration or modernization:
Create a centralized collaboration platform for information sharing.
Comprehensive and accessible documentation is important so that knowledge can be easily shared and to ensure that effort is not duplicated by solving the same issue twice. It is recommended to document the following items:
- A step-by-step guide for migrating or modernizing an application from scratch.
- A collection of solutions to known and encountered issues.
- Information about the new platform.
- A record of the changes made to specific pilot projects.
Reuse, automate, and standardize as much as possible.
Consider reusing existing components instead of creating new ones. Automate processes related to the application lifecycle, such as builds, configuration, deployment, and tests. Standardize and document software packaging format, configuration management, libraries, and dependencies.
Use a proven and repeatable methodology.
The recommendation is to follow a practical approach and make as few changes as possible to get a functionally identical application.
Involve Red Hat technical expertise early for the chosen Red Hat Middleware components.
This is crucial to make your migrations and modernizations low risk, predictable, and efficient. Contact Red Hat Consulting for assistance.
Red Hat’s recommended methodology is a proven, scalable approach that helps you to incrementally plan and conduct a migration or modernization.
Figure 5.1. Red Hat migration methodology
The approach consists of the following phases:
- Explore the technologies and identify concerns, organization requirements and challenges. Discuss options and potential approaches.
- Identify and mitigate the biggest risks from an application, infrastructure, process, and knowledge perspective. Establish a strategy for the solution. Prove the technology and build the business case.
- Scale the modernization or migration iteratively by executing the previously defined strategy according to a well-defined delivery model.
18.104.22.168. Discover phase
Figure 5.2. Red Hat migration methodology: Discover phase
The Discover phase is when you gather all stakeholders and decision-makers together to understand the current state and business drivers, and to determine the migration or modernization needs.
In this phase, you explore technologies and discuss potential approaches. Identify the existing pain points, concerns, requirements, and some potential challenges. Define the high-level business priorities and scope the assessment. Determine in what ways you want to modernize your application development and delivery to allow you to innovate more rapidly.
Typically, this can be covered in a day in a workshop with Red Hat experts.
22.214.171.124. Design phase
Figure 5.3. Red Hat migration methodology: Design phase
The Design phase is when you identify all risks, define a strategy and target architecture, prove the technology, and build the business case. This phase consists of the following steps:
Examine the existing infrastructure, architecture, technologies, and applications. Identify dependencies, knowledge, processes, and lifecycles. Define the desired infrastructure, architecture, technologies, and applications. Determine the feasibility and potential risks. Draft a plan and provide rough estimates.
Analyzing applications using the Migration Toolkit for Applications web console or CLI helps to determine dependencies, potential risks, and relative effort. See the Web Console Guide or CLI Guide for information on how to use these tools.
- Solve and document the identified technical risks, for example, high risk items and issues with unknown effort. Build and shape the new platform infrastructure. Refine the estimates based on the outcomes.
Choose a small set of representative applications to transform. Finalize the target platform infrastructure as necessary. Update the documentation as the process is fine-tuned. This pilot consists of one or several iterations of the migration execution, which is scaled during the Deploy phase.
Use the Migration Toolkit for Applications MTA plugin to accelerate the code migration. See the Eclipse and Red Hat CodeReady Studio Plugin Guide for information on how to use the MTA plugin.
- Based on the outcomes of the previous steps, sharpen the estimates and refine the project plan. Define the rollout strategy to be used in the Deploy phase to complete the migration. Prepare and schedule the relevant technical enablement courses.
126.96.36.199. Deploy phase
Figure 5.4. Red Hat migration methodology: Deploy phase
The Deploy phase is when you execute the plan created in the Design phase. In this phase, you scale the overall transformation process to complete the plan and bring all applications to their new production environment.
The plan is executed in iterations to deliver value incrementally. With each iteration, you continuously validate against the plan and document findings to improve the next sprint.
The use of the Migration Toolkit for Applications MTA plugin increases speed in each iteration. It can be used with Eclipse or Red Hat CodeReady Studio, and marks migration issues directly in the source code, provides inline hints, and offers code change suggestions. See the Eclipse and Red Hat CodeReady Studio Plugin Guide for information on how to use the MTA plugin.