As a company that provides the benefits of cost reductions and improved resource utilization for cloud customers, we face a big question mark hanging above the cloud vector: IaaS vs PaaS. Will DevOps engineers continue to consume IaaS resources a few years from now? Will “serverless” architecture (such as Lambda and App Engine) take its place, and will it change the way we breath EC2?
Spotinst provides cross-cloud services, and we still wonder: When is it going to happen that “commodity” architecture will run across two or more clouds? Will it be transparent to the developers if they code runs on servers on AWS or GCE?
In order to shed some light on these topics and understand more about current trends in the cloud, we had an interesting and comprehensive talk with Ofir Nachmani of IamOnDemand. Ofir began using AWS more than a 8 years ago, long before “cloud” was a cool buzzword, and long before most organizations recognized that the public cloud was the next big thing.
IaaS vs PaaS – Which is going to survive?
Ofir’s answers were straightforward. “The one that will make developers Kings of the infrastructure. Companies need a robust, fast and scalable way to develop and deploy their applications. It doesn’t matter if they use the methodology of smooth configuration management of IaaS resources (continuous deployment via Chef, Puppet, Ansible, etc.) or via a brand new ‘Lambda’ PaaS.”
“The existence of PaaS and IaaS gives the developers a much more elastic computing capability, and lets them radically speed up their deployments,” said Ofir. “They spend less time dealing with the underlying infrastructure and more time working on their code. The one that provides less overhead and will be easier to adopt – that is the one that will rock.”
Generally speaking about “continuous deployments”, we see an enormous number of tools today: it’s spring up like mushrooms, where each company sees it differently and each DevOps uses it differently. We asked Ofir: “Do you think that we will see standardization someday?” He replied, “Only if one of the giants (Google, Microsoft, AWS) makes a big move and performs acquisitions in this area, otherwise, we will keep having jungle of tools.”
Ofir believes that “Do we really understand where Iaas ends and where PaaS starts. Anyway there is a long way, it’s a matter of years, not less than 5, until we see Enterprises or SMBs Choosing PaaS as their first choice. Newly growing startups will create architecture from scratch on top of PaaS services, and it will eventually become a standard in few years to only use PaaS.”
It seems that PaaS pricing models are still vague for the cloud customer. “$0.20 per 1 million requests thereafter ($0.0000002 per request); it’s impossible to predict an application’s cost on PaaS, and it’s even harder to TCO it. Ironically, an infinite loop in your code might cost you many hundreds of dollars.” said Ofir.
According to Amiram (CEO at Spotinst), “As we see from our current customers, architectures of the future will be hybrid, and there is not going to be a knockout between PaaS or IaaS. Still, parts or layers from traditional applications will convert into PaaS and part will remain IaaS. Some companies will adopt PaaS and some might not. It depends on the company’s DNA and specific workload maturity and requirements.”
Amiram continued: “IaaS is one of the most underutilized purchasing options today. Customers buy servers with 8-16 cores while they barely use 4. Customers allocate tens of GiB of RAM while they use 50%-70% of it.
We are seeing workloads that can be reduced in cost by 30%-50%. If they were analyze correctly. By “placing” the right instance size (or type!), these decisions can save a lot of money. But unfortunately, the majority of cloud consumers don’t do it.”
Our solution has developed as a framework for cost-oriented clusters, providing reliability and efficiency in the Spot market. Today we are able to reduce costs even more by analyzing our client’s usage data, and choosing the best IaaS resources for them, we wrap it all together on top of Mesos or Kuberenetes, and providing one-stop-shop for cloud computing optimization.
Internally at Spotinst, we have adopted the Microservices architecture, which giving us the ability to update our services independently, to deploy it in containers, and the most important thing was, to treat servers as stateless. by doing that, we only need to make sure that there are enough containers running to produce the amount of work we need. It all clustered and managed via Mesos.