OpenShift -Introduction

Red Hat OpenShift is an open source container application platform that runs on Red Hat Enterprise Linux CoreOS (RHCOS) and is built on top of Kubernetes. It  is basically for developing and hosting enterprise grade applications of the various cloud computing models like Iaas, Paas, Saas.OpenShift is redhat openshit is a  Paas offering that helps us to deploy, develop and manage container based applications.

OpenShift includes everything you need, like a container runtime, networking, monitoring, container registry, authentication, and authorization and many more.

There are flavours of OpenShift:

OpenShift Origin-   open source application container platform.

OpenShift Online-  public application development hosting service.

OpenShift Dedicated-  Managed private clusters on cloud platforms like AWS/google clouds.

OpenShift Enterprise-   on-premise private Paas offering.  

To get started with OpenShift firstly, we need to understand some basic concepts and terminologies. 

______________________________________________________________________

lets get started with Containers. we need to understand  what are containers? what is the need of containers? Why we use them ? and How they are different from Virtual machines?

Why do you need containers?

Projects contains various different technologies like web server like node js, database like MongoDB ,messaging application like Redis and orchestration tool like ansible with all these components in developing an application we used to face various issues. we need to match compatibility of each component with underlying operating system ensure that all these services are compatible with version of operating system because each service support diff version of operating system. additionally we need to match the compatibility of the libraries and dependencies also. for different developers and production environments it leads to long time setups also .

what it can do?

so we need something that could help us with the compatibility issues .something that will allow us to modify and change these components without affecting the other components or even modify underlying operating system if required.so here docker comes into the picture which is able to run each component with separate  containers with its own libraries and dependencies on the same virtual machine but in separate environment.

Containers - containers are completely isolated environments in which they have their own processes ,services, networks, mounts except they share the same operating system kernel.

Difference between containers and virtual machines ?



as you can see in the above picture showing architecture of containers and VM both. We can see in case of containers we have underlying infrastructure then operating system then container engine like docker installed on operating system then applications with libraries and dependencies. On the other hand virtual machines having underlying operating system then hypervisor then VMs each VM has operating system inside it with lib/dependencies. This overhead causes higher utilization of underlying resources as there are multiple operating system and kernel running. VMs also consumes high disk space as each VM is heavy usually in GB whereas containers are lightweight and usually in MB in size. This allows containers to bootup faster in seconds mainly on the other hand VM as we know takes time to boot up entire operating system.it is also important to note that docker has less isolation as more resources are shared in containers like kernel whereas VMs have complete isolation.


Comments

Post a Comment