Overview of microservices, containerization and cloud services

You can find an overview of microservices, containerization, container orchestration, and cloud services and the links to further information about these concepts that provide you an insight into the architecture and deployment of HCL DevOps Velocity (Velocity).

The following topics provide you with more information:

Microservices

It was difficult to manage the larger applications developed using conventional software architectures in which the different components of the software depended on each other. Due to this dependency, if there is an error in one component it would affect other components of the software. This led to the evolution of microservices architecture to manage the larger applications easily.

In the microservices architecture each component of a software is called as service. Multiple services are combined to build a larger application. These services runs without affecting the functionality of the other services and communicate each other through APIs.

If there is any requirement to update one of the services or multiple services at a time, it can be achieved independently without disrupting the functionality of other services. Therefore, the microservices architecture is an excellent alternative for developing large, complicated applications that demand flexibility, scalability, and maintainability.

For example, order management, product catalogue, user authentication, or processing payments can be the independent services, which are combined to build an e-commerce application. So, if you want to update the product catalogue service, the other services like processing payments or order management are not affected.

For more information about microservices, refer to What are Microservices?

Containerization

Containerization is a software deployment process that can deploy containers across different computing environments. Containers are a type of software that can virtually package and isolate applications for deployment across public cloud, on-premises data centres, or hybrid cloud environments. With containerization, you can create a container or single software package that contains an application’s code and all the files and libraries needed to run the application. Each container is a single lightweight executable, that is portable and can run on any on-premise or cloud platform.

In the traditional approach of developing a software application, when a code written in a specific computing environment and transferred to a new location, errors or bugs were found due to dependency on operating system and other configurations of the computing environment.

Containerization eliminates this problem by packaging the software code along with the operating system (OS) libraries and dependencies required to run the code in a container.

For example, if you write a code in a Windows OS desktop or a Virtual Machine (VM) and transfer it to a Linux OS desktop or a VM, you might find errors or bugs due to the dependency on operating system. However, using containerization approach eliminates this problem by bundling all the required OS libraries and dependencies into the container.

For more information about containerization, refer to What is containerization?

Container orchestration

Container orchestration is the automated management of containerized applications across different platforms. In the container orchestration the tasks such as container deployment, scaling, load balancing, and networking can be automated. Container orchestration makes the application error free, increases availability, and reduces downtime since most of the deployment related tasks are automated.

Kubernetes and Red Hat OpenShift are the popular tools which can be used for container orchestration.

For more information about container orchestration, refer to What is container orchestration?

Cloud services

Cloud services is an approach of delivering the computing services over the internet, which enables users to access applications, resources, and data at any time, using any device from any location.

The cloud services can be classified primarily into following three categories:

  • Infrastructure as a Service (IaaS)
  • Platform as a Service (PaaS)
  • Software as a Service (SaaS)

An example of a cloud service is Red Hat OpenShift on IBM Cloud which is a fully managed OpenShift container platform offered by IBM cloud as Platform as a Service. You can install HCL Velocity on this managed Kubernetes platform on IBM cloud.

For more information about Cloud services, refer to What is cloud computing?