What is the "Cloud"
The "Cloud" is actually a pretty broad definition encompassing several different technologies.
Software as a Service (SaaS)
This includes most of the Web-based apps like Gmail, Salesforce, Office 365, Dropbox. These are Web-based alternatives to local applications.
- No software to install locally.
- Available from multiple computers and locations.
- Data is stored on a third-party's servers (can be issues with compliance)
- Reliance on good Internet connection.
Infrastructure as a Service (IaaS)
Amazon Web Services, Google Compute Cloud, Microsoft Azure. These platforms offer you the ability to create servers (actually virtual machines) that can operate much like any other server you'd have in a data center.
- No large capital outlays for hardware. You pay as you go for the resources you use. (there are tax implications)
- 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 removes servers as needed.
- No need to hassle with hardware, provisioning networking, etc.
- 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)
Amazon Beanstalk, Heroku, etc. These services allow you to deploy your own applications without worrying about the underlying architecture.
- May be the easiest way to deploy your application. Less system administration, operations, or monitoring required.
- 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.