Home
- Home
- Blog
Author :
Global TechHub
Introduction
OpenShift is a layered system designed to
expose underlying Docker-formatted container image and Kubernetes concepts as
accurately as possible, with a focus on easy composition of applications by a
developer. For example, install Ruby, push code, and add MySQL.
Unlike OpenShift v2, more flexibility of
configuration is exposed after creation in all aspects of the model. The
concept of an application as a separate object is removed in favor of more
flexible composition of "services", allowing two web containers to
reuse a database or expose a database directly to the edge of the network.
OpenShift Layers
The Docker service provides the abstraction
for packaging and creating Linux-based, lightweight container images. Kubernetes provides the cluster management and orchestrates containers on multiple hosts.
OpenShift Online adds:
v
Source code management, builds, and deployments for developers
v
Managing and promoting images at scale as they flow through your system
v
Application management at scale
v Team and user tracking for organizing a large developer organization
OpenShift Architecture Overview
OpenShift Online has a microservices-based
architecture of smaller, decoupled units that work together. It runs on top of
a Kubernetes cluster, with data about the objects stored in etcd, a reliable
clustered key-value store. Those services are broken down by function:
Ø
REST APIs, which expose each of the
core objects.
Ø Controllers, which read those APIs, apply changes to other objects, and
report status or write back to the object.
Users make calls to the REST API to change
the state of the system. Controllers use the REST API to read the user’s
desired state, and then try to bring the other parts of the system into sync.
For example, when a user requests a build they create a "build"
object. The build controller sees that a new build has been created, and runs a
process on the cluster to perform that build. When the build completes, the
controller updates the build object via the REST API and the user sees that
their build is complete.
The controller pattern means that much of
the functionality in OpenShift Online is extensible. The way that builds are
run and launched can be customized independently of how images are managed, or
how deployments happen. The controllers are performing the "business
logic" of the system, taking user actions and transforming them into
reality. By customizing those controllers or replacing them with your own
logic, different behaviors can be implemented. From a system administration
perspective, this also means the API can be used to script common
administrative actions on a repeating schedule. Those scripts are also
controllers that watch for changes and take action. OpenShift Online makes the
ability to customize the cluster in this way a first-class behavior.
To make this possible, controllers leverage
a reliable stream of changes to the system to sync their view of the system
with what users are doing. This event stream pushes changes from etcd to the
REST API and then to the controllers as soon as changes occur, so changes can
ripple out through the system very quickly and efficiently. However, since
failures can occur at any time, the controllers must also be able to get the
latest state of the system at startup, and confirm that everything is in the
right state. This resynchronization is important, because it means that even if
something goes wrong, then the operator can restart the affected components,
and the system double checks everything before continuing. The system should
eventually converge to the user’s intent, since the controllers can always
bring the system into sync.
Download
S.
No
|
Name
|
Size
|
Download
|
1
|
OpenShift
Architecture
|
400
KB
|
Download
|
Comments
Post a Comment