Those of us who have been around networking or IT arena for quite sometime have heard about these pesky little things called applications. Applications run for most part, on servers and they service clients. Apparently, these things aren't self-sufficient and depend on other stuff to stay alive (talk of team spirit). A special category of these applications is called 3-tier applications.
These 3 tier applications typically consist of a web front end, an application server (for business logic) and a database layer.
Rewind back to early 2000's- each of these layers needed a "server" to run. These servers consumed power, needed cooling and were connected by a "high speed" (100 Mbps probably) network. Everything was hosted in a special area called a data center.
Hold on- How do you decide the ideal hardware configuration for a server? . Businesses depended on these applications for day-to-day operations. IT had to make a call to decide between server config and application performance. So, they did the most sensible thing and erred on side of caution- they picked up the most powerful hardware config money (budget) could buy. The fact that server utilization on average was around 50% was an open secret to anyone that worked in IT infra. Often it was less than 10 %. Business owners were still paying 100 % for power, cooling, and OPEX costs to maintain these servers. From an administration standpoint, each of these servers needed love and care- they needed to be updated, patched, backed up periodically.
Enter a little-known company back then called VMWARE- VMWARE, a pioneer in virtualization technologies that allowed users to "run" multiple servers on the same physical hardware by using special software called a hypervisor. Hypervisor carved out a small slice of hardware and presented it to "guest" operating systems called virtual-machines. Every possible piece of HW including CPU, RAM, HDD, NICs was carved out
VMWARE to a large extent reduced the CAPEX involved in hardware procurement and increased the overall utilization of servers. Web, application, DB tiers of an application could run in a single Vmware server. Further, multiple such applications could run on the same physical server.
Hypervisors like VMWare optimized the utilization of hardware. However, VM's were pretty much still separate operating system instances. Each of these instances needed to be patched, maintained, and upgraded when at regular intervals.
What if each piece of this 3 tier application can run in its own world sharing the same physical hardware and operating system. Enter the world of containers and Docker.
Multiple containers can run on the same physical or virtual operating system. They are self-contained and can be brought up/down with simple commands.
Need redundancy- With orchestration systems like Docker Swarm or Kubernetes, containers can be run across multiple machines on the network and orchestrated easily.
Interested?? I will be writing more about containers and docker in the coming days, in the meantime check out this comic by google
Comments