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.