My opportunity is implementing a SaaS application that's specific to very specific consumer base, situated in an exceedingly specific location.
Overall, the determining qualities from the application are:
- Small users list (associated with just one or perhaps a couple of key indutries - 1000's instead of millions)
- Narrow physical spread: used within city/province only
- Expected peak occasions for usage
Anticipating significant spikes of load at certain occasions, I'm evaluating the possibily of utilizing a lot-flexible cloud provider for example Amazon . com EC2. However, since i have are only implementing during my region with relatively small users list, I'm wondering whether a cloud computing provider would get me better performance and scaling - instead of my very own devoted hardware (that is all likely to be in a single rackspace/location)
So basically I'm asking when the load scaling versatility is really a more essential factor than physical ease of access.
I'm wondering whether a cloud computing provider would get me better performance and scaling - instead of my very own devoted hardware
The benefit of making use of your own hardware is you can buy large machines and personalize these to suite the application perfectly. The disadvantage is you must incur the main city cost in advance (or arrange your personal lease plan), administer the servers, and depend around the infrastructure at the single data center.
The benefits of utilizing a cloud product like EC2 are when the application can scale trivially across many machines, it is simple to scale up as load increases and you are able to distribute your servers across multiple availability zones. Additionally you purchase that which you use while you utilize it, to help you complement your expenses together with your earnings. No lengthy-term contracts to bother with. The disadvantage is you need to construct your system to ensure that it may be used across most all cases. Your costs on the per-compute-assets basis are most likely likely to be greater using the cloud, but you will simply be having to pay for which you utilize, and never having to be worried about moving from old hardware (as lengthy while you relaunch your EC2 instances every so often).
Observe that how big your users list does not really matter - what matters is when well the burden of the application scales. For instance, you may create a weather simulator (within the cloud... no pun int^H^H^H ok, pun intended) that runs offline. The elements simulator only has one user, however, you would use 1024 EC2 nodes to accomplish your simulation inside a reasonable period of time. In computationally intensive programs such as this, cloud computing provides you with another appealing factor - you are able to multiplex time! Quite simply, an issue that can take 1024 compute-hrs on the given EC2 instance type might be run in a single hour on 1024 instances. This enables you to definitely get a results very rapidly at no additional cost. To get this done yourself, you'd finish up building your personal cluster after which keeping it idle more often than not.