Evolution of Running Applications
- Lets understand this by a hypotetical application ticketing platform
- Assumptions
- Users will be using browsers to access application
Generation 1: Physical Machines
- Run the applications on Physical Servers
- Capex (upfront investment) and Opex (Ongoing costs)
- In under usage scenarios the system cannot be shared with other applications.
- Problem:
- Hardware is not used optimally which increases costs
- Advantage:
- Easy to work with
Generation 2: Hypervisors (Vmware)
- Hypervisors help in creating virtual machines
- Using Hypervisor we can create multiple virtual machines (vms) from a physical machine
- Problem:
- Hypervisor costs and maintenence adds up
- Advantages:
- Hardware is used to its potential
Generation 3: Containers (Docker)
- Container Engines like Docker can be installed on the operating system and create containers.
- Container is an isolated area which contains everything necessary to run your application
- Containers are extremely portable
- Advantages:
- Extreemly portable
- Disadvantages:
- Designed for immutability not inplace updates
