There may be no bigger buzzword over the past several months than cloud computing. Nearly every software provider in the galaxy has made some sort of announcement around cloud computing. And the cloud topic has been beaten to death in the media and blogs.
But while a lot of noise has been made around the concept, very few software companies are working to create accurate - or even consistent - definitions of what cloud computing means. With different areas of IT looking at the same term, the meaning of the cloud will vary, depending on who you're talking to. At its heart, though, there are some basic tenets of cloud computing that we can all agree upon.
Three facets of cloud computing should be found in the offerings of anyone attempting to bring the premise to their customers: cloud computing needs to be about shifting the source of computing power; it must offer portable, flexible solutions; and it should provide a platform for development, if not interoperability, for consumers.
These three features should also drive the development of the definition of cloud computing. Many proprietary forces are seeking to shape a more open and flexible cloud environment for developers looking to take advantage of highly available and scalable development environments.
Early iterations of what we now call cloud computing came as organizations sought to better leverage the existing power inside their IT environments. As processor costs dropped, it became easier to scale these processors and storage tools (which were already commoditized) and shift compute power across multiple machines as needed. This was once called grid computing. Oracle and others offered grid capabilities, but while computing power was distributed, it was still mainly housed within a user organization.
A few years later, the ubiquity of the Internet made it easier to offer computing power as an outsourced service. IBM was the leading innovator here, and the idea of outsourcing brought the idea of leveraging utility models versus traditional license models for the emerging cloud computing concept. Companies with large Internet architectures understood that they could offer some of this compute power as a utility. Amazon's Elastic Compute Cloud (EC2) began offering all of the "power" needed to run complex IT architectures as an outsourced service.
The benefit of the cloud in terms of both utility pricing and outsourced power is that it allows for far greater dynamic environments inside organizations. New organizations can get up and running with strong cloud-based IT infrastructures in a fraction of the time it takes to provision, develop and deploy these components in house. Companies can also scale existing operations with ease and increase their compute power (and the price they pay) as needed. Conversely, the cloud and utility models allow companies to scale down without wasting IT costs on fixed resources.
Another great benefit of the cloud is that it provides users access to application functionality anytime, anywhere. Gone are the days when users needed to be at the office, on a specific network or computer to access a database or application functionality. The software as a service revolution in the late 1990s, led by companies like Salesforce.com and NetSuite, opened up the potential for cloud-based applications. Now, users simply need a Web browser and a login, and they are up and running in seconds.
Portable, Flexible Solutions
Just as the early SaaS providers offered anywhere access to application features, cloud-based applications are creating an anywhere access model, but the true cloud providers also provide portability along with the Web-based access.
The early SaaS vendors created fixed, monolithic multitenant SaaS environments with which to push their applications to users via the Web. This multitenant environment meant that every user of that application was hitting a single master version of the application. At the time, this made sense because it was the only way to offer robust application power via a Web-based model.
But cloud-based applications are more complex and offer users greater choice in terms of flexibility and portability. For one, next-generation cloud applications are not fixed to a multitenant model. Rather, users can deploy via a number of options: in the traditional SaaS sense where the central provider hosts the application, through the vendor's partner network, or managing that application with third-party cloud services such as Amazon or Rackspace. The cloud model allows more choice as to where the application lives versus the older SaaS model where users are strictly limited to the original vendor's hosting infrastructure.
The portability issue is directly related to the flexibility issue. Because these cloud-based applications are portable and not tied to a single, multitenant instance, users are free to make deeper customizations and integrations. For example, it is easier to go deeper into the code when you are not running the risk of "breaking" the application at a global level. With cloud-based models, users have more dedicated resources in terms of application power, while sharing the infrastructure needed to manage and deliver these individualized application instances to many end-user organizations in a more efficient manner.
The Cloud as Development Platform
The early SaaS vendors started with point applications delivered via the Web and have grown to offer development platforms in their own right. The platform-as-service concept allows users to leverage proprietary development tools to make changes to the original SaaS applications, as well as add new applications to the deployment - built from scratch using the aforementioned development tools. But again, in the multitenant SaaS model, developers are limited. They can develop on this platform, but they simply cannot redeploy their work anywhere but in the original SaaS environment. This creates an issue with portability and code reuse, and is an inefficient development model.
True cloud-based platforms, on the other hand, allow greater freedom for the developer. Many cloud-based platforms leverage open, standards-based development languages and tools, such as PHP or Eclipse-based toolkits. This makes it easier for developers to take advantage of cloud-based platforms and start creating custom applications and extensions with greater rapidity than with older models.
Also, the portability factor enables developers to create applications in a cloud environment and then deploy them in different places. For example, if developers create applications using a cloud-based platform, those packages can be distributed (as open source projects) or sold and then run on Amazon, Rackspace, IBM, Oracle, Google or some other cloud environment. It makes little sense to limit a development project in the cloud to one closed-off portion. Code reuse becomes an attainable goal in the cloud.
As it becomes easier for cloud environments to talk to each other via application programming interfaces and Web services, developers have another added advantage - integration in the cloud. Rather than writing integrations on a point-to-point and one-off basis, integration as a service becomes a possibility in the cloud. As more cloud-based platforms and applications choose to keep more open and standards-based APIs, developers can write fewer custom integrations and create more open integration frameworks that allow users to easily configure those connections.
Sunny Skies for Cloud Developers
We are still at the front end of what a cloud-based development platform can offer, but the future looks bright (even if it is riddled with clouds). Developers can take advantage of power and business logic platforms without having any infrastructure on their site and can use open platforms to develop flexible, portable cloud solutions for their businesses or to distribute as independent applications. The cloud computing concept has been heavily marketed toward the end-user consumer of IT solutions, but the developer community has much to gain from the cloud as well.
Register or login for access to this item and much more
All Information Management content is archived after seven days.
Community members receive:
- All recent and archived articles
- Conference offers and updates
- A full menu of enewsletter options
- Web seminars, white papers, ebooks
Already have an account? Log In
Don't have an account? Register for Free Unlimited Access