Cloud computing is a model in which resources are remotely accessed via the internet, shared by many users, and automatically allocated or released to meet current requirements. Resources could be compute, storage, memory or networking. Consumers subscribe to a service rather than purchase a dedicated resource. Thus, service abstractions are more important than physical resources or implementations.
Those who provide cloud computing platforms are called cloud providers. Those who avail them are called cloud consumers. Cloud providers simplify the work of consumers by providing and managing essential resources. Consumers can therefore avoid upfront capital expenditure and focus on building their business applications. Providers also offer different service models and cloud configurations to suit different consumer needs.
Cloud computing brings many benefits not possible with traditional models of computing. This is prompting businesses to move to the cloud.
Why do we need cloud computing when there are data centres and web servers?
Data centres and web servers are components of internet computing. A client device could access a remote web server via the internet and avail its services. Data centres brought economies of scale by bringing together many such servers, storage devices, firewalls, routers, and switches. These advances made it possible for enterprises to share data and applications more effectively. However, applications were deployed on a single server or sometimes a cluster of servers. The deployment was fixed. To handle higher loads, either servers had to be upgraded or more servers had to be added manually.
Cloud computing changes all this. Configurations are not fixed. A cluster of servers share the load. Servers are added or removed automatically to serve the current load. Thus, cloud computing exposes the abstraction of a service and hides the underlying physical implementations. Failure of a single server will not bring down the service.
In short, cloud computing brings better flexibility, scalability and reliability that was limited with internet computing.
What are the characteristics of cloud computing?
The National Institute of Standards and Technology (NIST) identified in 2011 the following characteristics of cloud computing:
- On-Demand Self-Service: Without help from the cloud provider, consumers can provision and monitor resources on their own.
- Broad Network Access: Any device from mobile phones to powerful workstations can access cloud capabilities over the network.
- Resource Pooling: Resources are shared among many consumers, making it a multi-tenant model. Consumers have no knowledge of the exact location of these resources but may be able to select the country, state or data centre.
- Rapid Elasticity: Resources can be scaled on demand. Scaling can be vertical or horizontal. Scaling can be manual but often semi-automated or fully automated.
- Measured Service: Provider monitors the use of resources. This is used for billing and optimal use of resources.
Gong et al. identified the following additional characteristics: service-oriented model that provides the right abstractions; loose coupling between client and server, and among applications running on the same platform; virtualization that enables loose coupling; fault tolerance; pay-per-use business model; and ease-of-use via web interfaces.
What are some myths about cloud computing?
Some myths have persisted since the early days:
- Security: On-premises data centres are perceived to be more secure. In reality, cloud platforms implement best-in-class security principles and are maintained by experts. However, security is really a shared responsibility between the cloud vendor and the user.
- Cost: The cloud model is not necessarily costlier. There are "pay-as-you-go" options. Moving to the cloud isn't only about cost savings. Cloud computing opens up other benefits such as business agility.
- Control: Cloud doesn't result in loss of control or vendor lock-in. Different service and deployment models are available.
- Migration: Moving to the cloud might have caused service downtimes in the past. Today, cloud providers offer seamless migration with minimal downtime.
- Value: Cloud isn't just for big companies. Smaller companies may benefit more by saving on infrastructure and its operations. Another myth is that cloud enables only storage, analytics and IT services. Cloud can streamline operations across all business functions including customer service, sales, marketing, manufacturing, and more.
- Strategy: Moving to the cloud doesn't equal digital transformation. It's only the first step. Applications may need to be refactored to leverage the cloud. Strategy should relate to business goals.
Which are the different cloud deployment models?
Cloud computing offers three main deployment options:
- Public: The dominant one. When a user or an enterprise moves to the cloud, their complete infrastructure is fully managed by the cloud provider. Consumers need not purchase or maintain their own infrastructure. It's called "public" because anyone can create an account with the provider. Resources are shared with other users.
- Private: Infrastructure that's dedicated to one consumer. It may be infrastructure belonging to the consumer or rented/leased from a public cloud provider for exclusive use. Existing data centres could become private clouds if operated on the principles of cloud computing, such as virtualization and efficient resource management.
- Hybrid: Combination of both public and private clouds. Consumers might retain critical functions in a private cloud while migrating others to a public cloud. Regulatory compliance and data protection needs make hybrid or private clouds a necessity.
Variations of the above include community cloud (a community of users sharing a private cloud), multicloud (using multiple clouds for redundancy), and polycloud (distributing workloads across multiple clouds).
What are the different service models in cloud computing?
Cloud computing three main service models:
- Infrastructure-as-a-Service (IaaS): Cloud vendor provides shared or dedicated resources for compute, storage and networking. Operating system, middleware, applications, and many others are under the control and management of the consumer. Thus IaaS gives consumers more flexibility but at the expense of more work to configure and operate. This is somewhat similar to how traditional IT departments manage enterprise infrastructure.
- Platform-as-a-Service (PaaS): Developers are the main beneficiaries of this model. The cloud provider manages the hardware and virtualization as in IaaS but also provides OS, middleware and application platforms. This simplifies the work for developers who can focus on building and managing their apps.
- Software-as-a-Service (SaaS): For end users, the entire application is delivered from the cloud. The cloud provider manages all parts of the service from the hardware to the application. Users can access the application via a web browser without installing any dedicated software on their systems. Gmail is an example of SaaS.
What some specialized service models in cloud computing?
The early service models of IaaS, PaaS and SaaS are very much relevant today. However, these have also been specialized to create niche cloud offerings. Nowadays, many services are being offered remotely on the cloud without customers having to manage them in-house. We briefly describe a few of these:
- Backend-as-a-Service (BaaS): Cloud providers take care of storage, database management, user authentication, notifications, hosting, and more. With server-side application logic, BaaS offers more that what PaaS offers. Developers can focus on the frontend user interface and client-side application logic. When applied for mobile applications, it's called Mobile Backend-as-a-Service (MBaas).
- Containers-as-a-Service (CaaS): A subset of IaaS for managing containers and virtualized applications. A further specialization is Kubernetes-as-a-Service (KaaS) if containers are managed using Kubernetes.
- Function-as-a-Service (FaaS): Enables execution of modular units of code (called functions) in response to events. Resources are allocated and billed for only when used, unlike IaaS or PaaS.
- Machine Learning-as-a-Service (MLaaS): Provides data scientists and developers ready-to-use ML models and tools to manage or execute those models.
Others include Database-as-a-Service (DBaaS), Security-as-a-Service (SECaaS), Identity-as-a-Service (IDaaS), Storage-as-a-Service (STaaS), Test Environment-as-a-Service (TEaaS), Desktop-as-a-Service (DaaS), and many more.
Who are the main vendors of cloud computing platforms?
Well-known vendors of public cloud include Alibaba Cloud, Amazon Web Services (AWS), Google Cloud, IBM Cloud, and Microsoft Azure. Canalys estimated that in Q3 2021, 61% of total cloud spending went to just three vendors: AWS, Microsoft Azure and Google Cloud.
Many of the public cloud vendors also offer private/hybrid clouds and software stacks that enable the implementation of private/hybrid clouds. Examples include Red Hat OpenStack, Rackspace, IBM Bluemix Private Cloud, Microsoft Azure Stack, VMware Private Cloud, Amazon Virtual Private Cloud (VPC), Cisco Quickstart Private Cloud, Google VPC, HPE GreenLake, IBM Cloud Satellite and Dell.
Examples of PaaS are IBM SmartCloud Application Services, Google App Engine, AWS Elastic Beanstalk, Apache Stratos, and Magento Commerce Cloud.
There are also plenty of vendors offering specialized service models. For example, FaaS offerings include AWS Lambda, Google Functions, Azure Functions, IBM Cloud Functions, Alibaba Functions, Oracle Functions, and Cloudflare Workers. MLaaS offerings include Amazon (Polly, Sagemaker, Rekognition, etc.), Google Cloud AutoML, Azure Automated ML, IBM Watson Machine Learning, and more. BaaS offerings include AWS Amplify, Google Firebase, Back4App, Parse, Backendless, Pubnub, and more.
What are the typical uses cases of cloud computing?
With IaaS, cloud is useful in offloading the responsibility of installing and operating infrastructure. With PaaS, developers can more quickly build, deploy and monitor their applications from components provided by the cloud provider. With SaaS, users always get the latest versions of the software without any installation from their end. Applications are also becoming cloud-native to get the most out of the cloud.
Streaming video and audio, storing social media content, storing important documents, running banking applications, CRMs and ERPs, and managing logistics are just some examples where cloud can be used.
Test and development environments can be set up in the cloud. This saves capital expenditure, manpower and time. Cloud collaboration and testing also enables faster development cycles.
Cloud is used for data storage. Cloud can also get the best out of both structured and unstructured data via big data analytics. With it's ability to scale dynamically, cloud can perform real-time analytics even when data comes in at varying rates.
Disaster recovery and data backups are further use cases where cloud saves time and cost.
What are some criticisms of cloud computing?
Some of the criticisms are related to the myths surrounding cloud computing. With better understanding, some of these myths can be dispelled. However, there are some valid criticisms.
In the past, users could run applications on standalone systems even without an internet connection. This is not so for cloud-based applications. Good connectivity is essential.
Security is another concern. While cloud providers are continually making operations more secure, the fact that applications are accessible online make them less secure than applications or systems that run offline in isolated environments.
Data mobility can be problem. Getting large volumes of data in and out of cloud systems can be expensive and slower than local access. It's also not easy to move data from one cloud provider to another. In general, there's no easy way to migrate an application from one cloud provider to another due to proprietary interfaces and deployments. Hence, there's a danger of vendor lock-in.
The first packet is sent on the ARPANET (Advanced Research Projects Agency Networks), a network in which a few computers at different geographic locations are interconnected. ARPANET becomes a testing bed for the development of many networking technologies. It would eventually evolve into what would be called the Internet.
The idea of grid computing is proposed in the early 1990s. This is really a metaphor for making computing as accessible as the electric power grid. Grid computing is essentially distributed computing that brings together resources for tasks that would be hard to execute on a single machine alone. As such, it offers an alternate to powerful and specialized supercomputers.
The term cloud computing appears in an internal document at Compaq. This is probably the earliest use of the term. The idea is to enable ISPs to implement and bill for cloud-computing enabled apps. The prediction is that cloud apps would become more important than enterprise apps. The term is borrowed from the word "cloud" that engineers often used for telecom networks. In fact, by early 1990s, patent diagrams had depicted the internet as a cloud.
As a PaaS, Google releases the beta version of Google App Engine. This includes dynamic content serving, persistent storage, automatic scaling, load balancing, use of Google APIs for user authentication and emails, and local development environment. By 2022, Google App Engine supports Python, Java, Node.js, Go, Ruby, PHP, and .NET.
Vaquero et al. attempt to find a suitable definition of cloud computing. They analyse publications from 2008 and identify as many as 22 different definitions. This shows that not everyone agrees what the cloud represents or provides. They propose a definition that includes scalability, virtualization and pay-per-use utility model.
Microsoft makes its cloud platform called Windows Azure generally available. This is initially positioned as a PaaS offering. In subsequent years, this is rearchitected into a IaaS offering and renamed to Microsoft Azure. In 2014, Microsoft embraces open source software, and by 2017 40% of VMs on Azure run on Linux.
The National Institute of Standards and Technology (NIST) publishes a reference model of cloud computing. In a separate document it defines cloud computing as "a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction."
- AWS. 2022. "Types of Cloud Computing." AWS. Accessed 2022-01-27.
- Armbrust, Michael, Armando Fox, Rean Griffith, Anthony D. Joseph, Randy Katz, Andy Konwinski, Gunho Lee, David Patterson, Ariel Rabkin, Ion Stoica, and Matei Zaharia. 2010. "A View of Cloud Computing." Comms. of the ACM, vol. 53, no. 4, pp. 50-58, April. Accessed 2022-01-27.
- BasuMallick, Chiradeep. 2021. "Top 10 Private Cloud Hosting Solution Providers in 2021." Toolbox, July 26. Updated 2021-07-28. Accessed 2022-01-29.
- Batschinski, George. 2019. "BaaS Providers - 20 Backend Platforms." Blog, Back4App, September 30. Updated 2021-12-22. Accessed 2022-01-29.
- Bitner, Bill and Susan Greenlee. 2012. "z/VM – A Brief Review of Its 40 Year History." IBM Corporation. Accessed 2022-01-29.
- Bokhari, Mohammad Ubaidullah, Qahtan Makki, and Yahya Kord Tamandani. 2018. "A Survey on Cloud Computing." In: Aggarwal V., Bhatnagar V., Mishra D. (eds), Big Data Analytics. Advances in Intelligent Systems and Computing, vol. 654. Springer, Singapore. doi: 10.1007/978-981-10-6620-7_16. Accessed 2022-01-27.
- Canalys. 2021. "Global cloud services spend hits record US$49.4 billion in Q3 2021." Press release, Canalys, October 28. Accessed 2022-01-29.
- Cisco. 2022. "What Is a Data Center?" Cisco. Accessed 2022-01-29.
- Cloudflare. 2022a. "What is BaaS? | Backend-as-a-Service vs. serverless." Serverless Glossary, Cloudflare. Accessed 2022-01-27.
- Cloudflare. 2022b. "What is Function-as-a-Service (FaaS)?." Serverless Glossary, Cloudflare. Accessed 2022-01-27.
- Featherly, K. 2016. "ARPANET." Encyclopedia Britannica, May 11. Updated 2021-03-23. Accessed 2022-01-29.
- Forbes India. 2019. "7 cloud computing myths, debunked." One CEO Club, Forbes India, March 29. Accessed 2022-01-27.
- Furht, Borko, and Armando Escalante. 2010. "Handbook of Cloud Computing." Springer Publishing Company. doi: 10.5555/1941093. Accessed 2022-01-27.
- Gartner. 2019. "The Top 10 Cloud Myths." Gartner, November 5. Accessed 2022-01-27.
- GlobalDots. 2013. "Types of Cloud Computing." Blog, GlobalDots, March 19. Accessed 2022-01-27.
- Gong, Chunye, Jie Liu, Qiang Zhang, Haitao Chen, and Zhenghu Gong. 2010. "The Characteristics of Cloud Computing." 39th International Conference on Parallel Processing Workshops, IEEE Computer Society, pp. 275-279. Accessed 2022-01-27.
- Google Cloud. 2022. "Choose an App Engine environment." Documentation, App Engine, Google Cloud, January 25. Accessed 2022-01-30.
- Gu, Mark, Rich Isenberg, Leandro Santos, and Isabelle Tamburro. 2020. " Debunking seven common myths about cloud." McKinsey, October 5. Accessed 2022-01-27.
- Hossain, Shamim. 2014. "Cloud computing basics." Blog, IBM, February 4. Accessed 2022-01-27.
- IBM. 2019. "DBaaS (Database-as-a-Service)." IBM Cloud Learn Hub, IBM, November 14. Accessed 2022-01-29.
- IBM. 2020. "Top 7 Most Common Uses of Cloud Computing." Blog, IBM, July 20. Accessed 2022-01-27.
- IBM. 2021. "What is cloud hosting?" IBM Cloud Learn Hub, IBM, April 6. Accessed 2022-01-27.
- Janakiram MSV. 2020. "A Look Back At Ten Years Of Microsoft Azure." Forbes, February 3. Accessed 2022-01-30.
- LIMSWiki. 2016. "Grid computing." LIMSWiki, February 12. Accessed 2022-01-30.
- LaunchDarkly. 2021. "Cloud Deployment Models: Explaining and Comparing the 5 Main Models." Blog, LaunchDarkly, May 14. Accessed 2022-01-27.
- Lavinski, Sarah. 2019. "10 Disadvantages & Risks of Cloud Computing." FAUN Publication, on Medium, April 4. Accessed 2022-01-27.
- Liu, Fang, Jin Tong, Jian Mao, Robert Bohn, John Messina, Lee Badger, and Dawn Leaf. 2011. "NIST Cloud Computing Reference Architecture." NIST Special Publication 500-292, National Institute of Standards and Technology, September. Accessed 2022-01-27.
- McDonald, Paul. 2008. "Introducing Google App Engine + our new blog." Blog, Google App Engine, April 7. Accessed 2022-01-30.
- Mell, Peter, and Timothy Grance. 2011. "The NIST Definition of Cloud Computing." NIST Special Publication 800-145, National Institute of Standards and Technology, September. Accessed 2022-01-29.
- Microsoft Azure. 2022. "What is cloud computing? A beginner's guide." Microsoft Azure. Accessed 2022-01-27.
- Neto, Maximilliano Destefani. 2014. "A brief history of cloud computing." Blog, IBM, March 18. Accessed 2022-01-27.
- Nugara, Arlan. 2017. "Transitioning from On-Prem Virtual Machines to More Cost Effective Azure Cloud Models." Arlan Blogs, June 28. Accessed 2022-01-27.
- Okta. 2022. "What is IDaaS? Understanding Identity as a Service and Its Applications." Okta. Accessed 2022-01-27.
- Opara-Martins, Justice, Reza Sahandi, and Feng Tian. 2016. "Critical analysis of vendor lock-in and its impact on cloud computing migration: a business perspective." J. of Cloud Computing, 5, Article no. 4. Accessed 2022-01-29.
- Osborne, Haley. 2020. "Web Hosting vs. Cloud Hosting: What’s the Difference?" Blog, Cloud Academy, July 6. Accessed 2022-01-27.
- Panwar, Gopal Singh. 2020. "Best Machine Learning as a Service Platforms (MLaaS) That You Want to Check as a Data Scientist." Blog, Neptune.ai, November 13. Updated 2021-11-15. Accessed 2022-01-27.
- Proband. 2022. "What is a cloud server and how does it work?" IT Services, Proband. Accessed 2022-01-27.
- Putano, Ben. 2020. "Kubernetes as a Service: Implementing KaaS." Stackify, January 8. Accessed 2022-01-27.
- Raza, Muhammad. 2021. "Containers as a Service (CaaS) Explained." Blog, BMC, April 23. Accessed 2022-01-27.
- Red Hat. 2018. "Types of cloud computing." Red Hat, March 15. Accessed 2022-01-27.
- Regalado, Antonio. 2011. "Who Coined 'Cloud Computing'?" MIT Technology Review, October 31. Accessed 2022-01-27.
- Rooms, Brecht De. 2020. "A Comparison of Serverless Function (FaaS) Providers." Blog, Fauna, February 6. Accessed 2022-01-29.
- Salesforce. 2022. "What is Cloud Computing? Types and Examples." Salesforce. Accessed 2022-01-27.
- Schouten, Edwin. 2012. "Rapid elasticity and the cloud." Blog, IBM, September 12. Accessed 2022-01-29.
- Thomas, Dominic. 2020. "Multi-Cloud & Poly-Cloud. What are the differences?" LinkedIn Pulse, November 30. Accessed 2022-01-27.
- Vaquero, Luis M., Luis Rodero-Merino, Juan Caceres, and Maik Lindner. 2009. "A break in the clouds: towards a cloud definition." ACM SIGCOMM Computer Communication Review, vol. 39, no. 1, pp. 50-55, January. Accessed 2022-01-29.
- Wikipedia. 2022. "Cloud computing." Wikipedia, January 11. Accessed 2022-01-27.
- Yusov, Kirill. 2020. "Different Types of Cloud Service Models." Blog, Jelvix, September 29. Accessed 2022-01-27.
- Dowd, Art. 2018. "Cloud Computing Primer." COLLABORATE18, April 25. Accessed 2022-01-27.
- BSA. 2017. "Moving to the Cloud: A Primer on Cloud Computing." BSA, The Software Alliance, December 12. Updated 2018-01-19. Accessed 2022-01-27.
- Grossman, Robert L. 2009. "The Case for Cloud Computing." IT Pro, IEEE Computer Society, pp. 23-27, March/April. Accessed 2022-01-27.
- Marston, Sean, Zhi Li, Subhajyoti Bandyopadhyay, Juheng Zhang, and Anand Ghalsasi. 2011. "Cloud computing — The business perspective." Decision Support Systems, vol. 51, no. 1, pp. 176-189. doi: 10.1016/j.dss.2010.12.006. Accessed 2022-01-27.
- Wang, Lizhe, Gregor von Laszewski, Marcel Kunze, and Jie Tao. 2010. "Cloud Computing: A Perspective Study." New Gener. Comput., vol. 28, pp. 137-146. doi: 10.1007/s00354-008-0081-5. Accessed 2022-01-27.
- Varghese, Blesson, and Rajkumar Buyya. 2017. "Next Generation Cloud Computing: New Trends and Research Directions." arXiv, v3, September 8. Accessed 2022-01-27.