Sunday 19 May 2019

What are Containers?


Applications are the key things to make any business successful. Whether you are in e-commerce, banking, etc., to become successful you should build robust applications with zero down time.

In old days, each application is deployed in its own server and can able to communicate each other via APIs exposed by the applications.



For example, as you see above image, a database server like SQL is deployed in dedicated server, backend services are deployed in different server and user front end application is deployed on other server.

What if you want to add caching mechanism to existing infrastructure, you need to buy a new server and deploy a caching application like ‘REDIS’ in the new server.


What are the problems with old approach?
a.   First of all, dedicating a server alone to an application is very costly. Application can’t consume the 100% resources of the server.
b.   Server cost is very high
c.    You may not know, how big or faster the server should be to deploy your application
d.   Monitoring all the server is a pain
e.   Server maintenance
f.     Most of the time, applications that are deployed on the server use 10% of the system resources, this is waste of money, resources, power etc.,

Introduction to VMware
In our previous approach, we are dedicating one server to one application. But with the use of VMware, we can deploy multiple applications in one dedicated server.

VMWare is designed to run multiple operating systems on the same server or PC. With is virtualization, you can deploy all the applications in single physical server.

In virtualization, These multiple guest operating systems are not running on top of the actual hardware, but on top of a virtualized hardware provided by a software called an hypervisor.




Advantages
a.   Virtualization allows you run multiple different operating systems on single hardware.
b.   Host operating system resources are available to guest operating systems.
c.    Each guest operating system is isolated from other.

Disadvantages
a.   Licence costs of different operating systems
b.   Each VM runs on its own operating system.
c.    VM takes minutes to start. It is heavyweight
d.   Security patches to be applied on each vm separately.
e.   Guest operating system do not have full access to the host operating system internals.
f.     Since each VM has its own operating system, guest operating system itself consume lot of resources like CPU, RAM etc.,.


Containers
Container came to solve the problems that we faced in virtual machines. Containers virtualize the operating system, instead of virtualizing the actual hardware.

Container is a unit of software, that packages the code and all the dependencies, so the application runs quickly.

You can have ‘n’ number of containers in your server and deploy one application to each container.




Advantages of containers
a.   All the containers share same operating system
b.   Container are lightweight and can start in seconds (Most of the containers can able to start in less than a second).
c.    Containers take less memory foot print as compared to VMs.
Containerized applications
Applications that run inside a container are called containerized applications.

Previous                                                 Next                                                 Home

No comments:

Post a Comment