Do you want to learn about and operate OpenShift in multiple environments? If you are reading this book, we suppose that the answer is yes! But before we go into the technical details, we want to start this book by making you a proposition: any house construction starts with a foundation, right? In this book, our approach will be the same. We will start by giving you the foundation to understand and create a much stronger knowledge base – you will develop critical thinking and be able to make the best decisions for your use case.
That is why we decided to start this book by not talking about OpenShift itself yet, but by unveiling the most popular (and important!) context that it operates in: the hybrid cloud infrastructure. Therefore, in this chapter, you will be introduced to the hybrid cloud journey, challenges, dilemmas, and why many organizations are struggling with it. Knowing about these challenges from the beginning is a determinant success factor for hybrid cloud adoption.
Transforming an IT business so that it's agile and scalable but is also stable is a must-have nowadays, but that is not a simple step; instead, it is a journey from one star to another in the vast outer space of IT that currently surrounds us. However, why do we need those changes? Why is the market adopting the cloud massively and so rapidly? We'll discuss that shortly!
It is a changing world!
We are living in the age of fast changes! 10 years ago, most of the current big tech companies did not exist or were just small startups; several technologies that we have today also were only known within university research groups, such as 3D printing, artificial intelligence and machine learning, 5G, edge computing, and others – and there is much more to come! Technologies like the ones mentioned previously are becoming more popular and will create several demands that do not exist today, new job positions, and far more changes.
In this rapidly changing world, some new needs became important. Most companies were forced to change to be able to release new software and versions much faster than before, quickly scale resources, and have a global presence with responsive applications.
It was in this context that the public cloud providers have emerged with great success. However, several organizations that made huge investments in the cloud are experiencing some challenges. In a study conducted by IDG in 2020, among big companies in different industries and geographies, 40% of the respondents stated that controlling cloud costs is the biggest challenge when taking full advantage of it. This research has also shown data privacy and security as big obstacles. We will walk through some of these challenges in this chapter.
In this chapter, we will cover the following topics:
From small enterprises to big tech companies, most of them face some common challenges when it comes to using and taking full advantage of public cloud providers. Some of the main challenges are as follows:
Reference
You can check out the complete IDG research at https://www.idg.com/tools-for-marketers/2020-cloud-computing-study/ [Accessed 30 August 2021].
We have seen some complex challenges so far. So, you might be thinking, so you don't like cloud providers and want to convince me to avoid them, right?
No, of course not! I am sure that without the advent of cloud providers, several companies we use every day (and love!) simply would not exist! Let's point out the good parts, then:
As we've already discussed, the public cloud, while it can solve some challenges, introduces others. It was in this context that the hybrid cloud emerged: to mitigate some of the challenges and take the best from each provider, from on-premises, private, or cloud providers. The HashiCorp State of Cloud Strategy Survey, which was made in 2021 with more than 3,200 technology practitioners, found that multi-cloud is already a reality. 76% of the respondents stated that they are using multiple cloud vendors, with expectations for this to rise to 86% by 2023.
Reference
You can check out the complete HashiCorp research at https://www.hashicorp.com/state-of-the-cloud [Accessed 31 August 2021].
So, what are the characteristics of the hybrid cloud that help mitigate the challenges of public cloud adoption? Here are a few of them:
The following table lists some of the challenges and hybrid cloud mitigations:
Containers have successfully emerged as one of the most important tools to promote better flexibility between applications and infrastructure. A container can encapsulate applications dependencies within a container image, which helps an application be easily portable between different environments. Due to that, containers are important instruments for enabling the hybrid cloud, although they have several other applications.
The following diagram shows how a container differs from traditional VMs in this matter:
Figure 1.1 – Containers provide flexibility
While containers are beneficial, it is practically impossible to manage a large environment consisting of hundreds or thousands of containers without an orchestration layer. Kubernetes became the norm and it is a great orchestration tool. However, it is not simple to use. According to the CNCF Survey 2020, 41% of respondents see complexity as the top barrier for container adoption. When you decide to go for a vanilla Kubernetes implementation, some of the following will need to be defined (among a large set of options) and managed by you:
Reference
You can check out the complete CNCF Survey here: https://www.cncf.io/blog/2020/11/17/cloud-native-survey-2020-containers-in-production-jump-300-from-our-first-survey/ [Accessed 1 September 2021].
OpenShift is one of the most popular platforms based on Kubernetes among enterprise customers. It was first released in 2011, even before Kubernetes was created. However, in 2015, with the release of OpenShift version 3, Red Hat decided to adopt Kubernetes as its container orchestration layer. Since then, they are actively collaborating with the Kubernetes community – Red Hat and Google are the top contributors to Kubernetes. Due to that, it is not a surprise that OpenShift is one of the most mature and complete solutions built on top of Kubernetes.
The following table summarizes some of the features that are included out-of-the-box with the Red Hat OpenShift Container Platform (OCP) (or easily pluggable):
(*) Need to be installed on day 2
These features are available for any customer that has a valid OpenShift subscription with Red Hat. However, if you don't have access to a Red Hat subscription, there are some alternatives (for studying purposes):
We are going to see many of these great features in detail, along with practical examples, in this book.
Reference
The updated statistics about the contributions to the Kubernetes project, grouped by companies, can be found at https://k8s.devstats.cncf.io/d/9/companies-table.
An interesting factor about OpenShift is the vast range of platforms that are supported. With OpenShift version 4.11 (the version that was available when this book was written), you can have the following different combinations to choose from:
Figure. 1.2 – OpenShift offerings
In this section, we will walk through each of these options.
In the old days, when we talked about using a certain technology, we also thought about how to deploy and manage it. Nowadays, this is not always true – almost everything now can be found in a Software as a Service model, which you can quickly and easily start using without caring about deployment and management.
The same applies to OpenShift: multiple managed cloud services allow an organization to focus on the application's development and the business while Red Hat and the cloud provider manage the rest.
The following table shows the existing managed offerings at the time of writing this book (check Red Hat for the current options):
Important Note
Note that Red Hat manages the full stack, not only the Kubernetes control plane. Red Hat provides management and version maintenance for the entire cluster, including masters, infrastructure, and worker nodes, though it's not limited to that: it also supports CI/CD, logging, metrics, and others.
There are other managed Kubernetes options on the market. Although this is not the focus of this book, keep in mind that some providers don't manage and support the entire stack – only the control plane, for instance. When you're considering a Kubernetes managed solution, see if it is fully managed or only part of the stack.
The answer is: it depends! There are several things you need to consider to find out the best for your case, but generally speaking, managed solutions are not the best option for organizations that need to have control over the servers and their infrastructure. For organizations that are more focused on application development and don't care about the platform, as long as it is safe and reliable, then managed solutions are probably a good fit.
Managed solutions could also be helpful for organizations that want to put their hands on the platform, evaluate it, and understand if it fits their needs but don't have skilled people to maintain it yet.
Most of this book has been written with a self-managed cluster in mind. However, excluding the chapters focused on platform deployment and troubleshooting, the rest of it will likely apply to any type of OpenShift cluster.
The following diagram shows a workflow that aims to help you decide which strategy to go for:
Figure. 1.3 – Managed or self-managed decision workflow
There are three installation modes you can use to deploy OpenShift in any of the supported providers, as follows:
(*) You can find a list of supported hypervisors for Red Hat Enterprise Linux at https://access.redhat.com/certified-hypervisors.
(**) Please refer to this link for an updated list of tested providers and integrations with OpenShift: https://access.redhat.com/articles/4128421.
When it comes to supporting your hybrid or multi-cloud strategy, other great tools provide single and unified management, security, and orchestration layers across all environments in all providers. We reserved the last part of this book to take a deep dive into those tools, but you must meet them from the beginning to understand the role of each in the hybrid/multi-cloud picture.
As we mentioned previously, a single and unified management layer is important to support the hybrid/multi-cloud strategy. Red Hat Advanced Cluster Management lets us manage the life cycle, ensure compliance using policies, and deploy applications on multiple Kubernetes clusters. The following are some of its main features:
We will dive into Red Hat Advanced Cluster Management using practical examples in the last part of this book.
Security is becoming increasingly important for Kubernetes users. When you have multiple Kubernetes clusters spread among different providers, ensuring security and having a real notion of the current vulnerabilities is a real challenge. Red Hat Advanced Cluster Security aims to help with that – through it, you can easily scan container images to find known vulnerabilities, audit workloads, and clusters using industry standards such as NIST, PCI, and others, analyze network traffic, and create policies accordingly, among other great features. You can apply all of these features to multiple different clusters, which helps you keep all your environments secure, no matter where they are.
We will look at Red Hat Advanced Cluster Security using practical examples in the last part of this book.
A central container image registry isn't usually a required tool. However, deploying applications on several clusters without it makes the build and deployment activity a bit challenging. Red Hat Quay is a container image registry that provides not only the usual capabilities of an image registry (storing your container images) but also provides image vulnerability scans, a time machine, replication, garbage collection, automated builds, authentication, authorization, and more.
We will learn how to use Red Hat Quay in the last part of this book.
Red Hat OpenShift, Advanced Cluster Management, Advanced Cluster Security, and Quay are different products. However, with the OpenShift Plus package, you can have all of them in one subscription only, which is probably the best way to go if you are planning to adopt a hybrid or multi-cloud Kubernetes strategy.
We will cover OpenShift Plus in more detail with practical examples in the last part of this book.
In this chapter, we looked at the main challenges of public cloud usage and how the hybrid cloud helps mitigate some of them. You now understand how containers, Kubernetes, and OpenShift can help you implement a successful hybrid cloud strategy. Finally, we learned about the different types of OpenShift offerings and additional tools that support hybrid cloud adoption.
In the next chapter, you will learn about the architectural aspects of an OpenShift cluster.
If you want to find out more about the concepts that were covered in this chapter, check out the following references:
Feature |
OpenShift Container Platform (OCP) Functionality |
Built-in CI/CD Pipelines, Application Console |
OpenShift pipelines(*), OpenShift GitOps(*), Developer Console. |
Integrated Development Environment |
OpenShift CodeReady Workspaces(*) and IDE extensions (VS Code and IntelliJ). |
Serverless Middleware |
OpenShift Serverless(*). |
Service Mesh |
OpenShift Service Mesh(*). |
Automated Container Builds |
S2I, BuildConfig. |
Dashboard |
Administrator and Developer dashboards are available. |
3.149.27.72