An extraordinary revolution has taken place in the world of technology—and it has fundamentally shifted the way humans interact with the world around them. The revolution is cloud computing, something that strikes many as an impenetrable cacophony of industry buzzwords and collection of obscure feature sets, but which has unlocked the power of age-defining capabilities from person-to-person chat to sports medicine optimization to basic science.
So what on earth is cloud computing? At the highest level, it is simply the idea that, instead of maintaining software on physical servers, to which users connect, the software is, instead, maintained on shared servers, the location, number, and management of which are both unknown and unimportant to the organization paying for them. Or, as Wikipedia would have it:
"Cloud computing is the on-demand availability of computer system resources, especially data storage and computing power, without direct active management by the user."
Providing the capabilities of cloud computing has been a goal of the Information Technology industry for decades. Indeed, there is an argument that cloud computing itself represents not a wholly new concept or environment, but rather the third wave of a movement that started some time ago:
In this first iteration, companies provided access to the server-side of their classic client/server-architected software programs, eliminating the need for organizations to run their own physical machines. Growing out of a concept known as service bureaus, which were championed in the 1960s and 1970s, ASPs grew quickly in the 1990s, as access to the Internet soared. During this time, it also became realistic to imagine using a server that was not within an organization's own physical purview. Unlike cloud computing, in the ASP model, there was generally a one-to-one relationship between a customer and an ASP-managed server. In other words, there was still a specific server machine where the software resided, and it wasn't managed by the organization to whom it was dedicated.
Bursting out of the ASP phase came various things as a service, initially Software-as-a-Service. The idea was that, instead of a client organization buying software and having someone else manage it (the ASP model), the client organization would instead rent access to that software from the manufacturer, who would deliver access to it from their servers. For instance, customers of Salesforce.com buy neither server software, nor maintain any infrastructure to run any server software, but connect their clients to remote software running on an infrastructure owned and managed by Salesforce.com. In this phase, organizations started to get used to the idea that they did not need to be in physical control of all their IT assets. This step was essential for organizations to get accustomed to the other as-a-Service offerings that came along, including Platform-as-a-Service, Managed-Software-as-a-Service, and more. It also set the stage for phase three, the spot in which we find ourselves today.
Cloud computing takes the best of the first two phases (renting software rather than buying it and renting server resources rather than buying them) and combines them into a comprehensive whole. An organization dedicated to total cloud computing would never buy a single server machine but would rent resources from one of the cloud computing vendors and have users connect across the Internet. The software to which the users would connect would either be rented and hosted on organizationally-managed (but still cloud-resident) virtual servers or rented directly from a vendor and delivered transparently through a unified Internet interface. Indeed, in today's IT environment, even an application that is built entirely by an organization for internal use will almost certainly access third party services and capabilities by reaching across the cloud using Application Programming Interfaces (APIs).
Cloud computing is fundamentally defined by its abstraction not only of software ownership, but also of infrastructure and integration to the functionally infinite array of third party services available to system builders and administrators.
Cloud computing is more than merely accessing compute resources across the Internet instead of from dedicated machines in a server farm—it is a new architectural paradigm, even a new philosophical approach to building, managing, and evolving systems. The rise of cloud computing is changing the way we interact with the world. We can define cloud computing in more theoretical terms, such as:
The infrastructural upgrade that obsoletes traditional software architectures, and powers the modern distributed models. Once, all the subroutines of a software program were resident in a single notional location, managed by a single team. To add new and exciting features, that singular group of individual programmers would need to ideate, design, program, and release new code. In a cloud computing world, new features can be acquired at low cost (especially low capital expense) through connection to APIs and third-party services. These features deliver a tightly-controlled time-to-market and a significantly accelerated path to completion for sophisticated product roadmaps.
Release from the restrictions of the carefully-managed data center, and a gold-edged invitation to the latest in innovation, without loss of security. Security concerns contributed to initial reservations about making use of shared, public infrastructure. With data leaving the physical control of the organization that owned it, organizations were concerned that it would lead to a higher risk of breaches and unauthorized access. A couple of decades of experience have shown that cloud computing providers often provide superior security records than the average corporation, meaning that cloud computing helps reduce breach risks rather than increasing them. With security eliminated from the equation as a concern, committing to using the cloud is a more straightforward decision.
The victory of operational expense-based planning over capital expense-based planning. Before the broad availability of cloud computing, organizations seeking to roll out sophisticated IT solutions would need to invest in physical infrastructure on which their shiny new software could run. Due to financial limitations, projects that might have transformed businesses remained on the shelf, awaiting the release of capital. In a cloud computing world, however, there is no capital expense: simply spin up a set of virtual servers, and pay only for the resources needed to deliver the system to whatever size audience opts to use it.
451 Research estimates that 90% of all companies in the US use cloud computing to some degree, the market for cloud computing services is expected to reach a full $300 billion in 2020, and Cisco estimates that by 2021 some 94% of all computing will take place in a cloud environment. Meanwhile, the sector has already consolidated behind the behemoths, with some ⅔ of the revenue for platform cloud computing accruing to either Amazon Web Services, Microsoft Azure or Google Cloud; and the vast majority of the revenue for private clouds being collected by IBM, Rackspace, and NTT.
Cloud computing, defined by dictionary.com as "the practice of using a network of remote servers hosted on the Internet to store, manage, and process data, rather than a local server or a personal computer," is transforming our world. Like it or not, it's here to stay.
There are common underlying technologies for a dating app, and in this post, we’ll talk about the major technologies and designs...