Some thoughts about cloud services
When it comes to decision-making where to host your next project at the end everything boils down to the cost. Traditional hosting could be split roughly into four pieces – hardware, co-location fees, software licenses and the IT staff cost. More expensive options combine two or all four components and most likely call themselves a managed hosting. When switching from traditional hosting to a cloud solutions the main advantage could be concluded by just two words “on demand”. In fact this is probably the most important difference. Any setup that could be kept offline while required to be brought to life sporadically is an ideal fit for “on demand” approach. The use case examples – development, test and DR environments. Ability to spin up resources on demand without paying upfront cost is a huge deal.
The ease of use of cloud services sometimes takes almost an anecdotal forms. Companies’ upper management very often considers it as a silver-bullet solution. Industry giants' marketing departments are not the only ones who's responsible for the confusion. Most decision makers do not always have needed technical background and know about cloud services mostly from their mobile phone cloud storage experience. Therefore “moving in a cloud” became a panacea for any hosting related issues.
At MarMetrix our goal was to build a reliable platform for receiving and processing a large amount of real-time data while not affecting the end user experience. Scalability therefore was a major reason. Message queuing cluster and highly scalable database cluster give us a needed performance warranty. AWS “on demand” came as a perfect fit. Scaling out costs this way are very close to linear. MongoDb cluster could be initially configured using one shard. Will we have unexpected growth - adding a new shard is a simple maintenance that doesn’t require any downtime.
But in a last few years another set of cloud products got matured – application services. Anything from mail delivery to a video trans-coding can be done without worrying about instance setup and maintenance. While AWS RDS is considered cloud database services I tend to place it in a same application services category. Bottom line – we’re getting cloud based managed applications. In case of databases (RDS in AWS) the cost includes both license cost and the cost for server maintenance. Price wise it’s more expensive than buying IaaS that just includes licenses. But it is still less than traditional managed hosting solutions. The currently available services allow building a fully functional multi-tier products from scratch. In fact it became much more cost-effective to use cloud home-grown technologies instead of hosting your own. DynamoDb and DocumentDB – are such examples. But ease of use comes with downsides. Getting tied to a home-grown AWS technology is scary. Cloud providers don’t stay still. Recent changes at Microsoft are very encouraging and the value proposition gap between these two giants is getting slimmer each year. Cloud solutions landscape is constantly changing. Who knows where we'll be in a year from now. Therefore while using the best of cloud services we should always keep our eyes open, never forget about backup plan and don't fall in love with cloud services - they're just tools that are good now.