Your App Modernization and Cloud Migration To-Do List
Accelerate innovation. Optimize performance. Reduce infrastructure costs. Leverage scalability. Improve customer experiences. They’re among the benefits that can be realized with a cloud migration. Unfortunately, many companies don’t realize that getting the cloud’s full value requires more than just moving their apps there.
Not all apps were developed to run in the cloud, particularly legacy apps built using monolithic architecture. Developing new cloud-native apps would solve the problem, but that’s expensive and can take considerable time. Plus, many legacy apps simply aren’t replaceable for a variety of reasons.
The better option is to modernize them as part of a cloud migration project. App modernization takes legacy apps and modernizes its platform infrastructure, internal architecture, and/or features. This enables them to continue performing their intended function and leverage the benefits of the cloud.
Industry analysts and enterprises alike consider Amazon Web Services (AWS) to be among the best platforms for app modernization projects. But even with the abundance of resources, AWS offers to facilitate app modernization, there are still a number of things that have to happen as part of the overall cloud migration process.
The following are some of the steps that can help ensure success:
1. Inventory Your Apps
To determine which apps can and should move to the cloud, you have to know what you have. Compile a list of all your apps. Reach out to all departments to account for those you may not be aware of due to shadow IT. Map their interdependencies with your business services and other apps.
2. Document App Characteristics
Next, list out the characteristics and requirements of your apps. For example, note for each app:
- How often it’s used, who uses it, and what business requirement it meets
- Any specific performance requirements and how it’s currently performing
- If it’s considered mission-critical
- If it’s running behind firewalls
- If it’s up for a refresh or approaching retirement
- How it’s currently architected — monoliths and N-tier architecture (tightly coupled), microservices (decoupled), event-driven architecture, service-oriented architecture (loosely coupled) or something else
- The language it’s written in
- If the data it interacts with is bound by regulatory compliance, and/or if there are data sensitivity, privacy, or integrity issues
- The number of resources (CPU, memory, network, and storage) currently required to run it
- If it experiences periodic or unpredictable traffic spikes
- If it needs to scale
- The need for any specific monitoring or security agents
3. Assess Cloud
Some of your apps may be better suited to the cloud than others and require little or no modification to move there. Compile a list of them. They may include:
- Apps built using Service-oriented architecture (SOA) or microservices
- Cloud-native apps
- Apps used by mobile employees to manage their time and activity, and that contribute only limited information to the company’s broad management information databases
- Apps that run infrequently but require significant computing resources
- Apps that run in a time zone different from that where your IT personnel are
4. Determine Your Migration Strategy
Determine where your apps fit within a cloud migration strategy framework. While the various cloud services providers, industry analysts, and consultants have their own frameworks, most focus on what are referred to as “R” strategies. They include:
- Retiring the app. If an app is no longer useful or being used, there’s no need to keep it. Removing it can save time and money as you no longer need to devote resources to maintaining or securing it.
- Retaining the app. There could be a number of valid reasons for keeping a legacy app on-premises — at least in the short term, such as data ownership and compliance issues. Some apps may not be certified for use in a cloud environment or can’t physically run in one. Make note to revisit any apps that fall into this category and create a plan for either phasing them out or replacing them later.
- Repurchasing or Rebuilding the app. Repurchasing entails moving from a perpetual license to a software-as-a-service model. Benefits include lower initial costs with easier-to manage-subscription fees and reduced hardware costs; faster deployment with no need to worry about installing physical hardware; and no need to worry about technical support, maintenance, hosting, and licensing because it’s all included within the service
If there isn’t a SaaS option that can do what you need to be done, the app can be rewritten from scratch using cloud-native app development. There are time and money involved, but it ensures you of an app that does what you need it to do. It’s also the best way to make sure it’s optimized to fully leverage the benefits of the cloud.
- Rehosting the app by moving it to the cloud without modifying its code. Also known as “lift-and-shift,” this is a fast option, requires few resources, and entails minimal application disruption. The downside is you may not benefit from the cloud-native features like elasticity that can be achieved using other methods. For optimal performance, rehosted applications may need to be re-architected and optimized once they’re in the cloud.
- Replatforming the app by modifying only its’ code in order to use the base platform services. This is a slower process than rehosting and doesn’t provide the benefits of refactoring.
- Refactoring or re-architecting the app. Refactoring is the process of moving applications to cloud infrastructure while re-architecting them to better suit the cloud environment. Re-architecting is often used to describe materially altering or decomposing the app into services (e.g. microservices deployed on containers) rather than a complete rebuild. Both require making major changes to the app’s configuration and code in order to take advantage of cloud-native frameworks and functionality. Doing so increases operational cost efficiency in the cloud, but it tends to be time-consuming and resource-intensive.
5. Gather the Necessary Resources
Once you know which apps you want to move to the cloud and what strategy needs to be used to prepare them for the migration, you can determine the budget, staffing, and tool needed to make it all happen. Depending on the resources and expertise you have in-house, you may wish to enlist a third-party company that specializes in app modernization and cloud migration.
Keep in mind that even the best-formulated app modernization and migration project can encounter challenges. For example, some legacy apps still depend on flat files and hierarchical databases. As such, they can’t meet the demands of big data, mobility, social media, and artificial intelligence. That can make data store modernization as important as app modernization. Moving data to modern data stores requires specialized knowledge.
There’s also the reality that apps don’t always run reliably when moved to a new environment. Containers resolve that issue by wrapping a piece of software in a package with code, runtime, and everything it needs to run. This ensures the app runs the same, regardless of the environment. Like data store modernization, using containers and container orchestration platforms requires expertise that many internal IT teams may not have.
Fortunately, AWS maintains a network of vetted partners with the necessary knowledge and experience, as well as demonstrated technical proficiency and proven customer success. Jelecos is one of them.
Partner with Jelecos
Jelecos is an AWS Certified Advanced Consulting Partner and direct reseller focused on compliance-driven migration and spend optimization of legacy workloads and cloud-first app services.
If your organization is considering moving to the cloud and AWS is your destination of choice, let Jelecos help you make your project successful. Start by taking advantage of our free eBook, Architect your future: Run your Windows workloads on AWS
You can also learn more about Jelecos’ GamePlan, a cloud adoption strategy customized to meet the specific needs of your organization.
And if you’re ready to get started on your app modernization and cloud migration project, contact us for a free AWS Migration Readiness Assessment.