Software Development in the Cloud: Changing Opinions and a Bright Future Ahead
Not long ago, few IT executives knew what “the cloud” meant, and any mention of the term was met with skepticism. Yet, years later, we find ourselves in an environment where “the cloud” has moved from buzzword status to having a major impact on IT organizations. The cloud has become a very real force on the IT landscape. For software developers, it has gone from being a somewhat vague concept to a new paradigm that is quickly emerging as a standard in how we build and deploy applications.
So what is different? What changed everyone’s minds? Certainly the cloud offerings from Google, Amazon, Salesforce.com and Microsoft were influential. They were the first to take the “vaporware” out of the cloud and provide companies with real, tangible tools that enable them to experience its benefits firsthand. Now, rather than spending countless IT dollars to build and deploy vast infrastructures to support new Web and mobile applications, companies have a cheap and easy alternative for hosting them.
All of this has been a boon for software developers, who were previously beholden to enterprise infrastructures to get their applications up and running. In almost every way, the cloud has begun to offer the benefits promised during those moments when it was first teased, making many IT executives anxious to fully tap its potential as a business technology investment.
But like many new and evolving technologies, challenges to cloud adoption and industry-wide use as a development platform remain. Many executives, wary of cost issues in the event of unforeseen problems, and shaken by the potential for unreliability of cloud technologies (as was recently witnessed with Amazon’s outage), have been reticent to move their infrastructures to the cloud. And though cloud advocates have made enormous strides in education about cloud security, many are still unwilling to take the plunge.
The promise of the cloud is real. Despite executives’ initial reluctance to adopt it, cloud computing should be looked at seriously by companies in their software development efforts. Here are a few reasons it will change the way we develop applications throughout 2011 and beyond.
Speed + Cost Savings = The IT Holy Grail
Without a doubt, the chief benefit for companies developing applications in the cloud is speed. The hosted infrastructure the cloud offers — in a cheap, “pay-as-you-go” model, no less — means a much faster setup process for the development team, to say nothing of the flexibility it offers in the development process itself. Previously, teams were required to conduct extensive preparations before initiating a development project, all of which was contingent on ensuring that the infrastructure in place was capable of supporting the applications to be developed.
The cloud eliminates many of the infrastructure concerns of the development team by providing a hosted model, offering as much storage, computational power and services as are necessary to build and deploy the application while streamlining the setup phase and overall development process. This provides a significant cost benefit as well, as IT managers are freed from the need to invest significant resources in additional servers or other costly infrastructure before even considering the application in question. It’s all there in the cloud, it’s cheap, and it’s ready as soon as the development team needs it.
So, instead of focusing on setup and infrastructure, development teams and IT managers can focus their resources on the application itself, and aligning it with the business needs of the organization. With cloud development, teams can focus on delivering nothing but value to the business through their development efforts, a key tenet of Lean application development and one that can position the IT organization as a valuable contributor to the business.
Reliability and Security Hurdles Will be Cleared
Despite the benefits of cloud development in the speed and cost savings it can offer to the business, many companies still view it as too unstable and unreliable to be trusted to host their infrastructures. Though their concerns are somewhat warranted, i.e., the aforementioned Amazon outage, I believe that with the right considerations and planning, companies can clear this mental hurdle and start leveraging the cloud for their own businesses.
The key to developing applications in the cloud is to be smart about how you approach it. It’s not something you can just dive into, and it should be approached in the same way as any other considerable IT investments should — with a backup plan in place.
Companies need to prepare their architectures for cloud development in such a way that allows for the application to run regardless of any outage that may occur. This includes building out comprehensive disaster recovery plans that will ensure development can continue in the event that resources do become unavailable at any given time in the process. As most companies already have such plans in place for their current, on-premise systems, it’s simply a matter of applying these same disaster recovery planning processes to their investments in the cloud.
The other chief mental roadblock is security — many organizations just aren’t comfortable with shifting all of their corporate data to a public cloud, and instead opt to design private ones. What these companies fail to realize, however, is that private clouds are in many ways less secure than public ones.
Private clouds rely on the security infrastructure of the company that houses them, while the public cloud is designed with security as a chief consideration. Moreover, private clouds are often less reliable. So while it’s understandable that companies should be wary of investing in the public cloud and are right to worry about their corporate data, many of these fears are in many ways unfounded. Forward-thinking executives have already realized this, and once the holdouts see how successful cloud development has proven for these organizations, the walls to widespread cloud adoption will come crumbling down.
Looking to the Future
The most important thing to remember about the cloud is not to expect perfection right off the bat. Because it isn’t perfect. Nothing is.
What it is, however, is the most promising new advancement in software development to come along in years. In five years, the question of whether to leverage the cloud in application development projects won’t be a question at all. And in ten years, cloud offerings from the major players will dominate development, while current standard platforms like Java and .Net will be pushed to the background.
The benefits of the cloud are clear and real. The advantages it offers in terms of speed and cost-savings will eventually change the minds of reluctant IT executives worried about security and reliability issues. And make no mistake: it’s the future of Web and mobile development. If you’ve been considering harnessing the power of the cloud for your own application development efforts, there’s no time like the present.