R Studio - stock.adobe.com

Kubernetes: Navigating the pitfalls and pathways to success

Nutanix’s APAC chief technology officer outlines the lessons learned by enterprises adopting Kubernetes, from avoiding cloud lock-in to mastering lifecycle management, and bridging the gap between legacy and cloud-native skillsets

The adoption of Kubernetes has become a cornerstone of modern application development, promising agility and scalability. However, integrating this powerful orchestration platform requires organisations to consider both its potential benefits and inherent challenges.

In a recent interview with Computer Weekly, Daryush Ashjari, chief technology officer at Nutanix Asia-Pacific and Japan, shared insights on the best and worst practices he has observed among organisations embarking on their Kubernetes journeys.

Ashjari notes that by the mid-2010s, two distinct approaches to public cloud adoption had emerged in enterprise IT. One camp viewed the cloud primarily to reduce or eliminate the need for physical datacentres and hardware ownership.

Leveraging infrastructure-as-a-service (IaaS), they “lifted and shifted” workloads from on-premise systems to the cloud with minimal effort and modification.

This mirrored the earlier adoption of virtualisation, where consolidating multiple older servers onto a single modern server reduced hardware costs, power consumption and datacentre footprint. Migrating these virtualised servers to the cloud was similarly straightforward, even if it perpetuated existing operational models.

The other side went “all in” on the chosen platform, maximising the use of the various services offered by the favoured provider. Rather than stopping at the infrastructure layer, they adopted platform-as-a-service and, where appropriate, software-as-a-service models.

This was seen as being more cost-effective and efficient. For example, it took away much of the maintenance and integration effort, as the provider took on tasks such as applying security patches and other upgrades, and application programming interfaces (APIs) to connect the selected services. The downside was that it made it difficult to switch to a different provider, whether that was for economic or business continuity reasons, or to repatriate a workload.

While portability is a key promise of containers, it requires deliberate design. Microservices, in particular, rarely translate seamlessly between public clouds unless portability is a primary design consideration
Daryush Ashjari, Nutanix

In reality, most organisations fell somewhere between these two extremes as their cloud maturity evolved. Over the following decade, containerised software gained traction, with Kubernetes emerging as the dominant container orchestration platform. However, Ashjari notes that it’s rare for organisations to completely ditch traditional applications in favour of cloud-native Kubernetes deployments.

Pitfalls of Kubernetes adoption

Organisations often strive to retain legacy software due to its efficiency and their established expertise in managing associated costs and risks. Simultaneously, they aim to leverage the portability, flexibility and openness offered by Kubernetes and Docker.

Ashjari likens this to building a racing car: one could assemble a car from the best individual parts, purchase a complete car from a top manufacturer, or start with a chassis and add best-of-breed components. In the software context, Nutanix, says Ashjari, provides the equivalent of that chassis – a unified control plane for both traditional and modern applications.

Replacing legacy applications can be a substantial investment. Ashjari notes that Nutanix’s platform allows IT operations to deploy an application at a hyperscaler without refactoring, providing access to modern management tools for storage, security and other functions.

However, he warns that organisations can still fall into the same trap of locking themselves into a single cloud platform, even with containerised applications. While portability is a key promise of containers, it requires deliberate design. Microservices, in particular, rarely translate seamlessly between public clouds unless portability is a primary design consideration.

Microservices are fundamental to cloud-native applications, serving critical functions like security and observability. However, hyperscalers often offer proprietary microservices that need to be refactored when migrating applications between clouds.

Read more about cloud in APAC

Nutanix’s platform, Ashjari argues, can mitigate this challenge. A related issue is the growing trend of running containerised workloads on private cloud infrastructure for reasons such as data sovereignty, security or control. Repatriating workloads from public to private cloud can be complex, even impossible, if application portability is not prioritised from the outset.

Another common pitfall is overlooking ongoing management, what Ashjari terms “forgetting day two”. Once a containerised application is deployed, especially at scale, the numerous microservices comprising the application require continuous monitoring and updating. Organisations must address day-two operations before implementing a cloud-native strategy to avoid cost overruns and performance issues.

Assuming that running an application is as simple as developing it is also a mistake. Modern developers are accustomed to provisioning resources via API calls, while infrastructure teams manage the underlying infrastructure. This can create friction, especially during production. Lifecycle management is particularly challenging for modern applications, which often incorporate numerous components, each with its own lifecycle. Platform engineering teams must be prepared for this complexity and may require additional resources to manage it effectively.

The reliance on components developed by individual developers can also create maintenance challenges. This can be a significant issue for organisations in regulated industries and is best addressed by careful component selection during the design phase. The discipline of the legacy world, recognising the long-term implications of technology choices, should be applied. Component selection should involve multiple criteria and input from platform engineering from the outset.

Best practices for Kubernetes success

Organisations that have achieved the greatest success with modern applications understand the critical role of lifecycle management in containerised environments. Investing in the platform, skills and resources necessary to simplify lifecycle management is essential for success, according to Ashjari.

Nutanix, as a hyperconverged infrastructure supplier, facilitates this process with its single-click lifecycle management approach, minimising effort and disruption when updating all layers of the stack.

Upskilling existing employees is also key. While the new generation of cloud-native engineers may lack experience with the underlying networking, storage and data requirements of applications, engineers from traditional application development backgrounds possess this valuable knowledge.

These individuals are well-positioned to deploy modern applications on private cloud infrastructure more quickly and efficiently, mitigating the risk of budget overruns. Furthermore, upskilling addresses the high demand for modern application engineers while retaining valuable experience within the organisation.

Ashjari also notes that traditional engineers often have a stronger grasp of business value and return on investment, while cloud-native engineers may assume rapid and effortless development. Combining these two perspectives yields the best results.

Read more on Containers