So a question we're often asked
is "Why [Red Hat] OpenShift over vanilla Kubernetes?"
Well, today we're going to look at the benefits of OpenShift,
both for developers and for IT operations.
So let's start with developers.
One of the key features that OpenShift is going to give us is speed of development,
particularly with the steps of creating and building the cloud-native application, which is manifested as containers.
And the feature in OpenShift that makes that possible is called "Source-to-Image" (S2I).
So let's look at how Source-to-Image works.
First, your developer is going to write some code.
And they're going to put it in a Git repository.
And this is where Source-to-Image is going to take over.
Source-to-Image is going to look at the code that was placed in the repository
and it's going to be able to determine, did you write Java code?
Did you write Python code?
And it's going to recognize what type of code you wrote.
And since you wrote some code, it's now smart enough to know what type of base image that you need to pick.
And it's going to go pull that from an image catalog.
So now what Source-to-Image is going to do, it's going to take the code that you wrote,
it's going to combine it with the base image
that was appropriate for whether you wrote Python or whether you wrote Java.
And it's going to build a new image,
and it's going to put that new image in a registry.
It's going to push your new image to registry.
And then when it's ready to deploy, it's going to push that image to deployment.
So what happened here?
Why was this such a great feature?
Well, a lot of these steps here are the selecting of an image and merging that image with code and building a new image.
Typically you have to write a container script-building files, sometimes called Docker files, to do all those steps.
And if you're someone like myself who's been writing these types of container building files for years,
those steps aren't too hard.
But if you have a lot of new developers
Java developers, Python developers, who have been developing for years
but aren't very familiar with cloud-native applications and how to do container-type activities,
building containers and picking an image and
putting it and merging it with the code that they wrote, and then pushing it to a registry.
Having OpenShift automate all of that for you is a huge help.
So that's a key feature for new developers that OpenShift provides.
And another feature that OpenShift provides is easy networking through the use of routes.
So in vanilla Kubernetes, the networking piece is really complicated and can be very hard to do.
And what's really nice about OpenShift is it takes care of the networking piece for you.
So what it'll give you is it'll give you an easy to read URL that maps your deployed application.
And then the other aspect that the OpenShift will provide you, networking wise, is integration with external load balancers.
So, it'll take care of that integration with the external load balancer and even give you different load balancing options.
And if you had to figure all that out in vanilla Kubernetes,
you'd have to be really strong in Kubernetes networking to be able to perform those activities.
So now let's move on and talk about what does OpenShift do for you from an IT operations perspective.
And we're going to talk about that under the context of day-2 operations.
And so the key piece that OpenShift gives you for your day-2 operations is automation.
So what does OpenShift automate for you?
Well, the first thing it automates for you are installs.
And then the next big piece that it provides automation for are updates.
And the updates aren't simple updates.
So when it does an update, it worries about updating the platform, which is OpenShift.
And it also updates the underlying operating system, which is RHEL [Red Hat Enterprise Linux].
Now why it's important to update both of these together is OpenShift will always make sure
that the version of OpenShift is compatible with the version of the operating system that's being used.
You'll never run into incompatibility issues because the wrong OS version was picked for the particular version of OpenShift.
So it's a key feature in the automated updates that OpenShift provides.
Another place where OpenShift provides automation is in cluster size.
So in vanilla Kubernetes, if your cluster is not big enough, it's really hard to increase the size of the cluster.
But in OpenShift, it's able to do this automatically for you.
So that's a huge benefit.
If you're running out of -- you have scalability issues and you don't have enough nodes in your cluster,
having this taken care of by OpenShift is going to be a huge help to your IT operations folks.
The next feature that OpenShift provides you is multi-cloud management.
So when you start running in production, the odds are you're going to be running lots of clusters
and you're probably going to be running them on different clouds,
maybe different types of clouds, public clouds, private clouds,
and trying to manage all those clusters, running on all those different cloud environments
in vanilla Kubernetes is really difficult.
But OpenShift has built-in tools for multi-cloud management that make running across multiple clouds very, very easy.
It's all built into the tool.
Now the last piece where OpenShift really shines is in security.
And the aspects of security that OpenShift really shines is in two pieces.
One is in "guardrails".
And what do we mean by guardrails?
So OpenShift essentially prevents you from running with scissors.
So if you have new developers, new folks that are deploying to production, there are some things that
vanilla Kubernetes will let you do that you really should never do in production.
So one example of this is running a privileged container.
A container that runs as root.
You never want to run those in production if you're worried about security because there's a big surface area
that can be attacked with vulnerabilities if you're running as root.
So what OpenShift will do is it will prevent you from running that type of container.
It will request that the container be non-privileged.
Another example of a particular vulnerability that OpenShift gives you guardrails for is if you use a default namespace.
Again, using a default namespace can have security vulnerabilities, and OpenShift is going to make sure
that whenever you deploy your container that you are using non-default namespace.
Now, the last aspect of security that OpenShift takes care of is the notion of profiles.
So in vanilla Kubernetes, there's a large number of knobs that you have to turn to get security right.
And there's not a lot of people that are very comfortable with turning all those knobs correctly
to make sure there's no security vulnerabilities.
In OpenShift you don't have to modify the individual knobs.
Instead, what you do is you pick a particular security context constraint profile,
and the profile that you pick will give you the level of security and the level of access that your container needs,
but it's also going to take care of turning all those knobs the right way.
So you never have to personally turn those knobs,
and you can feel more comfortable that you just picked a profile, and that profile is proven to be secure.
So what have we seen today?
We've seen that OpenShift provides us great benefits for day-2 operations,
and it also provides us great benefits to developers and speeds up their development.
And this is why we feel OpenShift provides a lot of value beyond vanilla Kubernetes.
Thanks for watching. If you enjoyed this content
please like the video and subscribe to our channel.