Why becoming a cloud software developer can be a good idea.

Everyone knows that the longevity and ultimate success of a platform lies in the developers willing to create on that platform. Creating a healthy developer ecosystem in which both the developer and the platform vendor can grow and prosper is very important. No one knows this better than Microsoft. It has long been their mantra that "developers, developers, developers" are the key to success. With most of the new large scale websites and platforms being launched on open source platforms and now the cloud, this is becoming even more important.

If you just do some casual research, it is easy to see that the largest and most heavily trafficked sites on the web are written in languages such as PHP, Ruby on Rails or even Java, and these are all deployed on open source platforms. Which version of Unix or Linux they reside on isn't important. What is important is that developers are migrating in droves to these languages and frameworks, and new developers are learning these languages and frameworks instead of the typical Microsoft .NET stuff. So how does this relate to cloud computing?

Well, whether it was by virtue of luck or actual planning, most of the cloud computing vendors (if not all but Microsoft shops) chose to deploy their infrastructures on open source platforms. Google's App Engine, long the bastion of true could computing is mainly a Python development platform. The underpinnings are all open source, and Google does contribute significantly back to the cause. Amazon's Web Services are also built upon solid open source foundations, and the majority of platforms that can be deployed in EC2 instances are Linux distributions. These open source platforms were chosen when language/framework pairs were developed and launched, such as Ruby on Rails, Python on Django, and even Groovy on Grails. These frameworks have provided a solid base upon which to build cloud computing applications and services.

So why can it be a good idea to become a cloud software developer? I would say that there are several reasons to do so, not the least of which is marketability. The hype around cloud computing is at fever pitch, and there are many reasons for it. The root cause is the promise of increased efficiency at a lower price point. One often downplayed benefit that I feel is the most important benefit is flexibility. With cloud computing, the promise of true flexibility and scalability has finally been reached, and the multiple layers of abstraction from the hardware and operating system have granted developers the freedom to focus on their code, not the underlying stuff. By understanding the concepts of developing in the cloud, you have opened yourself up to a new market that is akin to a dam about to burst.

Businesses are moving to the cloud (whether private, public or hybrid) at a break-neck pace, and positioning yourself as a competent developer in this space can only pay off. It may even pay off huge. Just remember that tying yourself to a particular vendor or platform is not the best way to approach. You should focus on a language and framework that is common to most or all cloud infrastructures and leverage your knowledge of development as a whole to pitch your skills as wide as possible. Understanding the benefits and limitations of the cloud will allow you to avoid costly mistakes, and your superiors will see you as the 'go to person' for the next wave of IT.

No comments:

Post a Comment