will we incur additional cost for new computers, laptops and programs?
Many existing companies, as well as start-ups, have designed a business model around cloud computing. One of the prime examples of this as a success story on the Internet today is cloud computing as a storage medium. Online services to reliably store backups, such as Carbonite, Dropbox, and accessory features added to backup software like Acronis allow typical computer users to store, share, and synchronize files across multiple platforms.
Netflix is one of the most successful entertainment industry media services that, arguably, does revolve around, at the very least, a distributed streaming service with cloud computing elements. The cross-platform service can be accessed from personal computers, multiple video game consoles, smart devices, and even phones. Each of these devices run their own proprietary operating systems. The service is used by customers to stream movies directly to these devices. When we look at Steam, operated by Valve Corporation, many video game publishers use the service to sell and distribute games online. This distribution model is bound by a thin client which accesses numerous online servers to download, authorize, and distribute computer games.
With cloud computing, we see distinct characteristics:
The service itself is stored and accessed from multiple servers which are typically decentralized and operated at multiple data centers.
The service offered can often exist without a "cloud" element, but the cloud computing model is often cheaper or more reliable.
Why would you want to run things from a cloud computing environment? As we have known for years, leveraging the capability of multiple computers has distinct advantages. For people with low-end computers, cloud computing is an alternative that can allow for instant access to services that they would otherwise not be able to utilize.
For developers and online publishers, cloud computing can be leveraged to distribute elements of websites across multiple locations around the world to make serving web pages faster and more reliable. This can even include database servers.
Developers and businesses can run virtual machines that can utilize the entire cloud space using the Amazon Elastic Compute Cloud. In theory, this means that any number of computer systems can be set up online to serve any role using a finite number of resources which would be defined by how much the developer or business is willing to pay for access to those resources. As databases have become larger, many large corporations have started moving their data to cloud networks, which allow them to utilize a virtually unlimited amount of memory.
The first extremely large and commercially successful cloud computing environment was set up at Amazon. As a result of having a large number of under-utilized servers around the world, they devised a plan to sell off this excess space by developing a resource that could be used for virtually any purpose. Many other vendors offering online backup solutions now rely on Amazon's cloud network to provide their own services to customers.
As these cloud spaces expand, more services can be created that have a useful or meaningful purpose. For any product or service to sell, it must have some kind of intrinsic value. So while I would hesitate to say that "everyone is moving to the cloud", there is certainly a very large role to be played by this technology.
The advantage of existing networks being moved to cloud-based services is immediately apparent when you consider the intrinsic reliability and speed that the Internet now offers. As every single Internet connection has become faster over the years, it becomes more cost effective to host products and services across a vast number of computer systems and services. Whereas a 100MBit connection speed was something only realized on internal networks years ago, the increased access and utilization of the Internet through fiber optic networks is allowing many people to use the Internet with less latency. What that can mean for the future of the Internet is immediate access to products and services, both commercialized and free, from cloud networks.
Looking back at cloud computing's past, we can see where some of the baseline ideas came from. Peer to peer networks offered file sharing through a highly reliable distributed computing model that has only gotten better to this day. By taking this a step further through the use of programming, APIs, and online services, cloud networks are just a step forward in that direction.
Because Google and Yahoo! both host the Yahoo! User Interface Library (YUI), many interactive websites have been using a form of cloud computing from Google or Yahoo internal networks for some time. This can be argued because the library itself is hosted on a distributed, albeit, private network of servers that are accessible around the world. Many other online scripting libraries are now being hosted on cloud networks. However, we should differentiate cloud computing from distributed computing by understanding the role cloud computing plays right now.
Cloud computing is very much a solution for distribution and resource management that would not have been possible without the proliferation of the home computer, and so it is my assertion that most people will not stop using them. How they are designed in the future is a different story.
While many companies have begun planning to offer software licensing on an annual basis through the use of cloud services, it is very likely that the push to this type of business model would be optional. No customer or client of any kind likes to be pushed into a corner, and so whether or not these ideas succeed is up for debate.
In theory, the "computing" in cloud computing is limited only to the Internet connection speed of the cloud network itself as well as the client. As Internet connection speeds approach zero latency, one could run and interact with a full featured operating system far into the future. Until then, you may see online versions of programs that can be "instanced" from a cloud environment while the virtualization of entire computer systems remains primarily to fill server roles.
Ultimately, cloud computing as an option seems to be a very good thing. As an "only choice", I do not believe it would be very well received, unless the service or product being offered is could only exist using this method or the service or product relies solely on the existence of this type of system. While the idea starts with distribution, it does end with computing entirely. The possibilities become endless when you start realizing that latency between computer systems on the Internet will eventually approach zero. Around that time, the difference between an internal and external network begins to blur entirely. The concept of cloud computing is quite sound once you realize how much can ultimately be saved by companies that do not want to operate their own hardware, as well. Whether or not these companies translate that savings to consumers, I believe, will distinguish how quickly cloud computing continues to move forward.