10. Self-Service – If your application is co-located or hosted with a 3rd party, it is frustrating to raise a trouble ticket every time you want to add additional storage or a database server to your application. You may have to send an email or speak to a support engineer to provision additional resources. This may take a few hours if you are lucky or even a few days before you get what you asked for. The best thing about Cloud is the ability to provision and de-provision resources all by yourself! Most of the Cloud Platforms give you a dashboard or console to launch and configure additional resources. You will realize the power of this when you are able to add a couple of servers in a few minutes without relying on phone calls and emails.
9. No CAPEX – Now, this is certainly a big deal! You may have a killer idea that you can pitch with a lot of conviction. But to go live, you need half-a-dozen servers and this may be the biggest hurdle for the budding entrepreneurs. It is always a tough tradeoff to choose between hiring great talent and investing in powerful hardware. With Cloud, this decision becomes easy! You can host your application without any investment and use the cash to hire best developers that you can afford. All you need is an international credit card to get started with the Cloud.
8. Easy to Scale – Assuming you did everything right and the stars are aligned, you may grow pretty rapidly within the first few weeks. To meet the growing demand, you will have to throw more servers, storage and databases at the application. If you have architected the application based on some of the best practices, it is extremely easy to grow at a rapid pace. You can choose to scale up by moving to the next possible configuration or scale out by adding more servers of similar configuration to the application.
7. Automation – The Mean Time Between Failure (MTBF) is significantly short on the Cloud. Once you arrive at the best possible configuration, you can take a snapshot of the entire deployment including the servers, databases and other resources. In the event of a failure, it can be restored to the last known good configuration in just a few minutes. Applications deployed on Cloud can become intelligent and self-healing. By detecting faults, they can automatically launch healthy instances through the supported APIs. Achieving this within physical infrastructure or hosted environment is very hard.
6. Elasticity – While it is easy to scale out on the Cloud, it is equally important to de-provision underutilized servers to save the cost. By predicting usage patterns, it is possible to schedule provisioning and de-provisioning of servers automatically. Based on the factors like CPU utilization, Disk I/O and Network I/O, additional servers can be launched to distribute the load. This will prepare the startups to gracefully handle unexpected spikes.
5. Pay-as-you-go – When combined with the attributes like zero CAPEX and Elasticity, this becomes a key factor to consider the Cloud. During the peak season, you may consume more resources and a fewer resources during the non-peak times. Cloud let’s you spend on the infrastructure that is proportional to the usage. More customers may translate to additional consumption of resources but so is the increase in revenue potential. With Cloud it is simple – You only pay a part of your revenue that is directly proportional to the usage. This also means no upfront commitment and paper work that may lock you down with the hosting platform for a fixed period!
4. Continuous Integration – It is easy to implement continuous Integration (CI) on the Cloud. CI is a process of applying smaller code changes more frequently. Continuous integration aims to improve the quality of software, and to reduce the time taken to deliver it, by replacing the traditional practice of applying quality control after completing all development. Modern PaaS platforms make it easy to push changes to the code managed via a version control system like git or SVN. This brings agility to the applications.
3. Free Resources – Most of the mature Cloud providers offer various programs to encourage startups to adopt their platform. Amazon Web Services has a free tier, which makes it easy for the startups to get started. Microsoft’s BizSpark program offers various Microsoft products and services including the usage of Windows Azure free for the first three years. Rackspace has a similar program that offers Cloud hosting and coaching to startups. By leveraging these programs carefully, startups can save a significant infrastructure cost.
2. Choice – With the increased competition in the infrastructure market, startups have a variety of Cloud offerings to choose from. There are mature PaaS offerings like Windows Azure, Heroku, Engine Yard and Google App Engine and proven IaaS providers like AWS, Rackspace and GoGrid. After choosing the right Cloud, startups can choose from a choice of operating systems, application platforms, frameworks and languages. Many PaaS providers are now polyglot enabling applications written in .NET, Java, Ruby, Python and Node.js to be deployed. It is the same case with the databases. Most of the Cloud providers offer MySQL, MS SQL Server, PostgreSQL and popular NoSQL databases on demand. So, with Cloud, deployment environment is no more a limiting factor from choosing the right development stack!
1. Focus on your offering – With all the above, the biggest advantage that you, as a startup get is the ability to spend more time on your core business. Cloud let’s you stay focused on your USP and the differentiating factor. You will no more worry about the power, cooling, bandwidth and the maintenance of the infrastructure. Instead, you can work constantly towards improving your product or service that will add more value to your customers!
I hope this helps the startups and aspiring entrepreneurs in understanding the potential of the Cloud. If you do not agree with what I said, please drop a comment to express your viewpoint.
- Janakiram MSV, Chief Editor, CloudStory.in