// Module included in the following assemblies:
//
// * architecture/architecture.adoc

:_mod-docs-content-type: CONCEPT
[id="architecture-platform-benefits_{context}"]
= {product-title} overview

////
Red Hat was one of the early contributors of Kubernetes and quickly integrated
it as the centerpiece of its {product-title} product line. Today, Red Hat
continues as one of the largest contributors to Kubernetes across a wide range
of technology areas.
////
[role="_abstract"]
{product-title} provides enterprise-ready enhancements to Kubernetes. 
You can use the powerful and flexible platform management tools of {product-title} to better manage your applications.

ifdef::openshift-origin,openshift-enterprise,openshift-webscale[]
* Hybrid cloud deployments. You can deploy {product-title} clusters to a variety of public cloud platforms or in your data center.
endif::[]
* Integrated Red Hat technology. Major components in {product-title} come from {op-system-base-full} and related Red Hat technologies. {product-title} benefits from the intense testing and certification initiatives for Red Hat's enterprise quality software.
* Open source development model. Development is completed in the open, and the source code is available from public software repositories. This open collaboration fosters rapid innovation and development.

Although Kubernetes excels at managing your applications, it does not specify or manage platform-level requirements or deployment processes. Powerful and flexible platform management tools and processes are important benefits that {product-title} {product-version} offers. 
The following sections describe some unique features and benefits of {product-title}.

Custom operating system::
+
ifndef::openshift-dedicated,openshift-rosa[]
{product-title} uses {op-system-first}, a container-oriented operating system that is specifically designed for running containerized applications from {product-title} and works with new tools to provide fast installation, Operator-based management, and simplified upgrades.
endif::openshift-dedicated,openshift-rosa[]
ifdef::openshift-dedicated,openshift-rosa[]
{product-title} uses {op-system-first} as the operating system for all control plane and worker nodes.
endif::openshift-dedicated,openshift-rosa[]
+
{op-system} includes:
+
* Ignition, which {product-title} uses as a firstboot system configuration for initially bringing up and configuring machines.
* CRI-O, a Kubernetes native container runtime implementation that integrates closely with the operating system to deliver an efficient and optimized Kubernetes experience. CRI-O provides facilities for running, stopping, and restarting containers. It fully replaces the Docker Container Engine, which was used in {product-title} 3.
* Kubelet, the primary node agent for Kubernetes that is responsible for
launching and monitoring containers.
ifndef::openshift-dedicated,openshift-rosa[]
+
In {product-title} {product-version}, you must use {op-system} for all control
plane machines, but you can use Red Hat Enterprise Linux (RHEL) as the operating
system for compute machines, which are also known as worker machines. If you choose to use RHEL workers, you
must perform more system maintenance than if you use {op-system} for all of the
cluster machines.
endif::openshift-dedicated,openshift-rosa[]

ifndef::openshift-dedicated,openshift-rosa[]
Simplified installation and update process::
endif::openshift-dedicated,openshift-rosa[]
ifdef::openshift-dedicated,openshift-rosa[]
Simplified update process::
endif::openshift-dedicated,openshift-rosa[]
+
ifndef::openshift-dedicated,openshift-rosa[]
With {product-title} {product-version}, if you have an account with the right
permissions, you can deploy a production cluster in supported clouds by running
a single command and providing a few values. You can also customize your cloud
installation or install your cluster in your data center if you use a supported
platform.

For clusters that use {op-system} for all machines, updating, or
upgrading, {product-title} is a highly-automated process. Because
{product-title} completely controls the systems and services that run on each
machine, including the operating system itself, from a central control plane,
upgrades are designed to become automatic events. If your cluster contains
RHEL worker machines, the control plane benefits from the streamlined update
process, but you must perform more tasks to upgrade the RHEL machines.
endif::openshift-dedicated,openshift-rosa[]
ifdef::openshift-dedicated,openshift-rosa[]
Updating, or upgrading, {product-title} is a highly-automated process. 
Because {product-title} completely controls the systems and services that run on each machine, including the operating system itself, from a central control plane, upgrades are designed to become automatic events.
endif::openshift-dedicated,openshift-rosa[]

Other key features::
+
Operators are both the fundamental unit of the {product-title} {product-version}
code base and a convenient way to deploy applications and software components
for your applications to use. In {product-title}, Operators serve as the platform foundation and remove the need for manual upgrades of operating systems and control plane applications. {product-title} Operators such as the
Cluster Version Operator and Machine Config Operator allow simplified,
cluster-wide management of those critical components.
+
Operator Lifecycle Manager (OLM) and the software catalog provide facilities for
storing and distributing Operators to people developing and deploying applications.
+
The {quay} Container Registry is a Quay.io container registry that serves
most of the container images and Operators to {product-title} clusters.
Quay.io is a public registry version of {quay} that stores millions of images
and tags.
+
Other enhancements to Kubernetes in {product-title} include improvements in
software defined networking (SDN), authentication, log aggregation, monitoring,
and routing. {product-title} also offers a comprehensive web console and the
custom {oc-first} interface.

////
{product-title} includes the following infrastructure components:

* OpenShift API server
* Kubernetes API server
* Kubernetes controller manager
* Kubernetes nodes/kubelet
* CRI-O
* {op-system}
* Infrastructure Operators
* Networking (SDN/Router/DNS)
* Storage
* Monitoring
* Telemetry
* Security
* Authorization/Authentication/Oauth
* Logging

It also offers the following user interfaces:
* Web Console
* OpenShift CLI (`oc`)
* Rest API
////

ifndef::openshift-dedicated,openshift-rosa[]
{product-title} lifecycle::
+
The following figure illustrates the basic {product-title} lifecycle:
+
* Creating an {product-title} cluster
* Managing the cluster
* Developing and deploying applications
* Scaling up applications
+
.High-level {product-title} overview
image::ocp_arch_lifecycle.png[High-level {product-title} flow]
endif::openshift-dedicated,openshift-rosa[]
