A Platform as a Service (PaaS) solution
Today's technology-based businesses consider the automation as a key element of success. Traditional solutions are not fast enough to adapt to the continuous changes that the business demands in the applications. And this is one of the main reasons why more and more businesses, large and small, embrace automation and DevOps practices.
Technology has evolved from hosting applications on physical servers to virtual machines and nowadays to PaaS, acronym for the new generation of cloud platforms, where we can deploy applications in production in a fast and automated way. The platform itself provides the installation and configuration of infrastructure components such as web servers, middleware, and databases. Thus, the user "only" needs to import the application code and the database structure, the rest being managed by the PaaS platform itself.
Graphically we can summarize the difference between hosting applications on physical machines (own data center), IaaS (Infrastructure as a Service), PaaS (Platform as a Service) and consuming Software as a Service (SaaS). We have the tasks on our roof in blue and the delegated tasks in gray, taking as reference the different responsibilities involved.
If you prefer, you can also use the well-known parallelism with "Pizza as a Service", although enriched with the scenarios of "Containers as a Service" and "Functions as a Service": Pizza as a Service 2.0!
Of course, alternatives on Platforms as a Service they are numerous and in continuous evolution. Since the business demand for container-based solutions is consolidated, we invite you to fly over a safe bet: Red Hat® OpenShift®.
The short version (taken from Red Hat's own page) states that “OpenShift is a containerized application platform that brings Docker and Kubernetes to the business. Regardless of your application architecture, OpenShift enables you to quickly and easily create, develop, and deploy on almost any infrastructure, whether it's public or private cloud. "
Impressive. Let's raise the hood and see what's underneath ...
Architecture -basic- OpenShift
The OpenShift container platform includes many interconnected components, a complexity that can be intimidating. The good news: if any of them fail, the rest of the components hold the type and continue working. The bad news: the learning curve is not negligible, find a friend.
Most of the architecture components are common in OpenShift and KubernetesFor example: OpenShift masters, OpenShift nodes, or Etcd as a key-value store. Among the exclusive components of OpenShift we highlight: the router for routing traffic (Ingress in Kubernetes) or the internal OpenShift registry.
The following diagram summarizes the architecture of the OpenShift container platform:
As of version 3, OpenShift has been built using Docker and Kubernetes on the basis of Red Hat Enterprise Linux, which we will sometimes see referred to as Kubernetes ++. His business approach leads him to introduce functionalities that provide a stable and ready PaaS for the demands of our Production (or Operation).
In particular, we highlight the following OpenShift functionalities:
- Authentication: OpenShift includes several authentication methods that allow granular access to Openshift projects:
- Authentication "Request header"
- Keystone authentication
- Multi tenancy: Supports multi-user and multi-project access control, a necessity in medium and large companies that allow the collaboration of different groups.
- Internal Image Registration: OpenShift uses an internal register to store images that are ready to be displayed on OpenShift nodes. For example, building images with the S2I (source to image) framework uses this component.
- Web Console: OpenShift provides a rich, easy-to-use web interface capable of creating, building, deploying, updating and diagnosing both OpenShift projects and microservices running on the platform.
- SCM integration: OpenShift is fully integrated with the Git version control, tool also linked to the image builder.
- Image Builder: Process used to transform or generate images that can later be executed.
- CI / CD integration: OpenShift provides an integration with Jenkins pipelines to facilitate construction tasks.
- Additional Kubernetes extensions:
- Deployment Configuration (DC): A set of PODs created from the same container image.
- Build Configuration (BC): Used by S2I to build an image from source in Git.
- Routes: DNS service used by the OpenShift router as a reverse proxy (facilitating access to applications from outside of OpenShift).
- REST API: In addition to the Kubernetes API, OpenShift provides its own API interface to make use of all its automation functionalities and seamless integration with external platforms, other automation frameworks, and DevOps solutions.
Having Kubernetes, why use OpenShift?
Kubernetes is an open source product that allows you to systematize the management and deployment of Docker containers, with the added value of operating on multiple nodes (container pools). Red Hat's value proposition in this regard is clear: boost OpenShift as a container management and orchestration cluster platform, that natively integrates Docker and Kubernetes, dressed as an enterprise product with support.
Repeating the successful business model of Red Hat Linux, we have OKD (Origin) as a community-supported Kubernetes distribution y OpenShift as a business proposition that extends it with support and enhancements such as the Service Catalog, Self-Service Portal, application build and deployment automation, container registration, or application routing that smooth the learning curve by abstracting from the complexity of Kubernetes.
But, what demands do we serve with this platform? The usual 3-layer software design (web, application and database) is evolving towards microservices architectures, which are being consolidated as the new standard and whose adoption is already significant. It is about more flexible, adaptable and… architectures. demanding than the aforementioned monolithic N-layer architecture. OpenShift helps us meet these types of needs, which are the ideal setting for container-based environments because they better fit what is now known as "Native Cloud".
In addition, agile work cycles increase the pressure on infrastructure demand, especially in its provision and control. It is what we elegantly call "orchestration" and that OpenShift implements to be able to offer it to the development (Dev) and operations (Ops) groups.
En Panel Sistemas We work under an integrated, automated and sustainable model of good practices in the creation of software and services for large projects, which we call eco-LOGIC software manufacturing.
Influencing sustainability, DevOps is the next evolution in efficiency and Openshift is Red Hat's consistent response to this reality.
If your curiosity has piqued you, we recommend you extend this reading with our success story «Maintenance and improvements of the BMW Continuous Integration platform»(2 minutes) and with the summary video (30 minutes) of the«Madrid DevOps January 2019: How to setup a telco in the cloud»In which the tools used for the provision of X by Orange services are reviewed, with OpenShift among them.
As a extra ball, completing the virtuous circle of well-supported products, we review that it is being used AsciiDoc for OpenShift documentation sources. A great success and an option that we recommend you explore from the interesting session (video) «AsciiDoctor: recover the illusion to document" than Jorge Aguilera shared with us as part of the # 101PanelTechDays.
NOTE: Red Hat, Red Hat Enterprise Linux, OpenShift are trademarks of Red Hat, Inc., in the United States and other countries.