Legacy application modernization remains at the top of most IT leaders’ agendas as they migrate more systems to the cloud model. The COVID-19 crisis has amplified the need to be agile and adjust to a rapidly changing business environment, and a cloud-based environment is a foundational element of a more adaptive IT environment.
However, migrating to the cloud is a significant enterprise-wide change that requires a well-thought-out strategy. “Legacy migration projects can be hard,” says Felipe Polo Ruiz, COO and co-founder at software consultancy GuideSmiths. “They require a very high-level technical team and expertise on this kind of challenge to succeed.”
Polo Ruiz’s consultancy has received an influx of questions from companies who have found their legacy systems are slowing down organizational change or hampering productivity. “Those businesses are facing growing competition from newer companies with digital-first operating models, which means they don’t have legacy systems to slow them from changing direction,” Polo Ruiz says. “So now, more than ever, legacy application migrations are critical to help companies stay in business and ahead of their competition.”
[ Want to learn more about building cloud-native apps and containers? Get the guide: Principles of container-based application design. ]
IT migration tips: 6 essentials
Polo Ruiz's team recently created a legacy migration guide with the input of 20 experienced CTOs and CIOs, highlighting key challenges and best practices. The following are some of their best tips for moving aging systems to the cloud.
1. Keep systems running in parallel
“Keeping the old system running and providing value while the new platform is being built from the ground up is essential to prevent an operational stop and reduce the risk of a ‘big bang,’” says Polo Ruiz.
2. Identify all data inputs
Understanding all the ins and outs of the legacy system can be time-consuming at best and impossible at worst. Instead, Polo Ruiz says IT leaders with experience in legacy migrations should try to nail down the data inputs and the places where they need to send the data. “This will help you be more effective as you will save a lot of time,” Polo Ruiz says.
3. Leverage insider intelligence
IT leaders who can find someone who understands the business rules of the old system will also minimize headaches. “This is a really important tactical aspect of a legacy migration,” Polo Ruiz says. “This will allow you to be ultra-focused on delivery.”
4. Get operations right first
IT organizations that adopt DevOps as a default methodology are much more efficient when it comes to legacy migration, Polo Ruiz says. “First, focus on building a Continuous Integration/Continuous Deployment (CI/CD) platform as an enabler for the development team,” he advises. “Create monitoring, alerts, and a good logging system to keep the dev team accountable for their work and to be able to fix potential issues faster and in a more proactive way.”
As we have reported previously, a well-conceived CI/CD pipeline is an increasingly popular approach to baking automation into as many phases of your development and deployment processes as possible. Check out our primer for IT leaders: How to build a CI/CD pipeline.
5. Divide and conquer with microservices
“By using microservices the right way, you will be able to tackle different problems with different approaches; use different data models; de-risk performance issues; improve individual scalability; work in parallel; build, test, and deploy much faster; and provide value much quicker,” Polo Ruiz says, “as you will be able to release partial features of your system in isolation.”
Deploying microservices in containers can also improve traceability, reliability, and portability, he adds.
6. Move security left
As you containerize applications, perhaps in concert with Kubernetes to manage those containers at scale, pay special attention to modernizing security practices. Security should be baked into your development processes as early as possible.
[ Get the free eBook: O’Reilly: Kubernetes Operators: Automating the Container Orchestration Platform. ]
“New technologies can challenge existing approaches to security,” Red Hat security strategist Kirsten Newcomer recently told us. “For example, data collection and network security solutions need to adapt to an ephemeral environment where applications come and go. And best practice is never to patch a running container – if you do, the next time that container instance is deployed from an image, the patch is lost.”
"This means that organizations need to revisit their investment in DevOps and in shifting security left.”
[ Want to learn more? Get the free eBook: Getting Started with Kubernetes. ]