What kind of skills a cloud developer needs? This question was presented to me by a friend, and gave me an idea for this blog post.
There are many aspects that are different from normal desktop/server developing, but I’ll address only a few most important to consider when going to the cloud.
I’ll start with a bold claim, that developing for the cloud is not for everyone. It requires a complete mindset reformat from a developer as every bad move we make ends up costing our customers money. Everything we do needs to be througly planned and we need to be able give cost estimates of our routines and alternative solutions. Now suddenly our code is being reviewed for totally different perspective that we’re used to!
This also presents new challenges with storing data and transfering it compared to the old and care free “let’s throw an SQL server and dump everything there” attitude. No longer have we the luxury of not caring what kind of data we store and how long, but we are required to evaluate how we can store data most efficiently, perhaps compress it and for how long we should keep it.
Third important part about cloud developing is preparing for scaling. As currently there is no automated scaling (Azure) and that has to be handled by the developers. If you leave out this part from your solution, you might as well go with the traditional hosting, as you’re leaving out one of the most important benefits for cloud computing, it’s like driving your Ferrari on first gear only 🙂 We need to be ready for the spike performance requirements and able to downscale when the peak goes past, that we don’t keep reserving the costly CPUs. Failing to realize this small thing can get your boss to come after you with an hang noose when he sees your monthly Azure credit card bill 🙂
These were the few main points what you should consider, before you let your junior developers to deploy directly to the cloud to avoid any nasty and costly surpises. There are still some other almost equally important things to consider, but I’ll leave them to later when I talk about my experiences about developing for Azure.