Red Hat blog
If your organization wants to succeed in today’s fast-paced, digital economy, you need to operate like a software company, and that means rethinking the way you design, build, and use applications.
Organizations are getting the message, and there’s a growing number of IT teams adopting development tools like containers to create cloud-native apps that work in a consistent manner across private, public, and hybrid clouds.
But how do you know which container platforms are best for your organization? And how do you make the right decision about container orchestration to manage the lifecycles of your containers so you can operate at scale and accelerate innovation? We break it down in a new, on-demand webinar: “10 important things to consider when selecting a container platform,“ including the relationship between Linux and containers and the various options available if you want to move to Kubernetes for container orchestration.
Containers are Linux
When running containers, the operating system (OS) you use matters, possibly even more than it does for your traditional application environments. As Dan Juengst explains in the webinar, these days containers are almost always running on a Linux host. Your applications need to be built to run on Linux as well.
“Containers leverage some key capabilities available within Linux. Containers depend on key Linux kernel features such as control groups, namespaces, and SELinux in order to isolate the applications that are running inside the containers,” says Juengst.
It’s not just containers that generally work best with Linux, but also the tools used to manage their lifecycles. Today, Kubernetes is the leading container orchestration platform, and it was built on Linux concepts and uses Linux tooling and application programming interfaces (APIs) to manage the containers.
When deciding on the OS for your container platform, you should choose a Linux distribution that you know and trust. Red Hat Enterprise Linux (RHEL) is an OS platform well-suited for running your containers because it offers stability and security features yet still allows developers to be agile and use the latest packages and tooling. RHEL is the leading Linux server operating system used by enterprises across the Fortune 500.
What, exactly, is Kubernetes?
Despite Kubernetes’ increased popularity, there’s still some confusion around exactly what Kubernetes is. On a basic level, Kubernetes is often viewed as the application that runs your containers, but Kubernetes really is a bundle of utilities or APIs, according to Josh Berkus, Kubernetes community lead, for Red Hat.
“Kubernetes is really this very large collection of APIs that explain how a group of microservices running in containers on a group of servers can coordinate and work together and share services and resources,” Josh points out during the webinar.
One thing to note is that Kubernetes only supplies the APIs, the orchestration and scheduling, and resource management. There’s a big uplift to get from Kubernetes to a complete container application platform. To have a complete container orchestration platform, you’ll need the OS underneath, a container registry, container networking, container storage, logging and monitoring, and a way to integrate continuous integration/continuous delivery (CI/CD).
Another topic that comes up a lot is whether to build your own orchestration tools or use a commercial framework like Red Hat OpenShift, a supported Kubernetes for cloud-native applications with enterprise security.
While downloading components from Kubernetes.io can be the right way to go for organizations who are planning to develop their own cloud technology, it’s a much harder route for anyone who just wants to use a cloud. Since Kubenetes is a distributed system, correct installation and configuration is much more complex and requires deeper knowledge than installing software on a single machine. Kelsey Hightower's book is titled Kubernetes The Hard Way for a reason.
And despite broad support for Kubernetes across clouds, all clouds are not the same. At a basic level, Kubernetes should operate more or less the same way across cloud providers. But there are inconsistencies. Red Hat OpenShift is built to run on different clouds, and because it was designed from the ground up to be cloud-agnostic the experience is consistent across clouds.
“It’s all about getting consistency for your operations teams and consistency for your development teams and having an abstraction layer that allows you to do that on any cloud, on any footprint,” says Juengst.
The Developer Factor
When shifting to Kubernetes, remember you are adopting a platform, and it will involve a lot of people across your enterprise. Be sure to ensure developer buy-in as a key part of your Kubernetes deployment plan. Berkus notes that in his experience, implementation failures typically revolve around culture, and a failure to clearly communicate Kubernetes’ benefits and engage the developers from the get-go in the planning and development processes.
Developers want tools and platforms that make it faster for them to do their work, Berkus explains. Therefore, focus on ways to ensure Kubernetes is easier, or at least not harder, than what they’re doing right now. Also, be sure to enable the tools your developers already use or want to use for Kubernetes.
The 4 C’s of Kubernetes Platforms
There are a plethora of container orchestration tools to choose from, and just as many considerations to factor in when deciding which tool will serve your organization–and your current application development needs–the best. For a quick punch list, consider:
Code – what kind of code contributions is that vendor making?
Customers – are there real customers using the solution?
Cloud – where does this distribution of Kubernetes run and where can you use it?
Comprehensive – is the platform a complete portfolio of products and solutions tied together that fits the needs of your entire team, including developers, and the scalability you require?
For a deeper dive into the what, how, who, and why of selecting a container orchestration infrastructure, be sure to listen to the entire webinar on demand: “10 important things to consider when selecting a container platform.”