Five Strategies To Accelerate Kubernetes Deployment in The Enterprise
Five Strategies To Accelerate Kubernetes Deployment in The Enterprise
August 2020
Executive summary
As Kubernetes adoption spreads from early adopters to slower-moving
enterprises, many companies are discovering that while containers and
Kubernetes offer advantages around development, velocity, agility, and cost
management, they also create a new set of challenges to overcome. While there
are commonalities in the types of challenges enterprises encounter with
Kubernetes, there’s no true one-size-fits-all way to manage them but rather a
number of potential approaches, each with its own advantages and drawbacks.
The right approach to taming Kubernetes will depend on the size, technical
sophistication, and business goals of each organisation. In this white paper, we
examine the motivations most enterprises have when they adopt Kubernetes and
the challenges they often encounter, before diving into an analysis of five
Kubernetes strategies and the types of enterprises best suited to each approach.
Introduction: Why enterprises adopt containers
and Kubernetes
Kubernetes and containers have been taking the world by storm. Containers have
been around as part of Linux for over 10 years but really started to take off when
Google open-sourced Kubernetes in 2014. Since then, both technologies have
been growing exponentially. 451 Research expects the container market to grow
30% year-over-year, while a survey of over 500 IT professionals done by Portworx
and Aqua Security in 2019 showed that 87% were using containers, nearly all of
them for production workloads. Meanwhile, membership in the Cloud Native
Computing Foundation grew by 50% from 2018 to 2019.
Infrastructure Infrastructure
These include:
2
• Improving developer productivity. Containers lend themselves to DevOps
approaches and overall higher development velocity. This means organisations
are able to develop, test, and deploy applications faster. They have more agility
to respond to changes in the market ecosystem and changes in customer
behaviour, as well as the ability to test how different applications deliver on
business goals. Each developer is able to accomplish more and do so quicker
with containers.
• Faster time to market. Along with the increased productivity is a shorter time
to market for each application, which translates to organisations being able to
use software to create a competitive advantage and stay ahead of other
market actors.
• Simpler operations. Containers can also be easier to operate. They are easier
and more cost-efficient to scale. Not only can each container scale
independently but the individual components of an app can scale independently
of each other too. They are also easier to upgrade, and facilitate advanced
upgrade techniques like rolling upgrades. In addition, failures are less likely to
bring down the entire app — a problem with one container is more likely to be
isolated in that container rather than bring the entire app down. Containers are
also more portable than monoliths and run the same regardless of the
environment, so they are less likely to have environment-related issues in
production that don’t show up during development and testing.
What is Kubernetes?
Read more about what Kubernetes is — and is not — on the project page.
3
But containers are also very complex. Enter Kubernetes.
Although containers have many benefits, they can also add to operational
complexity, especially in a production environment. A mid-sized engineering team
could easily end up with millions of containers, especially if they are using
microservices. Containers have to be deployed, scheduled, re-booted after
failures, and connected to the outside world, among many other operational
needs. Without automated container orchestration, this would need to happen
manually — and that would require an impractically large number of engineers
dedicated only to scheduling containers.
Why Kubernetes?
The bottom line about Kubernetes is that it makes containers possible. Without a
container orchestration platform, organisations would not realistically be able to
get the benefits of containers, because the trade-offs would be too high.
Kubernetes allows organisations to automate load balancing, self-healing, storage
orchestration, configuration management, and automated rollouts and rollbacks,
including advanced deployment strategies like canary deployments.
Although Kubernetes and containers are the two most important elements of the
cloud-native stack, Kubernetes does not solve all of the enterprise challenges
involved in running a containerised, cloud-native application in production. At
first, early adopters had to create their own in-house solutions to manage the
complexity that Kubernetes introduces into the system and to solve the
additional operational challenges it creates. As the ecosystem has matured,
however, different types of Kubernetes solutions have emerged. Before diving
into the solutions, let’s examine the different challenges that Kubernetes can
bring and how these impact different types of organisations.
4
Solving Kubernetes’ challenges
is not one-size-fits-all
Every organisation’s engineering and IT department has different strengths,
weaknesses and priorities. Here are some parameters that impact the specific
challenges organisations will have with Kubernetes and how they should prioritise
potential solutions:
Kubernetes is open source, as are many of the supporting software in the cloud-
native ecosystem. Using open source software helps organisations reduce both
their OpEx and CapEx. But open source software like Kubernetes can come with
additional costs that some companies fail to consider. For example:
• Vendor lock-in. Using vanilla upstream Kubernetes isn’t feasible for all
companies—and many opt for a commercial distribution or a Kubernetes
platform tied to a cloud provider. This can create vendor lock-in, leaving
organisations at the mercy of the vendor and unable to leave if prices increase
too much.
5
• Migration costs. Moving to Kubernetes takes time. Organisations often don’t
understand the full cost of moving legacy systems to containers, both in terms
of the human resources involved and the costs related to moving data.
Skills gap
Kubernetes remains a relatively new technology. It’s also so complex that even
comparative experts feel like they are always learning. Kubernetes also depends
on an ever-widening ecosystem of both open source and proprietary tools, storage
solutions, networking options, and monitoring systems. There are also a variety of
Kubernetes distributions, platforms, and vendors, such that it’s not possible for
one person to be experienced in all possible Kubernetes distributions.
The persistent skills gap and need to continually invest in training can also
increase the total cost of ownership for Kubernetes.
One of the primary benefits of using containers is the ease of portability between
environments. While moving containers between environments is easy, moving a
Kubernetes workload between public clouds or between a public and private
cloud, especially if using any of the cloud provider Kubernetes distributions, can
be cumbersome. But the flexibility to operate in multiple environments is one of
the main attractions of containers and Kubernetes, and organisations need it to
be able to meet business objectives that range from controlling costs, avoiding
lock-in, and ensuring high availability. Portability between environments is also
crucial for applications to move seamlessly through the CI/CD pipeline and into
production, since the development, test, and production environments are often
in different clouds.
6
Tool overwhelm
• Selecting a tool. Simply finding the right tool involves a series of trade-offs.
How well does it integrate with the rest of the toolchain? Is it better to have the
flexibility of open source or an opinionated, more expensive proprietary tool?
How do you control tool usages throughout the enterprise and standardise on
one option? Given both the large tool ecosystem and the skills gap, tool
selection can become a bottleneck in the Kubernetes transition and slow down
the entire project.
While containers and Kubernetes are not inherently less secure than monoliths,
they require a different approach to security, one that relies more on
configuration management than securing perimeters. Security teams have to
learn how to manage security in a different way, often while supporting DevOps
teams who are trying to move faster than ever.
Properly setting up load balancing can also be tricky, but is essential to ensure the
application stays available and performant.
7
Day 2 operations
However, there are ways to solve these operational challenges, as well as the
other challenges mentioned above. Here are five solutions that make Kubernetes
easy to use, cost-effective, and simple to operate, as well as the pros and cons of
each approach.
8
The solutions
1. Vanilla Kubernetes
Pure, open source Kubernetes is always an option, and is likely the first type of
Kubernetes that individuals will have experience with. Vanilla Kubernetes is
extremely flexible and extensible, but it’s also lacking enterprise-grade features
around monitoring, managing state, availability, lifecycle operations and more.
Advantages Disadvantages
• Cost: There are no licensing fees for • Skills gap: Running open source
running vanilla Kubernetes Kubernetes is the most technically
challenging option. It requires a very
• Flexibility: Organisations have
deep bench of expertise to make
near-infinite control over
open source Kubernetes
configurations and extensions
enterprise-ready.
• Install anywhere: Vanilla
• Cost: Although open source
Kubernetes can be installed on-
Kubernetes has no licensing fees, the
premises or on any cloud provider,
costs associated with the hiring and
on any operating system.
retaining of Kubernetes experts can
be substantial.
• Time to market: Building tools and
platforms in-house often delays the
deployment of the first applications
in Kubernetes. It makes the overall
transition to Kubernetes longer,
stretching out the time before the
organisation starts to see returns on
the investment.
• Support: Organisations would have
to handle support internally or rely
on the Kubernetes community
for support.
• Security: Kubernetes’ out-of-the-box
configurations are not secure, and
organisations need to invest in
ensuring security if they use open
source Kubernetes.
Best for: The only organisations that should consider using pure open source
Kubernetes are highly technical ones that consider the ability to build custom
tools and platforms a key area of competitive advantage. Companies who plan to
use open source Kubernetes should have an existing team of experts who are
able to provide the support and build the tools necessary to meet business
requirements with Kubernetes.
9
2. Platform-as-a-Service
Advantages Disadvantages
• Short learning curve: PAAS solutions • Cost: PAAS offerings often involve
help reduce the skills gap by high license fees as well as additional
lowering the barrier to entry for fees for support subscriptions or
individuals and organisations to get additional functionality.
started with Kubernetes.
• Vendor lock-in: Organisations
• Time to market: Reducing the become locked-in to the PAAS,
learning curve means that making it challenging to change to
organisations are able to get another vendor or to vanilla
applications in production faster. Kubernetes in the future.
• Security: Using pre-configured • Portability challenges: PAAS
Kubernetes platforms improves the solutions can make it challenging to
organisation’s security posture, move between environments,
especially because it is easier to leading to additional lock-in.
ensure organisation-wide adherence
to security best practices.
Best for: PAAS Kubernetes is best for organisations that are not particularly
technically sophisticated and want to get up-and-running with Kubernetes as
quickly as possible, without investing internal resources in building tools or
expertise. If getting applications into production quickly is more important
than controlling costs or having extremely flexible infrastructure, PAAS is a
good option.
10
3. Public cloud Kubernetes distributions
Advantages Disadvantages
Best for: Cost-sensitive organisations that want to get started with Kubernetes as
quickly as possible and don’t have extensive internal Kubernetes expertise.
Cloud-hosted Kubernetes often makes sense for smaller companies. Also best for
organisations that don’t anticipate needing any unusual functionality or wanting
to integrate with tools that the Kubernetes distribution doesn’t support.
11
4. Managed Kubernetes solutions
Advantages Disadvantages
Best for: Organisations at the beginning of their Kubernetes journey that plan
to follow a multi-cloud and/or hybrid cloud approach. Managed Kubernetes
services are best for organisations that don’t have extensive in-house
Kubernetes expertise and want to focus on delivering applications instead of
managing infrastructure.
12
5. Enterprise Kubernetes platforms
Advantages Disadvantages
Cost
Hybrid / Multi-cloud
Tool overwhelm
Day 2 operations
With managed Kubernetes clusters, Canonical will set up your Kubernetes clusters
and operate them until you’re ready to take over operational control. This option
helps organisations get started very quickly with Kubernetes while building
internal expertise. Clusters can be set up on-premises or in any public cloud, and
Canonical will handle updates, monitoring and other Day 2 operations until the
team is confident handling those things in-house.
14
MicroK8s is a lightweight Kubernetes that nonetheless provides all the
functionality of pure upstream Kubernetes while packaging the most popular
Kubernetes add-ons. MicroK8s is especially appropriate for use-cases where
resources are limited, such as on a workstation, IoT device or at the edge.
MicroK8s provides the same security support, workload portability and lifecycle
automation as Charmed Kubernetes, while further simplifying the installation and
configuration process to get users up-and-running as quickly as possible.
Conclusion
As organisations rush to adopt Kubernetes, they can’t ignore the real business
requirements around security, availability, and disaster recovery. Every
organisation has to decide what is the right balance between ease of use, time-
to-market, and flexibility and whether they’d rather pay more for internal
Kubernetes’ experts time or more in licencing fees. The bottom line is that if
enterprises want to use Kubernetes for production workloads, especially mission-
critical workloads, they can’t use vanilla, open source Kubernetes out-of-the-box.
But the right way to get enterprise-grade Kubernetes depends on the priorities
and capabilities of each company.
Further reading:
Contact us:
Contact form and phone numbers +1 781 761 9427 (Americas),
+44 207 093 5161 (Rest of World)
© Canonical Limited 2020. Ubuntu, Kubuntu, Canonical and their associated logos are the registered trademarks
of Canonical Ltd. All other trademarks are the properties of their respective owners. Any information referred
to in this document may change without notice and Canonical will not be held responsible for any such changes.
Canonical Limited, Registered in England and Wales, Company number 110334C Registered Office:
12-14 Finch Road, Douglas, Isle of Man, IM99 1TT VAT Registration: GB 003 2322 47