Any application that will be accessed by multiple users from multiple locations is ideal for being hosted in the cloud. You'll be much more able to scale with the cloud, and you won't have to invest a lot in up-front hardware to see if your idea works. If your application is designed only to serve one local office, migrating to the cloud is not as important.
Services involving communication, networking, cooperative games and searching are very well suited for cloud computing because they're often not accessed from just one location. Cloud computing helps take applications global because your cloud provider most likely will have a global presence, which means you can spin up new servers geographically close to where your end users are located.
Your application is well suited for hosting in the cloud if any of the following is true:
- you need to reach your users anywhere they are on the Internet;
- you have a distributed workflow across multiple geographic regions;
- you are building a customer-facing service that requires global scalability;
- you need to build a highly available and highly distributed network;
- you want scaling that a traditional data center cannot support;
- you have no current physical footprint or data center; or
- you don't have time to manage your own hardware, data center and hardware IT staff.
Your application may not be suited for hosting in the cloud if any of the following is true:
- your data is not allowed to leave a local network;
- you do not have a server component to your application (such as a single-player game with no online component); or
- your application cannot run on traditional hardware, and requires application-specific integrated circuit (ASIC, commonly used in bitcoin mining).
Note that migrating to the cloud does not mean you no longer need IT staff or people to manage servers. What you no longer need to manage is hardware; you still have a lot to manage on the software side. Usually, you can operate with fewer people, but you can't fire everyone once you transition to the cloud. To all my IT friends out there, your company migrating to the cloud doesn't mean you'll put yourself out of a job; it just means you'll have to learn new tasks. Instead of managing the traditional hardware components, you'll be managing cloud-based virtual components.
Essential guide to migrating apps to the cloud
Building cloud-specific applications