Different Types Of Deployment
November 6, 2024Less than 1 minute
Different Types Of Deployment
Traditional Deployment
In the early days of the internet, applications were directly deployed on physical machines.
Advantages:
- Simple
- Does not require the involvement of other technologies
Disadvantages:
- No clear resource boundaries for the application
- Difficult to allocate computing resources efficiently
- Programs may interfere with each other easily
Virtualized Deployment
Multiple virtual machines can run on a single physical machine, where each virtual machine is an isolated environment.
Advantages:
- Programs' environments do not interfere with each other
- Provides a certain level of security
Disadvantages:
- Additional operating systems increase resource consumption and waste
Containerized Deployment
Similar to virtualization, but containers share the underlying operating system.
Advantages:
- Ensures each container has its own file system, CPU, memory, process space, etc.
- Resources required by applications are packaged within the container, decoupled from the underlying infrastructure
- Containerized applications can be deployed across cloud providers and Linux distributions
Challenges in Containerized Deployment:
Although containerized applications offer many benefits, they come with certain challenges, such as:
- When a container fails, how can another container immediately start to replace the failed one?
- How can container numbers be horizontally scaled when traffic increases?
These container management challenges are called Container Orchestration Issues. To address these problems, several container orchestration software tools have been developed:
- Swarm: Docker's own container orchestration tool
- Mesos: Apache's resource management tool, which needs to be combined with Marathon
- Kubernetes: A container orchestration tool open-sourced by Google
