The most common question that I get to hear from developers is – how do I get started with Cloud Computing? Many developers believe that targeting a Platform as a Service (PaaS) is all it takes to get onto the Cloud bandwagon. While PaaS abstracts the nuts and bolts of the Cloud infrastructure to ease the life of developers, many applications run on raw VMs deployed to run on Infrastructure as a Service. So, it pays to understand the behind the scenes architecture when developing Cloud ready applications. Though .NET and J2EE abstracted the underlying implementation, developers with the thorough platform knowledge fare better in their jobs. Similarly, knowing a little more about the inner workings of the deployment platform will help developers in the long term.
It is just not the understanding of the Cloud platform that will make them ready. Developers need to have a mastery over certain fundamentals concepts. Here are five concepts that the aspiring Cloud developers should focus on –
1. Get a Better Understanding of the WWW – There are tens of thousands of web developers out there who can program in PHP, ASP.NET, JSP and other languages. Many of them would have contributed to large websites that attract decent traffic. But very few web developers really understand what HTTP is. Today’s web is programmable and the apps running on mobile devices consume half of the web functionality. So, it is no more developing that powerful web application but exposing the powerful REST API. The abstract frameworks have hidden the inner workings of HTTP. The ability to deal with HTTP verbs like GET, POST, PUT and DELETE go a long way in designing lightweight and scalable web applications. Understanding the REST functionality and the ability to design RESTful services is a must for new age web developers. They should be able to comfortably deal with JSON payloads that flow back and forth. Bottom line – Get your www basics right!
2. Understand the Basics of Virtualization – Many may argue that the developers can blissfully ignore the deployment environment and only focus on their code. When targeting the Cloud, applications should be intelligent about where are they are being run. The ability to exploit the automation capabilities will make applications self-healing and intelligent. For this, developers need to understand how virtualization works and the APIs involved in provisioning and de-provisioning the resources. In the current world, Hypervisor is the new OS and the Virtualization APIs are the new system calls. Developers must be familiar with virtualization to take advantage of the benefits that Cloud offers.