Amazon had recently launched the Spot Instances functionality to its EC2 Public Cloud. This allows Amazon to auction the unused compute capacity in its Datacenter. Just got a chance to dig a bit deeper (thanks to our IT Admin) into the Spot Instances Model. Whenever you instantiate a Spot Instance, you can specify the following parameters:
1. The max price for the instance
2. The duration in which to keep the instance running
3. Persistance - Will restart the instance even if it was terminated because of a lesser bid price.
Based on the Supply and Demand (not sure how the algo functions though), Amazon calculates the Spot Price at regular intervals and as long as my quoted max price is more than the spot price, my instance keeps running - and I get billed only for the Spot Price. Based on current price history, the spot price is usually 2-3 times cheaper than the normal instances - the only catch being that the uptime of you VMs is not guaranteed - can be terminated if the bid price is lesser.
On the surface this sounds like a cool billing model from Amazon - specially suited for compute intensive number crunching workloads. But on digging a bit deeper, if I can set a REALLY HIGH max price, say $1 per hour, then my VM is guaranteed to run always, and I get billed only for the spot price - ie 2 to 3 times lesser. Would that encourage everyone (ppl using the normal instances too) to move to spot instances, thereby reducing the revenue for Amazon?
I guess, as more ppl migrate to spot instances, that would increase the spot instance price to go greater than the normal instance price. But yet, I believe that atleast in the mid term, if more ppl realize the benefits of spot instance and migrate to it, Amazon's Smart move to rent out its unused compute capacity can backfire!!!
Your thoughts???
Showing posts with label EC2. Show all posts
Showing posts with label EC2. Show all posts
Thursday, February 11, 2010
Sunday, May 3, 2009
Cloud Computing Paradigms : IaaS and PaaS
Cloud computing has created enormous buzz over the past year and different flavours of Cloud Computing have evolved.

Infrastructure as a Service (IaaS):
Cloud vendors like Amazon (EC2), GoGrid and lots of other smaller players offer compute, storage and networking bandwidth resources on-Demand. Customers can dynamically provision servers and pay only for what they use.
What benefits does IaaS offer?
A lot of IT admin activities are offset to the service provider. Providers offer SLAs to guarantee uptime and over time providers would start offering value added services like automatic backup, update and patch management and multi site hosting capabilities. Don’t think any of these services are offered by any vendor today, but with VMware vCloud platform, providers should be able to offer a lot more value added services at a premium.
It also gives the flexibility to dynamically scale up /down your compute resources based on the demand. Also all the current apps running in your datacenters can be quickly migrated to the cloud without any major changes to the app itself. This has been the key reason for the success of IaaS.
But IaaS does not offer any other notable benefits to the app developers themselves. Though they can leverage the service provider APIs to quickly add new servers, they should still ensure to take care of the app scalability, load balancing and performance tuning.
Hence though IaaS might be the ideal choice for getting your current apps to the cloud, if you are building new apps for the Cloud, you might want to look at the various built in features that PaaS offers to app developers before making the choice.
Platform as a Service (PaaS):
PaaS vendors offer a framework for developers to quickly develop and deploy their apps on the cloud. For example Google App Engine offers developers to build Python and java (beta) apps and deploy them on the Google platform. MS has its azure platform to build .net apps.
What benefits does PaaS Offer:
PaaS totally negates the need for an IT admin to manage the infrastructure of your apps. The infrastructure is totally hidden and only the app development platform is exposed to the users.
Developers also are hugely benefitted by building their apps within the framework exposed by the platform. This would mean that your app can automatically scale from a few hundred users to millions of users. The app developers don't have to worry about adding more resources or performing load balancing tasks to handle the workload.
So what is the drawbacks in the PaaS Approach - First of course is that existing apps will need to be ported or actually it makes sense for only apps that are newly built. It is also going to take time for these platforms to mature and there is also the learning curve for developers to get used to the platform capabilities.
While writing up this blog post, came across the architecture diagrams of Citrix Cloud Center and VMWare vCloud. Gives me the impression that the difference between IaaS and PaaS are going to thin out in the future. Did have a argument with colleagues on whether vCloud would be an IaaS or a PaaS. Remember all the argument around para virtualization and full Virtualization. Do those terms make any sense today!!!

Infrastructure as a Service (IaaS):
Cloud vendors like Amazon (EC2), GoGrid and lots of other smaller players offer compute, storage and networking bandwidth resources on-Demand. Customers can dynamically provision servers and pay only for what they use.
What benefits does IaaS offer?
A lot of IT admin activities are offset to the service provider. Providers offer SLAs to guarantee uptime and over time providers would start offering value added services like automatic backup, update and patch management and multi site hosting capabilities. Don’t think any of these services are offered by any vendor today, but with VMware vCloud platform, providers should be able to offer a lot more value added services at a premium.
It also gives the flexibility to dynamically scale up /down your compute resources based on the demand. Also all the current apps running in your datacenters can be quickly migrated to the cloud without any major changes to the app itself. This has been the key reason for the success of IaaS.
But IaaS does not offer any other notable benefits to the app developers themselves. Though they can leverage the service provider APIs to quickly add new servers, they should still ensure to take care of the app scalability, load balancing and performance tuning.
Hence though IaaS might be the ideal choice for getting your current apps to the cloud, if you are building new apps for the Cloud, you might want to look at the various built in features that PaaS offers to app developers before making the choice.
Platform as a Service (PaaS):
PaaS vendors offer a framework for developers to quickly develop and deploy their apps on the cloud. For example Google App Engine offers developers to build Python and java (beta) apps and deploy them on the Google platform. MS has its azure platform to build .net apps.
What benefits does PaaS Offer:
PaaS totally negates the need for an IT admin to manage the infrastructure of your apps. The infrastructure is totally hidden and only the app development platform is exposed to the users.
Developers also are hugely benefitted by building their apps within the framework exposed by the platform. This would mean that your app can automatically scale from a few hundred users to millions of users. The app developers don't have to worry about adding more resources or performing load balancing tasks to handle the workload.
So what is the drawbacks in the PaaS Approach - First of course is that existing apps will need to be ported or actually it makes sense for only apps that are newly built. It is also going to take time for these platforms to mature and there is also the learning curve for developers to get used to the platform capabilities.
While writing up this blog post, came across the architecture diagrams of Citrix Cloud Center and VMWare vCloud. Gives me the impression that the difference between IaaS and PaaS are going to thin out in the future. Did have a argument with colleagues on whether vCloud would be an IaaS or a PaaS. Remember all the argument around para virtualization and full Virtualization. Do those terms make any sense today!!!
Subscribe to:
Posts (Atom)