I’m so happy right now! Google just announced on March 25th the “Managed VMs” (http://goo.gl/yv1w6F), confirming what I truly believe and have been saying for a while: PaaS is not dead and it should be a very important piece on your architectural strategy. The key aspect to consider here is that the platform will NOT address all your needs, but instead of discarding it because of that, you should design a hybrid cloud solution, using both PaaS and IaaS.
See: There is nothing wrong with PaaS (http://goo.gl/NWrBmf)
The general guidelines for this approach are:
1) Use PaaS as much as you can. Ideally, it should handle all the HTTP requests coming from end-users, keeping the IaaS usage for backend workloads. Remember: you definitely want to take advantage of the effortless scalability provided by the platform.
2) If possible, try to create a MVP (minimum viable product) that can be delivered using only the capabilities provided by the platform. Doing that, you will have a much better time-to-market, lower your risks and costs.
3) Keep in mind that you will need to use the flexibility of the infrastructure at some point. That’s fine! Design a mechanism to allow your servers to communicate with the platform. Task queues are a great choice! By the way, thank you Google for solving this problem for us.
4) Communicate asynchronously as much as you can.
5) Just one more thing: before jumping into IaaS to solve a specific problem, be sure that there are no other companies offering this capability as a service. For example: you don’t need to develop a video encoding feature on the top of your favorite Linux flavor just because the platform doesn’t provide such service to you. There are several great video encoding services out there you can use.
I look forward to testing this Managed VMs, really excited about it. Long live PaaS, IaaS and Hybrid environments!
Cheers, Daniel Viveiros