Cloud services are a big hype now in the tech/internet industry.
Engineers love it - very easy to get an instance of machine and run development tasks and testing.
VCs love it - it makes development cycles shorter and turns CAPEX to OPEX.
IT engineers - well, they will have to get used to it but eventually will also master this also.
Lots of people keep asking me what is my take on cloud services. Does outbrain use it?
So... here it is:
I think cloud services with Amason AWS as the leader in this field are doing a great technical job. they truly made a revolution in the IT space and made computing resources cheap and available on demand. This is not only a big capital investment but also a huge engineering effort that requires lots of time of great IT talent.
To be honest, I think there is nothing technical that cannot be done on cloud service. Take as an example the adoption of Map/Reduce method. It was initially created by Google, then shifted into the open source as Hadoop project and about a year later, as the demand for it grew AmazonAWS also offered it as Elastic MapReduce. Today i noticed they released first Beta of CloudWatch - the missing piece of monitoring and load balancing.
According to everything I said above it would have been obvious for outbrain to use such cloud service. Actually... things are not that simple.
First, when growing your own application you need to optimize all your stack for the benefit of your application's needs. With virtually shared machines you cannot choose and optimize your hardware to do stuff like this. You just can't.
Second and most important is reliability. I know you open your eyes wide open and ask... 'does he think he can get better up-time and reliability then Amazon?' and the answer for it is... 'probably not'. A start up company, with limited resources, cannot get higher up-time then amazon AWS. The question that should be asked is 'What happen when the shit hits the fan?'
Here is one rule of the nature since the invention of the wheel - technological solutions will *always* break!!! sadly, even plains and submarines fail. The more the impact of the failure is critical the less common failures are but you can agree that no technological system is 100% fail safe.
I can assure you that even mighty AWS will fail to give it's service at least once a year. From my experience they will not even tell you there is a problem and you will hear a complete silence not to mention an ETA for the problem.
The bigger question is what do you say to your clients? can you give them ETA? can you tell them 'It's not us... its Amazon?'.
Running your own setup is defiantly harder and yes... you need IT experts in order to do it right. sometimes it even cost you more but such failures as we had with the cloud service could have cost us by the life of the company if we were not leaving AWS.
I think technically cloud services will always be a bit behind the cutting edge but will eventually close the gaps. The downside that they will never be able to solve is customer tailored solutions - just because there is no 'one size fits all in this business' and most important, support, support support. The AWS salesman says I can buy a Gold or platinum support which eventually give me the ability to pick up the phone and yell at somebody at Amazon, but it will not necessarily fix the problem. Having a great team of engineers that can control the setup will give you the fix faster and without yelling.
Your BD guy can always say to the customer, 'we have a problem- all our engineers are on it even it's past midnight in Israel, their ETA is one hour'. so the customer knows what to expect. With cloud service.... what can you say? And this can really harm your business.