Kubernetes migrations: 5 troubles to dodge
Blog: The Enterprise Project - Enterprise Technology
“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, 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:
4. You decide to go all-in
This isn’t a no-limit poker game, so there’s not much sense in betting all of your chips at once – especially not on the first hand.
“Migrating to Kubernetes doesn’t require migrating all the important resources of a solution/application to Kubernetes in one go,” says Raghu Kishore Vempati, director of technology, research, and innovation at Altran.
Vempati describes a simple web application that accesses a database via a few middleware RESTful services as a good example.
“The web application and the middleware services can be migrated and deployed on Kubernetes in a first pass, while the database can continue to be the way it was,” Vempati says. “Resources such as databases are critical and depending on the upstream and downstream dependencies, considering them for migration will be a tall order and will negate the purpose of migration to Kubernetes.”
As Tolia from Kasten told us recently, most teams will be ill-advised to try a “big-bang migration” when first starting out: The greater the complexity, the higher likelihood of trouble en route. Keep things as simple as possible until you’ve tamed the learning curve.
5. You start with all the bells and whistles
Speaking of simplicity: Don’t try to be too fancy during a migration project, especially the first one.
This is important to keep in mind because Kubernetes’ extensibility and pluggability are part of its growing appeal. Thanks to the popularity of Kubernetes and its extensibility, frameworks such as service mesh, operators, and many others have been created.
Vempati advises exploring that extensibility after a successful migration rather than requiring their inclusion as part of an initial move: “The simpler the migration, the better the result.”
[ Want to learn more? Get the free eBook: Getting Started with Kubernetes. ]