Scale up vs Scale out. First decision to make before moving to cloud
Before moving to cloud, First decision to make is whether Scale up the hardware or Scale out with multiple systems. Both has its pros and cons.
Scale up (Vertical scaling) is achieved by having bigger hardware say 64 bit system with huge RAM. Disk storage may not be the issue as terabyte of SAN storage drive could be mounted. RAM and CPU should be sufficient to take care of your load.
As years move and your business grows, you may hit the upper circuit. Your system cannot manage the growing load then in that situation , you may need to buy a bigger hardware and dump the current system. Clearly this seems to be costly affair but it is easy to manage and administer.
Scale out (Horizontal scaling) is achieved by adding multiple small systems. Load is shared across systems. This certainly helps as the application will get more CPU and RAM then the scale out option. When the business grows add one more system. This option will help to grow faster with less cost.
But the application should be capable enough to share the load. If it is multi user application, split User by name; say name starts with A - H will be processed by one system and I - M in other and so on. Clearly Application should have logic to share the load and retrieve the correct information from corresponding server and storage location. There is a good development effort involved.
There are also some alternatives available. Using hardware / software load balancer, Users request could be geographically processed in different systems. Using Hadoop and other distributed file system also helps to achieve scalability.
Horizontal scaling may not be so cheaper. If you consider hardware cost alone then it is but there is rack space required, power consumption, etc. If commercial software is used then more license should be purchased as more systems are added. Backing up data would be tough job for the Administrator. Scale out will have higher management cost than scale up.
Conclusion: Think before taking a decision. Don't take decision based on the current load / requirements. At least plan for 2 - 3 years. How much your application / business will grow and plan for the future.
See also: Open source products tagged cloud.