Kubernetes migrations: 5 troubles to dodge

When migrating apps to Kubernetes, watch out for the roots of common problems. Consider these five issues and help your team avoid them.
422 readers like this.
Kubernetes

Several key principles underpin a smooth move to Kubernetes. The flip side: Some pitfalls can swallow up technology migration projects whole.

“Folks who have been through any sort of technology migration will know to respect the totality of the potential migration,” says Ravi Lachhman, DevOps advocate at Harness. “Proper planning, due diligence, and aiming for incremental wins will build confidence.”

[ Kubernetes has many helpers. Read also: 5 open source projects that make Kubernetes even better. ]

5 kinds of Kubernetes migration trouble

That applies to Kubernetes migrations, too. Part of that “respect” that Lachhman describes entails watching out for the roots of common problems that will hamper the migration. Don’t let your team get ensnared by one of these traps.

1. You don't have a viable strategy

One of the biggest potential trouble spots should also be the simplest to avoid – yet it happens time and again. You decide to migrate to Kubernetes without well-defined reasons for doing so. This principle applies widely to emerging technology adoption, and it should be underlined in red for Kubernetes (and intersecting technologies such as containers.)

“When I talk to folks who are moving to new technologies like Kubernetes, I always ask the same question: ‘Why?,’” Lachhman says. “You need to be sure the shift will have a good business outcome.”

Gordon Haff, technology evangelist at Red Hat, offers similar advice for teams evaluating migration possibilities.

“Don’t decide to migrate to Kubernetes and only then figure out why you want to do it and how you’re going to go about it,” Haff says, adding that even organizations that are already running containers might find simpler ways to automate various components of their software pipeline.

[ Get the free eBook: O’Reilly: Kubernetes Operators: Automating the Container Orchestration Platform. ]

2. You don't have the requisite skillset in-house

Lachhman and Haff both note that even with clear business goals in place, you may find that you don’t have the necessary skills in-house to effectively transition to Kubernetes. You don’t want to discover this mid-migration.

“Maybe Kubernetes is right for you – but you don’t really have the skills to manage it all yourself,” Haff says. In that case, you’re likely better served with a commercial or managed service.

[ Kubernetes 101: An introduction to containers, Kubernetes, and OpenShift: Watch the on-demand Kubernetes 101 webinar.]

It’s a common concern in IT shops looking to adopt and shift to a new technology, and yet even veteran IT leaders sometimes need a reminder that this potential pitfall lies ahead. Moreover, you won’t necessarily be able to staff up a new team overnight.

“Kubernetes skill sets are hot, and having or training the proper resources shouldn’t be discounted,” Lachhman says.

Retraining current team members can come with its own challenges, and the cost-benefit tradeoff might not be favorable, Lachhman says.

3. You ignore underlying issues with applications or infrastructure

As we’ve previously noted, Kubernetes is not some brand of sorcery that will cure everything that ails your software and infrastructure. A migration that pegs its success to that kind of magical thinking is likely to find trouble. Maybe you’re not addressing underlying issues with the application, or you’re not ensuring you’ve got the proper SDLC components in place.

“If there are underlying issues such as reliability or scaling, there will be a good amount of effort to re-architect the application,” Lachhman says. “Like any paradigm shift, this will touch on all parts of the SDLC. Don’t try to bite off too much to chew, and embrace the change that will come about.”

Niraj Tolia, CEO at Kasten, notes that many migration issues stem from a lack of attention to your pipeline and infrastructure before you set out.

"Make sure that you are building well-provisioned development and staging environments for easier experimentation."

“Make sure that you are building well-provisioned development and staging environments for easier experimentation, and don’t overlook the importance of stable release pipelines and an easy-to-use CI/CD system to deploy on Kubernetes,” Tolia says. “Taking both of these actions will help avoid major migration troubles and ensure that development and operations teams have the necessary tooling to push deployments into production without mistakes and vulnerabilities.”

This is particularly important because for many teams, an initial migration to Kubernetes entails a much more fundamental shift than just adding another tool. It’s a different way of doing things.

“Ushering in new paradigms is a rising tide that lifts all ships – in other words, all parts of the SDLC might need updating,” Lachhman says. “Be prepared to embrace change and get out of your comfort zone.”

Lachhman notes that the overall ecosystem and non-functional requirements might give the most resistance. He recalls an example of a past client whose delivery pipeline wasn’t ready for prime time when the company began containerizing some of its software.

“When the container bloom was coming about, one organization I worked with had a homegrown build and release tool,” Lachhman says by way of example. “Investments had to be made in a more generic CI solution before the project could have teeth.”

Let’s explore two more troubles to avoid:

Kevin Casey writes about technology and business for a variety of publications. He won an Azbee Award, given by the American Society of Business Publication Editors, for his InformationWeek.com story, "Are You Too Old For IT?" He's a former community choice honoree in the Small Business Influencer Awards.