Cloud computing is a general term for anything that involves delivering hosted services over the internet. These services are divided into three main categories: infrastructure as a service (IaaS), platform as a service (PaaS) and software as a service (SaaS).
A cloud can be private or public. A public cloud sells services to anyone on the internet. A private cloud is a proprietary network or a data center that supplies hosted services to a limited number of people, with certain access and permissions settings. Private or public, the goal of cloud computing is to provide easy, scalable access to computing resources and IT services.
Cloud infrastructure involves the hardware and software components required for proper implementation of a cloud computing model. Cloud computing can also be thought of as utility computing, or on-demand computing.
The name cloud computing was inspired by the cloud symbol that's often used to represent the internet in flowcharts and diagrams.
How does cloud computing work?
Cloud computing works by allowing client devices to access data over the internet, from remote servers, databases and computers.
An internet network connection links the front end (includes the accessing client device, browser, network and cloud software applications) with the back end, which consists of databases, servers and computers). The back end functions as a repository, storing data that is accessed by the front end.
Communications between the front and back ends are managed by a central server. The central server relies on protocols to facilitate the exchange of data. The central server uses both software and middleware to manage connectivity between different client devices and cloud servers. Typically, there will be a dedicated server for each individual application.
Cloud computing examples
Examples of cloud computing include:
Google Docs, Microsoft Office 365: Users can access Google Docs and Microsoft Office 365 through the internet. Users can be more productive because they can access work presentations and spreadsheets stored in the cloud at any time from anywhere on any device.
Email, Calendar, Skype, WhatsApp: Emails, calendars, Skype and WhatsApp take advantage of the cloud's ability to provide users with access to data remotely so they can access their personal data on any device, whenever and wherever they want.
Zoom: Zoom is a cloud-based software platform for video and audio conferencing that records meetings and saves them to the cloud, enabling users to access them anywhere and at any time.
AWS Lambda: Lambda allows developers to run code for applications or back-end services without having to provision or manage servers. The pay-as-you-go model constantly scales with an organization to accommodate real-time changes in data usage and data storage.
Cloud computing vs. traditional web hosting
A cloud service has three distinct characteristics that differentiate it from traditional web hosting:
- Users can access large amounts of computing power on demand. It is typically sold by the minute or the hour.
- It is elastic -- a user can have as much or as little of a service as they want at any given time.
- The service is fully managed by the provider (the consumer needs nothing but a personal computer and internet access). Significant innovations in virtualization and distributed computing, as well as improved access to high-speed internet, have accelerated interest in cloud computing.
Cloud computing characteristics
Some of the main benefits of cloud computing are:
Self-service provisioning: End users can spin up compute resources for almost any type of workload on demand. An end user can provision computing capabilities, such as server time and network storage, eliminating the traditional need for IT administrators to provision and manage compute resources.
Elasticity: Companies can freely scale up as computing needs increase, and scale down again as demands decrease. This eliminates the need for massive investments in local infrastructure, which may or may not remain active.
Pay per use: Compute resources are measured at a granular level, enabling users to pay only for the resources and workloads they use.
Migration flexibility: Organizations can move certain workloads to or from the cloud -- or to different cloud platforms -- as desired or automatically -- for better cost savings, or to use new services as they emerge.
Broad network access: A user can access cloud data or upload data to the cloud from anywhere with an internet connection and using any device.
Multi-tenancy and resource pooling: Multi-tenancy lets numerous customers share the same physical infrastructures or the same applications, yet still retain privacy and security over their own data. With resource pooling, cloud providers service numerous customers from the same physical resources. The resource pools of the cloud providers should be very large and flexible enough so they can service the requirements of multiple customers.
Cloud computing benefits
Cloud computing boasts several attractive benefits for businesses and end users. Some of the main benefits of cloud computing are:
Cost savings: Using cloud infrastructure can reduce costs, as organizations don't have to spend massive amounts of money buying and maintaining equipment. This reduces their capital expenditure costs -- as they don't have to invest in hardware, facilities, utilities or building large data centers to accommodate their growing businesses. Additionally, companies don't need large IT teams to handle cloud data center operations because they can rely on the expertise of their cloud providers' teams. Cloud computing also cuts costs related to downtime. Since downtime rarely happens in cloud computing, companies don't have to spend time and money to fix any issues that may be related to downtime.
Mobility: Storing information in the cloud means that users can access it from anywhere with any device with just an internet connection. That means users don't have to carry around USB drives, an external hard drive or multiple CDs to access their data. Users can access corporate data via smartphones and other mobile devices, enabling remote employees to stay up to date with co-workers and customers. End users can easily process, store, retrieve and recover resources in the cloud. In addition, cloud vendors provide all the upgrades and updates automatically, saving time and effort.
Disaster recovery: All organizations worry about data loss. Storing data in the cloud guarantees that users can always access their data even if their devices, e.g., laptops or smartphones, are inoperable. With cloud-based services, organizations can quickly recover their data in the event of emergencies, such as natural disasters or power outages.
Cloud computing challenges
Despite the clear upsides to relying on cloud services, cloud computing carries its own challenges for IT professionals:
- Cloud security -- often considered the greatest challenge facing cloud computing. When relying on the cloud, organizations risk data breaches, hacking of APIs and interfaces, compromised credentials and authentication issues. Furthermore, there is a lack of transparency regarding how and where sensitive information entrusted to the cloud provider is handled.
- Cost management -- pay-as-you-go subscription plans for cloud use, along with fluctuating workloads, can make it tough to define and predict final costs.
- Lack of resources and expertise -- with cloud-supporting technologies rapidly advancing, organizations are struggling to keep up with the growing demand for tools and employees with the proper skill sets and knowledge.
- IT governance -- cloud computing can make IT governance difficult, as there is no control over provisioning, de-provisioning and management of infrastructure operations. This can make it challenging to properly manage risks, IT compliance and data quality.
- Compliance with industry laws -- when transferring data from on-premises local storage into cloud storage, it can be difficult to manage compliance with industry regulations through a third party.
- Management of multiple clouds -- multi-cloud deployments can disjoint efforts to address more general cloud computing challenges.
- Performance -- largely beyond the control of the organization contracting cloud services with a provider. Outages can interfere with productivity and disrupt business processes if organizations are not prepared with contingency plans.
- Building a private cloud -- this can be a daunting task for IT departments.
- Cloud migration -- the process of moving applications and other data to a cloud infrastructure oftentimes causes complications. Migration projects frequently take longer than anticipated and go over budget.
- Vendor lock-in -- oftentimes, switching between cloud providers can cause significant issues. This includes technical incompatibilities, legal limitations and incurring substantial costs.
Cloud computing deployment models
Private cloud services are delivered from a business's data center to internal users. With a private cloud, an organization builds and maintains its own underlying cloud infrastructure. This model offers the versatility and convenience of the cloud, while preserving the management, control and security common to local data centers. Internal users may or may not be billed for services through IT chargeback. Common private cloud technologies and vendors include VMware and OpenStack.
In the public cloud model, a third-party cloud service provider delivers the cloud service over the internet. Public cloud services are sold on demand, typically by the minute or hour, though long-term commitments are available for many services. Customers only pay for the CPU cycles, storage or bandwidth they consume. Leading public cloud service providers include Amazon Web Services (AWS), Microsoft Azure, IBM and Google Cloud Platform.
A hybrid cloud is a combination of public cloud services and an on-premises private cloud, with orchestration and automation between the two. Companies can run mission-critical workloads or sensitive applications on the private cloud and use the public cloud to handle workload bursts or spikes in demand. The goal of a hybrid cloud is to create a unified, automated, scalable environment that takes advantage of all that a public cloud infrastructure can provide, while still maintaining control over mission-critical data.
In addition, organizations are increasingly embracing a multi-cloud model, or the use of multiple IaaS providers. This enables applications to migrate between different cloud providers or to even operate concurrently across two or more cloud providers.
Organizations adopt multi-cloud for various reasons. For example, they could do so to minimize the risk of a cloud service outage or to take advantage of more competitive pricing from a particular provider. Multi-cloud implementation and application development can be a challenge because of the differences between cloud providers' services and application program interfaces (API).
Multi-cloud deployments should become easier, however, as providers' services and APIs converge and become more standardized through industry initiatives such as the Open Cloud Computing Interface.
A community cloud, which is shared by several organizations, supports a particular community that shares the same concerns, (e.g., the same mission, policy, security requirements and compliance considerations). A community cloud is either managed by these organizations or a third-party vendor and can be on or off premises.
Types of cloud computing services
As mentioned previously, cloud computing can be separated into three general service delivery categories:
Infrastructure as a service. IaaS providers, such as AWS, supply a virtual server instance and storage, as well as APIs that let users migrate workloads to a virtual machine (VM). Users have an allocated storage capacity and can start, stop, access and configure the VM and storage as desired. IaaS providers offer small, medium, large, extra-large and memory- or compute-optimized instances, in addition to allowing customization of instances, for various workload needs.
Platform as a service. In the PaaS model, cloud providers host development tools on their infrastructures. Users access these tools over the internet using APIs, web portals or gateway software. PaaS is used for general software development, and many PaaS providers host the software after it's developed. Common PaaS providers include Salesforce's Lightning Platform, AWS Elastic Beanstalk and Google App Engine.
Software as a service. SaaS is a distribution model that delivers software applications over the internet; these applications are often called web services. Users can access SaaS applications and services from any location using a computer or mobile device that has internet access. In the SaaS model, users gain access to application software and databases. One common example of a SaaS application is Microsoft Office 365 for productivity and email services.
Cloud computing use cases
The most common use cases for cloud computing services are:
- Testing and development -- ready-made, tailored environments can expedite timelines and milestones.
- Big data analytics -- remote data centers through cloud storage are flexible and scalable, and can provide valuable data-driven insights.
- IaaS -- allows companies to host IT infrastructures and access compute, storage and network capabilities in a scalable manner. Pay-as-you-go subscription models can help companies save on upfront IT costs.
- PaaS -- platform as a service can help companies develop, run and manage applications in an easier and more flexible way, at a lower cost, than maintaining a platform on premises. PaaS services can also increase development speed for applications, and allows for higher level programming.
- Hybrid cloud -- organizations will have the option to use the appropriate cloud (private or public) for different workloads and applications, to optimize cost and efficiency according to the circumstance.
- Multi-cloud -- using multiple different cloud services from separate cloud providers can help subscribers find the best cloud service fit for diverse workloads with specific requirements.
- Storage -- large amounts of data can be stored remotely and accessed easily. Clients will only have to pay for storage that they actually use.
- Disaster recovery -- offers faster recovery than traditional on-premises disaster recovery. Furthermore, it is offered at lower costs.
- Data backup -- cloud backup solutions are generally easier to use. Users do not have to worry about availability and capacity, and the cloud provider manages data security.
Cloud computing vendors
The cloud service market has no shortage of providers. The three largest public cloud service providers, who have established themselves as dominant fixtures in the industry, are:
Other major cloud service providers include:
- Oracle Cloud
When considering a cloud service vendor, certain considerations should be taken. Though cloud services typically rely on a pay-per-use model, different providers often have variations in their pricing plans to take into account. Furthermore, if the cloud provider will be storing sensitive data, physical location of the provider's servers should also be considered.
Naturally, reliability and security should be top priorities. A provider's service-level agreement (SLA) should specify a level of service uptime that is satisfactory to client business needs. When considering different cloud vendors, close attention should be given to what technologies are used to secure sensitive information.
Cloud computing security
Security remains a primary concern for businesses contemplating cloud adoption -- especially public cloud adoption. Public cloud service providers share their underlying hardware infrastructure between numerous customers, as the public cloud is a multi-tenant environment. This environment demands significant isolation between logical compute resources. At the same time, access to public cloud storage and compute resources is guarded by account login credentials.
Many organizations bound by complex regulatory obligations and governance standards are still hesitant to place data or workloads in the public cloud for fear of outages, loss or theft. However, this resistance is fading, as logical isolation has proven reliable, and the addition of data encryption and various identity and access management tools have improved security within the public cloud.
History of cloud computing
The history and evolution of cloud computing dates back to the 1950s and 1960s.
In the 1950s, companies started to use large mainframe computers, but it was too expensive to buy a computer for each user. So, during the late 1950s and early 1960s, a process called time-sharing was developed to make more efficient use of expensive processor time.
Time-sharing enabled users to access numerous instances of computing mainframes simultaneously, maximizing processing power and minimizing downtime. This idea represents the first use of shared computing resources, the foundation of modern cloud computing.
The origins of delivering computing resources using a global network are for the most part rooted in 1969 -- when American computer scientist J. C. R. Licklider helped create the Advanced Research Projects Agency Network, the so-called precursor to the internet. Licklider's goal was to connect computers across the globe in a way that would allow users to access programs and information from any location.
In the 1970s, cloud computing began taking a more tangible shape with the introduction of the first virtual machines, allowing users to run more than one computing system within a single physical setup. The functionality of these virtual machines led to the concept of virtualization, which had a major influence on the progress of cloud computing.
In the 1970s and 1980s, Microsoft, Apple and IBM developed technologies that enhanced the cloud environment and advanced the use of the cloud server and server hosting. Then in 1999, Salesforce became the first company to deliver business applications from a website.
In 2006, Amazon launched Amazon Web Services (AWS), providing such services as computing and storage in the cloud. Following suit, the other major tech players, including Microsoft and Google, subsequently launched their own cloud offerings to compete with AWS.
Future of cloud computing
Over 30 percent of enterprise IT decision-makers identified public cloud as their top priority in 2019, according to the "RightScale 2019 State of the CloudReport." Still, enterprise adoption of the public cloud, especially for mission-critical applications, hasn't been happening as quickly as many experts had predicted.
In 2020, however, organizations are likely to migrate mission-critical workloads to public clouds. One of the reasons for this shift is that business executives who want to ensure that their companies can compete in the new world of digital transformation are demanding the public cloud.
Business leaders are also looking to the public cloud to take advantage of its elasticity, modernize internal computer systems and empower critical business units and their DevOps teams.
Additionally, cloud providers, such as IBM and VMware, are concentrating on meeting the needs of enterprise IT, in part by removing the barriers to public cloud adoption that caused IT decision-makers to shy away from fully embracing the public cloud previously.
Generally, when contemplating cloud adoption, many enterprises have been mainly focused on new cloud-native applications. They haven't been willing to move their most mission-critical apps into the public cloud. However, these enterprises are now beginning to realize that the cloud is ready for the enterprise if they select the right cloud platforms, i.e., those that have a history of serving the needs of the enterprise.
Emerging cloud technologies and services
Due to competition, providers must constantly expand their services to differentiate their services. This has led public IaaS providers to offer far more than common compute and storage instances.
For example, serverless, or event-driven computing is a cloud service that executes specific functions, such as image processing and database updates. Traditional cloud deployments require users to establish a compute instance and load code into that instance. Then, the user decides how long to run -- and pay for -- that instance.
With serverless computing, developers simply create code, and the cloud provider loads and executes that code in response to real-world events, so users don't have to worry about the server or instance aspect of the cloud deployment. Users only pay for the number of transactions that the function executes. AWS Lambda, Google Cloud Functions and Azure Functions are examples of serverless computing services.
Public cloud computing also lends itself well to big data processing, which demands enormous compute resources for relatively short durations. Cloud providers have responded with big data services, including Google BigQuery for large-scale data warehousing and Microsoft Azure Data Lake Analytics for processing huge data sets.
Another crop of emerging cloud technologies and services relates to artificial intelligence (AI) and machine learning. These technologies provide a range of cloud-based, ready-to-use AI and machine learning services for client needs. Amazon Machine Learning, Amazon Lex, Amazon Polly, Google Cloud Machine Learning Engine and Google Cloud Speech API are examples of these services.