Published June 17, 2017 • Updated December 17, 2018
Multi-tier architectures are a common way to design web applications:
- A frontend - presentation - tier which provides the user interface
- An application - logic - tier where the processing happens
- A backend - data - tier where different storage technologies run
The different tiers could be deployed to a single virtual machine. Configuration management tools such as Ansible, Salt, Chef, or Puppet could be used to automate the deployment process. However, if the web application needs to start handling more traffic, it is only a matter of time before the resources of that single virtual machine are consumed. The single virtual machine could be scaled up by adding more CPU, RAM, and storage, but there is usually an upper limit to doing that.