Cloud Computing is spreading and impacting business models of IT companies already established. In the short term will likely see the implementations of solutions in Cloud complementing the existing solutions in the traditional model. But in the long run the cloud model will gradually replace the current computer model. However, its effects are already being felt. Recently Microsoft had to bend to this new environment, and also started giving this model its Office suite, its main source of revenue, which generated revenue in billion dollars in 2009.
The strategies adopted vary according to size and maturity of the IT areas of business. Large corporations are taking their first steps toward adopting Cloud Computing private clouds, while small firms choose public clouds. However, providers of public clouds created proprietary platforms for developing cloud applications, trying to win the hearts and minds of developers. Moreover, we are beginning to revive another war for space (remember the endless debate between. Net and Java?), But now with Amazon, Google, Sales force and Microsoft (Azure) trying to conquer this market. Yes, it is an important target, because the developers is that in practice, are responsible for connecting organizations with their clouds. IBM, in turn, has a different approach, which leaves out of this fight by tools for public clouds. Bet that, at least initially, but developers can use the cloud model, but to create applications that will run in the traditional setting or in private clouds. Does not focus on developing applications to run on public clouds. Personally, I believe that this option is very interesting for medium to large businesses, which tend to keep their data centers internally, using them in private clouds.
The current scenario is still undefined. Developers have to create applications to a cloud platform focused public that these applications will not run automatically in the other clouds. The risk of lock-in is still present. These challenges are barriers that end up preventing a greater and more rapid spread of the cloud.
And what developers need and demand for that scenario to unleash Cloud Computing? I made no exhaustive research, but talking here and there with friends who make their living developing systems, collected some insights. First of all they want easy to use tools to develop your applications to run on clouds, that these tools are also available on this model, i.e., “pay for use”. Moreover, in general developers working in small enterprises and ISVs do not have much budget at its disposal and how often faced with lack of support in their own data centers want self-service solutions. Also there should be a universal, open API, enabling them to write an application that runs on any cloud. Do not want to be subject to lock-ins. They also need tools that exist to integrate easily, applications that run on a cloud systems that are running in other clouds, be they public or private. And the systems that are already running on on-premise environment. And what they are today? If they adopt IDEs (Integrated Development Environment) coupled to a specific platform such as GAME (Google Application Engine) or sales force discover that these tools are only good for developing specific applications for these clouds and proprietary. Microsoft enlists developers for clouds within their community of developers who know. Net and want (or are forced) to continue with this technology. Anyway, they all seek to create and expand the lock-ins for its clouds.
So what the developers want are dreams of a summer night? Expect the industry to create solutions that allow them to develop applications to run in the clouds, keeping the highest possible degree of similarity with existing tools. Of course, at least initially, want to create applications for the clouds without changing the way applications are today, but over time will require new tools, more developmentally appropriate for the cloud. Actually a lot is already being done. For example, in integrating the recent acquisition of Cast Iron by IBM is a step toward spreading the Integration-as-Service offered by Cast Iron as a fundamental part of the process of integrating applications into the clouds. This integration is necessary both to applications that are other clouds or those that are running on-premise servers located in data centers of companies themselves.
In general actions that can suggest to my friends developers? Well, first of all would be good for them to understand more deeply what is Cloud Computing, its restrictions (lock-ins with care and safety issues in public clouds) and benefits. Should be kept well informed about the rapid evolution of the concept and its technologies and offerings. Also suggest that you begin to develop small applications in the cloud, testing and validating your assumptions. Use a cloud to develop an application is a good way to understand the concept of Cloud Computing and master it.
And since we are talking about developers, technology developers to clouds is to learn to use the Hadoop – an open source Java framework, a top level Apache project. As the cloud spread, understand and master this technology will become more and more important.