Cloud computing is no longer just a buzzword, it has become a huge trend in the past few years. There are so many benefits and services cloud computing offers that companies, especially small in size, simply cannot resist anymore. To name a few, companies prefer a subscription payment model because they only pay for the services they use. There is no heavy investment on IT hardware and support. No need for long term commitment. Availability of quality SAAS services for affordable price.
One very important consumer of this is the startup industry. Today, when one needs to conceptualize an idea, the last thing they need to worry about is the infrastructure requirement. Cloud infrastructure service comes to their rescue and takes away all the complexity and nuances of the infrastructure. So cloud services is a messiah for the startup industry, but.. do not just conclude yet. Read on.
Let me take an example of a startup company with following stages of events:
- Group of people come up with an idea and want to implement it
- They implement the idea
- They soft launch this with a few set of people
- Idea becomes popular, attracts large crowd
- Idea becomes a success.
Now, let us see how cloud computing benefits this startup industry.
Cloud Computing services:
Cloud computing, as we all know is not just about infrastructure services. If we consider, Amazon for example, there are various services that it provides which can be used. This includes, EC2 services, which forms the core of infrastructure services. S3, which acts as the internet storage in cloud, RDS, the amazon cloud database and so on. Elastic Load balancer, DNS routing services and so on.
All these services and more are available on a pay as you use basis, and depending on the need one or more services can be used in the application.
Infrastructure / Deployment:
Infrastructure is the base service that cloud companies offer. We could make use of the infrastructure services to host the application. There are several machine images (which contains the operating system and other components that makes the hardware usable) that are available, and one could customize the same and use as it suits the implementation
This by far is the most important benefit of cloud. Amazon offers a feature called Auto-scaling, which allows you to define rules that can trigger scale-up or scale-down of your infrastructure. This, specially helps someone to initially go with a minimum infrastructure to cater their target audience, and gradually scale as and when demand grows. If the demand drops, you can scale down as well and hence cut costs.
It is obvious that cloud computing is a convenient and easy choice for startups. And it definitely is, but consider the following situations that you may land up in:
1. You have chosen to go with a particular cloud service provider, as your cloud partner, and you wish to change it to another. This can happen in several cases:
- You are interested in a service that only one particular provider offers
- You realize there is a cost difference and you want to move to a cheaper service provider, this can happen since cloud companies often re-define their rates turning them to either a cheaper alternative or an expensive one.
- Your target geography changes, and you realize that a particular provider has a better service offering in that region
2. You want to move away from a cloud partner and host in a non-cloud platform. This can happen in some instances as well
- At a very high level, cloud service is a rented service, and a local infrastructure is something you own. So in a long term, a local/owned infrastructure might turn out to be a low cost solution than the cloud platform. This of course depends on the services that you use and the type of application you host.
- Your company is taken over by a bigger company, who already has the necessary infrastructure and wants your solution to be moved there.
Now, to cross-map, here is the challenge that startups face.
In one hand you have so many services that cloud provides, which are useful and essential but you have a caveat in using them.
On the other, you do not want to invest heavily in building and hosting the applications with your own infrastructure.
The solution for this is to have an architecture and design which is modular, chooses appropriate design patterns to ensure separation of concern so that you have a solution in place which has a defined path when you wish to either go with a different cloud provider or move away from cloud platform.
Essentially, all this and more needs to be considered before actually implementing the solution. Starting from the technology aspects, in choosing the right frameworks, making appropriate architecture and design decisions and so on. Right decision in this step decides the future of the product.