In spite of any issues and controversy surrounding cloud computing, the fact remains that adoption rates continue to grow. Every day, more and more IT departments around the world are deploying applications on the cloud, or using cloud services to improve their day-to-day operations. The major lure of cloud computing for most companies is the possibility to reduce costs: if I move to the cloud, I’ll only pay for the servers I use, and I won’t need so many IT people in my company, so I’ll be able to save money. I’ve talked about why this is a myth previously, and this is a most unfortunate myth, because by focusing on it, companies lose sight of one of the most important benefits that the cloud can bring: enabling increased innovation.
The explosion we’ve seen over the past year in the number of companies that offer services related to Big Data is no coincidence. These companies are only able to deliver the services they promise and to process the amount of data they do by leveraging cloud computing. We can definitely say that hundreds, if not thousands, of companies that operate today owe their existence to cloud computing. Without the reduction in need for capital investment and the access to virtually unlimited processing power delivered by the cloud, they simply would not be here. The increase in innovation brought on by the cloud does not have to be limited to high-tech startups: IT departments from all types of companies can leverage the cloud for benefits beyond reducing costs.
Speed and agility
In our context, speed means delivery time: the time it takes to develop, test, and deploy applications, systems, or services; and agility means reaction time: how long it takes to make (once again develop, test and deploy) changes to existing applications, systems or services. They are obviously necessary for innovation: speed of delivery because innovation is as much about the delivery of the finished product as it is about the originality or inventiveness of it; and agility because innovation is an iterative process, that requires many tries and failures in order to get right.
These are two points where the cloud shines. In terms of speed, the cloud enables developers to test their code in copies of the existing production environment, which makes the tests more efficient and effective. It also enables the construction of complex testing environments (hundreds of clients connecting to a server performing requests, for instance), which was much harder to do under traditional circumstances. The cloud also enables much faster deployment: any IT department can leverage the power of virtual machines and dynamic addressing to “promote” machine images from testing to production much more easily than having to go through installation or update routines, not to mention purchasing new servers.
The same points that apply to speed also apply to agility. The ability to quickly replicate an existing environment makes it much easier for IT teams to try multiple solutions to solve any problem that might come up, regardless of it being on the development or infrastructure end. By the same measure, updates can be quickly deployed by using virtual addressing: instead of applying rolling updates - the usual method in large-scale deployments - simply create a replica production environment with the applied updates and flip the address to it.
Computing resources are often the defining constraint of any IT project. With enough computing resources, almost anything becomes possible. Unfortunately, these resources usually cost a lot of money, and, worst of all, end up being underused. Any IT project that relies on internal infrastructure must define the resource requirements based on peak loads, but in most cases, peak loads are rarely reached. This means we end up with a lot of waste, or with a system that doesn’t perform properly under stress.
Adding capacity to an existing system can be just as stressful. New servers need to be purchased and installed, all software needs to be installed and configured, and there are many places where things can simply go wrong. These points conspire to make IT departments look bad in the eyes of users, but they are both points where the cloud can help.
Let’s say a user wants to run a complex, spur-of-the-moment batch information processing job. It’s not something recurrent, but it is urgent. With a traditional, internal infrastructure, the IT department would need to check if there was an available server to run the job, configure it, install any required application packages, which may take a couple of days in the best of cases. On the cloud, IT can simply spin up a server (ideally from a machine image that already had the required packages installed), run the job, and shut the server down once it’s done.
The dynamic elasticity of cloud computing allows IT to stop worrying so much about the peak loads and resource constraints, and to focus instead on what should always be the main priority: what the business needs. While it is not a panacea, the cloud can enable small and medium companies to execute IT projects that, up to a few years ago, only large multinationals could think about. While any IT department should be looking at cloud computing because of its many benefits, for small and medium companies it can be the leverage they need to achieve true innovation.