What is the "Cloud"
The "Cloud" is a broad definition encompassing several different technologies:
Software as a Service (SaaS)
Web-based alternatives to local applications such as Gmail, Salesforce, Office 365, or Dropbox.
Advantages:
- No software to install locally.
- Available from multiple computers and locations.
Disadvantages:
- Data is stored on a third party's servers (can be issues with compliance).
- Reliance on good Internet connection.
Infrastructure as a Service (IaaS)
Platforms that offer you the ability to create virtual infrastructure that can operate much like any other infrastructure you'd have in a data center. IaaS providers include: Amazon Web Services, Google Compute Cloud, Digital Ocean, and Microsoft Azure.
Advantages:
- No large up-front investment for hardware. You pay as you go for the resources you use.
- Short turn-around time to scale up resources (usually minutes instead of weeks). This allows you to do things like auto-scale based on demand.
- Flexibility in operations. When you servers are disposable, you can spin up or remove servers as needed.
- No need to hassle with hardware, provisioning networking, etc.
Disadvantages:
- Still requires reliable Internet access
- Requires someone with experience managing infrastructure in a cloud environment
- Costs could get out of hand without some oversight
Platform as a Service (PaaS)
Platforms that allow you to deploy your own applications without worrying about the underlying infrastructure. PaaS providers include: Amazon Beanstalk, Heroku, Serverless, etc.
Advantages​:
- May be the easiest way to deploy your application. Less system administration, operations, or monitoring required.
Disadvantages:
- Can be more expensive than IaaS.
- Less flexible. You need to design your application needs to fit within the ecosystem provided.
- Less choice in underlying software.