If you’re a platform or infrastructure engineer, you’re virtually guaranteed to deal with a software or system migration at least once a year. Hopefully, the particularly painful ones only happen once a career.
But as hard as they can be, migrations are a reality of maintaining and improving software systems. Some, like a migration to Kubernetes, might be the biggest thing standing between you and scaling your team. Others, like vendor-prompted upgrades, carry less upside but can have disastrous downside if not executed in time. In this article, we’ll distill the major types of migrations and what steps you can take to ensure your team gets aligned quickly.
The three types of software migrations
There are two main questions to ask about a migration you’re considering: Is it optional? And, how urgent is it? There really shouldn’t be anything that is both optional and urgent, so that leaves three other combinations 🙂. In the table below, we use the term “P0” to denote absolutely critical tasks, and “P1-P5” to denote other priority levels for initiatives that have a potentially more flexible timeline.
Examples of the three types of software migrations:
The top-right of this table is of the highest priority and includes incidents requiring immediate attention such as the Log4Shell vulnerability in 2021. Urgency can be a good forcing function for pushing a migration over the finish line, but it also pressures teams in a way that’s unsustainable. It’s important to continue following engineering best practices in these firefighting situations to avoid incurring tech debt.
The next category, required migrations with a longer time horizon, is typically easier to prepare for. Often, a vendor will notify its developer community well in advance of a change. For instance, this year AWS is EOL’ing resources like Elastic and Redis. Be sure to stay up to date with the latest information from your vendors and avoid procrastinating—wait too long and you’ll have a time crunch on your hands.
The final category of migrations—“optional” ones you choose to take on for the long-term value to your business—come with their own set of challenges. The lack of an external deadline means it’s easy for the migration to drag, leaving your organization in transition limbo for far too long. It’s important to efficiently handle optional migrations so that product teams and other downstream users actually benefit from the new infrastructure.
Signals your migration may take more time
On top of the usual organizational complexity that tends to slow projects down, keep an eye out for the following signals that your migration may be a little more complex:
- Data complexity: As your ecosystem evolves, you should be using a primary key to associate entities across multiple different tools and environments. Many organizations fail to set this structure ahead of time, which can delay migrations. While rebuilding your data model or tagging strategy may not be feasible short term, be sure to build in extra time to ensure you can account for all affected systems across your stack.
- Dependency mapping: Often, you’ll have to turn off services temporarily, and refer to your dependency graph to understand both up and downstream implications. If you don’t have a strong data model with clear hierarchies, you may struggle to map the impact of a migration.
- User adoption: McKinsey found that 70% of change programs fail due to poor user adoption. Take a look at how prior migrations performed, and ensure you have executive sponsorship for your program to encourage (or enforce) compliance.
None of these issues are non-starters, but preparing for complexity will ensure your deadlines don’t slip.
Six ways Cortex helps accelerate migrations
Migration projects are often tracked by simple spreadsheet or project planner. But accounting for team, data, and software complexities is tough to sustain at scale using these methods.
For example, you might keep a list of every team that needs to change their AWS account to adhere to the EOL schedule (in a perfect world). But what happens as folks leave and join the company, change teams, change projects, etc. Or as new resources are spun up and down? It’s up to you to chase down all the right people and keep your spreadsheet up to date. What if that tracker integrated directly with AWS so you don’t have to waste time cross-referencing information?
Cortex was built for just such a use case. Our platform helps engineering teams accelerate migrations by serving as a central system of record and action for their development environment. Define the details of your migration, automatically associate affected components, and assign owners for tasks with deadlines.
Here are six ways Cortex can help accelerate your migrations:
- 40+ Integrations + Quick Search: The Cortex platform natively integrates many of the most popular developer tools and resources to ensure you always have the most up to date information about your ecosystem, including who owns what, what language a service is written in, what resources are attached to it, and how they’re performing. Use Cortex Query Language to quickly identify which services or resources might be running a version of software that you need to update, quick.
- Scorecards: With Cortex Scorecards, you can designate migration details, and keep teams accountable in a way the entire organization can track. You can also set exemptions and target only those users that need to take action. Customers who use Cortex Scorecards for their migration use cases see significantly shorter timelines to full compliance.
- Progress Reports: Quickly view progress by team, service or resource, domain, or product line. Learn who's setting the bar, and who needs a bit more help.
- Initiatives: Related to Scorecards, Initiatives let you explicitly set and enforce a migration timeline. You can set a deadline and assign quantitative goals to specific engineering owners so that there’s a clear path forward. And you can even have Cortex automatically assign outstanding tasks to engineers for those projects that require all hands on deck.
- Developer Homepage: Cortex’s personalized and prioritized Developer Homepage shows engineers exactly what they need to do, when, in order of business priority. Don’t let a critical migration get lost in the daily noise of a developer’s day to day.
6. Alerting: Cortex can also nudge and notify engineers in Slack and email about their tasks so things don’t fall behind, saving you the trouble of constantly sending reminders.
Cortex customers use Scorecards for all sorts of security, productivity, and vendor-prompted migrations, including:
- Database migrations
- Container orchestration migrations
- Tool version upgrades
- Framework migrations
- Secrets manager migrations
- Package manager migrations
- CI/CD provider migrations
- Runtime migrations
- Monitoring tool migrations
There are many more use cases beyond those listed above. By automating as much of the migration process as possible—whatever your migration use case may be—Cortex lets you stay focused on the big picture. To leverage Cortex for your next migration, grab some time with us to begin mapping your strategy!