As a developer you always play a vital role in software development. Yes, no matter what an architect or a project manager does it’s your code which provides that much needed virtual life – the code that lies behind a click – to the blue print designed by software architects. Much has been said about cloud computing in general but as a developer how well prepared are you to take on this new concept which is going to be mainstream soon, yes may be within a couple of years from now. We are already in the transition phase.
As a developer, when you embrace cloud, somehow or the other you are associated with each of the three layers of cloud computing i.e.
- SaaS (Software as a Service)
- PaaS (Platform as a Service)
- IaaS (Infrastructure as a Service)
But of all the three above, PaaS layer is the closest to the developers ands this is the layer which you must understand and focus your career on.
For nonstarters, in plain English, PaaS can be described as a software development platform. You don’t need to worry about the underlying software environment (runtime), programming language, programming / testing tools, deployment mechanism etc. It should be ready to use once you signup and you’ll manage only the application and data.
Example, a few popular platforms which you can explore:
- Java developers: AWS Elastic Beanstalk (Amazon), GAE (Google Apps Engine).
- .Net developers: Windows Azure.
- RoR (Ruby on Rails): Engine Yard, Heroku.
- PHP: CloudControl.
- Python developers: GAE.
Till a couple of years back single language PaaS were the industry norm. For example, GAE started with only one language support and that was Python (but later it provided support for Java as well). Gradually vendors are trying to offer polyglot PaaS i.e. they have started supporting multiple languages. A few examples of polyglot PaaS are OpenShift, DotCloud (Docker), AppFog and CloudControl. They support almost all the multi-language/platform i.e. PHP, Node.js, Python, Ruby, Java, Python etc.
You must start exploring a PaaS that is related to your language of choice. To add a few of my observations here, the difference between PaaS and IaaS is blurring as PaaS like Windows Azure are also providing the underlying infrastructure (sort of IaaS). Similarly IaaS offering like AWS (Amazon) are now offering PaaS capabilities as well. So, in future the distinction between a PaaS and IaaS may gradually vanish…and Pure PaaS/IaaS player may become things of past!
As the Agile methodologies of software development are gaining ground PaaS adoption is going to be mainstream very soon. PaaS simplifies many maintenance and development task with easy collaboration among team members spread across different regions. But there may be some scenario where, as of now, PaaS may not be the best option to go for. Example, the application where higher level of portability is required, like moving from one cloud to another. But very soon the IT industry will overcome this limitation as well as Multi-cloud concept is gaining importance and cloud pundits are talking about standardization that may lead to platforms that are intelligent enough to accommodate almost every type of application. What’s your take on this?