Difference between revisions of "User:Shawndouglas/sandbox/sublevel1"

From LIMSWiki
Jump to navigationJump to search
Line 1: Line 1:
Cloud computing has its strongest origins in the "web services" phase of internet development. In November 2000, Mind Electric CEO and [[distributed computing]] visionary Graham Glass, writing for IBM, described web services as "building blocks for creating open distributed systems" that "allow companies and individuals to quickly and cheaply make their digital assets available worldwide," while prognosticating that web services "will catalyze a shift from client-server to peer-to-peer architectures."<ref name="GlassTheWeb00">{{cite web |url=http://www-106.ibm.com/developerworks/library/ws-peer1.html |archiveurl=https://web.archive.org/web/20010424015036/http://www-106.ibm.com/developerworks/library/ws-peer1.html |title=The Web services (r)evolution, Part 1: Applying Web services to applications |author=Glass, G. |work=IBM developerWorks |publisher=IBM |date=November 2000 |archivedate=24 April 2001 |accessdate=21 August 2021}}</ref> At that point, the likes of Microsoft and IBM were already developing toolkits for creating and deploying web services<ref name="GlassTheWeb00" />, with IBM releasing an initial high-level report in May 2001 on IBM's web services architecture approach. In that paper, web services were described by its author Heather Kreger as allowing "companies to reduce the cost of doing e-business, to deploy solutions faster, and to open up new opportunities," while also allowing "applications to be integrated more rapidly, easily, and less expensively than ever before."<ref name="KregerWeb01">{{cite web |url=https://www.researchgate.net/profile/Heather-Kreger/publication/235720479_Web_Services_Conceptual_Architecture_WSCA_10/links/563a67e008ae337ef2984607/Web-Services-Conceptual-Architecture-WSCA-10.pdf |format=PDF |title=Web Services Conceptual Architecture (WSCA 1.0) |author=Kreger, H. |date=May 2001 |publisher=IBM Software Group |accessdate=21 August 2021}}</ref>
You've probably heard terms like "software as a service" and "public cloud," and you may very well be familiar with their significance already. However, let's briefly run through the terminology associated with cloud services and deployments, as that terminology gets used abundantly, and it's best we're all clear on it from the start. Additionally, the cloud computing paradigm is expanding into areas like "hybrid cloud" and "serverless computing," concepts which may be new to many.


Here's a recap of thinking on web services at the turn of the century:
Mentioned earlier was NIST's 2011 definition of cloud computing. When that was published, NIST defined three service models and four deployment models (Table 1)<ref name="MellTheNIST11">{{cite web |url=https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-145.pdf |format=PDF |title=The NIST Definition of Cloud Computing |author=Mell, P.; Grance, T. |publisher=NIST |date=September 2011 |accessdate=21 August 2021}}</ref>:


* "[act as] building blocks for creating open distributed systems"<ref name="GlassTheWeb00" />
{| class="wikitable" border="1" cellpadding="5" cellspacing="0" width="70%"
* "quickly and cheaply make ... digital assets available worldwide"<ref name="GlassTheWeb00" />
|-
* "catalyze a shift from client-server to peer-to-peer architectures"<ref name="GlassTheWeb00" />
  | style="background-color:white; padding-left:10px; padding-right:10px;" colspan="2"|'''Table 1.''' The three service models and four deployment models for cloud computing, as defined by the National Institute of Standards and Technology (NIST) in 2011<ref name="MellTheNIST11" />
* "reduce the cost of doing e-business, to deploy solutions faster, and to open up new opportunities"<ref name="KregerWeb01" />
|-
* "[allow] applications to be integrated more rapidly, easily, and less expensively than ever before"<ref name="KregerWeb01" />
  ! style="background-color:#e2e2e2; padding-left:10px; padding-right:10px;" colspan="2"|'''Service models'''
|-
  ! style="background-color:#e2e2e2; padding-left:10px; padding-right:10px;"|Model
  ! style="background-color:#e2e2e2; padding-left:10px; padding-right:10px;"|Description
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|Software as a Service (SaaS)
  | style="background-color:white; padding-left:10px; padding-right:10px;"|"The capability provided to the consumer is to use the provider’s applications running on a cloud infrastructure. The applications are accessible from various client devices through either a thin client interface, such as a web browser (e.g., web-based email), or a program interface. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings."
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|Platform as a Service (PaaS)
  | style="background-color:white; padding-left:10px; padding-right:10px;"|"The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages, libraries, services, and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and possibly configuration settings for the application-hosting environment."
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|Infrastructure as a Service (IaaS)
  | style="background-color:white; padding-left:10px; padding-right:10px;"|"The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, and deployed applications; and possibly limited control of select networking components (e.g., host firewalls)."
|-
  ! style="background-color:#e2e2e2; padding-left:10px; padding-right:10px;" colspan="2"|'''Deployment models'''
|-
  ! style="background-color:#e2e2e2; padding-left:10px; padding-right:10px;"|Model
  ! style="background-color:#e2e2e2; padding-left:10px; padding-right:10px;"|Description
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|Private cloud
  | style="background-color:white; padding-left:10px; padding-right:10px;"|"The cloud infrastructure is provisioned for exclusive use by a single organization comprising multiple consumers (e.g., business units). It may be owned, managed, and operated by the organization, a third party, or some combination of them, and it may exist on or off premises."
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|Community cloud
  | style="background-color:white; padding-left:10px; padding-right:10px;"|"The cloud infrastructure is provisioned for exclusive use by a specific community of consumers from organizations that have shared concerns (e.g., mission, security requirements, policy, and compliance considerations). It may be owned, managed, and operated by one or more of the organizations in the community, a third party, or some combination of them, and it may exist on or off premises."
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|Public cloud
  | style="background-color:white; padding-left:10px; padding-right:10px;"|"The cloud infrastructure is provisioned for open use by the general public. It may be owned, managed, and operated by a business, academic, or government organization, or some combination of them. It exists on the premises of the cloud provider."
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|Hybrid cloud
  | style="background-color:white; padding-left:10px; padding-right:10px;"|"The cloud infrastructure is a composition of two or more distinct cloud infrastructures (private, community, or public) that remain unique entities, but are bound together by standardized or proprietary technology that enables data and application portability (e.g., cloud bursting for load balancing between clouds)."
|-
|}


We'll come back to that. For the next stop, however, we have to consider the case of Amazon and how they viewed web services at that time. Leading up to the twenty-first century, Amazon was beginning to expand beyond its book selling roots, opening up its marketplace to other third parties (affiliates) to sell their own goods on Amazon's platform. That effort required an expansion of IT infrastructure to support web-scale third-party selling, but as it turned out, a lot of that IT infrastructure, while reliable and cost-effective, had been previously added piecemeal, with many components getting "tangled" along the way. Amazon project leads and external partners were clamoring for better infrastructure services. This required untangling the IT and associated provider data into an internally scalable, centralized infrastructure that allowed for smoother communication and [[Information management|data management]] using well-documented APIs.<ref name="FurrierExclusive15">{{cite web |url=https://medium.com/@furrier/original-content-the-story-of-aws-and-andy-jassys-trillion-dollar-baby-4e8a35fd7ed |title=Exclusive: The Story of AWS and Andy Jassy’s Trillion Dollar Baby |author=Furrier, J. |work=Medium.com |date=29 January 2015 |accessdate=21 August 2021}}</ref><ref name="MillerHowAWS16">{{cite web |url=https://techcrunch.com/2016/07/02/andy-jassys-brief-history-of-the-genesis-of-aws/ |title=How AWS came to be |author=Miller, R. |work=TechCrunch |date=02 July 2016 |accessdate=21 August 2021}}</ref> By 2003, the company was indirectly acting as a services industry to its partners. "Why not act upon this strength?" was the sentiment that quickly developed that year, with Amazon choosing to use its internal compute, storage, and database infrastructure and related expertise to its advantage.<ref name="MillerHowAWS16" />


At that point, the paradigm of web services expanded to include infrastructure as a service or IaaS, with compute, storage, and database services running over the internet for web developers to utilize.<ref name="FurrierExclusive15" /><ref name="MillerHowAWS16" /> "If you believe developers will build applications from scratch using web services as primitive building blocks, then the operating system becomes the internet,” noted AWS CEO Andy Jassy in a 2015 retrospective interview.<ref name="FurrierExclusive15" /> From that concept evolved the idea of determining what it would take to allow any entity to run their technology applications over their web-service-based IaaS platform. In August 2006, Amazon introduced its Amazon Elastic Compute Cloud (Amazon EC2), "a web service that provides resizable compute capacity in the cloud."<ref name="AWSAnnounc06">{{cite web |url=https://aws.amazon.com/about-aws/whats-new/2006/08/24/announcing-amazon-elastic-compute-cloud-amazon-ec2---beta/ |title=Announcing Amazon Elastic Compute Cloud (Amazon EC2) - beta |publisher=Amazon Web Services |date=24 August 2006 |accessdate=21 August 2021}}</ref><ref name="ButlerAmazon06">{{cite journal |title=Amazon puts network power online |journal=Nature |author=Butler, D. |volume=444 |issue=528 |year=2006 |doi=10.1038/444528a}}</ref> This quickly prompted others in academic and scientific fields to continue the conversation of turning IT and its infrastructure into a service.<ref name="ButlerAmazon06" /><ref name="KeITeS06">{{cite journal |title=ITeS - Transcending the Traditional Service Model |journal=Proceedings of the 2006 IEEE International Conference on e-Business Engineering |author=Ke, J.-s. |page=2 |year=2006 |doi=10.1109/ICEBE.2006.66}}</ref> In turn, conversations changed, discussing the opportunities inherent to "cloud computing," including Google and IBM partnering to virtualize computers on new data centers for boosting academic research and teaching new computer science students<ref name="LohrGoogle07">{{cite web |url=http://www.nytimes.com/2007/10/08/technology/08cloud.html?_r=1&or |archiveurl=http://www.csun.edu/pubrels/clips/Oct07/10-08-07E.pdf |format=PDF |title=Google and I.B.M. Join in 'Cloud Computing' Research |author=Lohr, S. |work=The New York Times |date=08 October 2007 |archivedate=08 October 2007 |accessdate=21 August 2021}}</ref><ref name="HandHead07">{{cite journal |title=Head in the clouds |journal=Nature |author=Hand, E. |volume=449 |issue=963 |year=2007 |doi=10.1038/449963a}}</ref>, IBM releasing a white paper on cloud computing<ref name="BossCloud07">{{cite web |url=http://download.boulder.ibm.com/ibmdl/pub/software/dw/wes/hipods/Cloud_computing_wp_final_8Oct.pdf |archiveurl=https://web.archive.org/web/20090206015244/http://download.boulder.ibm.com/ibmdl/pub/software/dw/wes/hipods/Cloud_computing_wp_final_8Oct.pdf |format=PDF |title=Cloud Computing |author=Boss, G.; Malladi, P.; Quan, D. et al. |publisher=IBM Corporation |date=08 October 2007 |archivedate=06 February 2009 |accessdate=21 August 2021}}</ref> and announcing its Blue Cloud initiative<ref name="LohrIBM07">{{cite web |url=https://www.nytimes.com/2007/11/15/technology/15blue.html |title=I.B.M. to Push 'Cloud Computing,' Using Data From Afar |author=Lohr, S. |work=The New York Times |date=15 November 2007 |accessdate=21 August 2021}}</ref>, and Google doubling down on its cloud-based software offerings in competition with Microsoft.<ref name="LohrGoogleGets07">{{cite web |url=https://www.nytimes.com/2007/12/16/technology/16goog.html |archiveurl=https://signallake.com/innovation/GoogleMicrosoft121607.pdf |format=PDF |title=Google Gets Ready to Rumble With Microsoft |author=Lohr, S.; Helft, M. |work=The New York Times |date=16 December 2007 |archivedate=16 December 2007 |accessdate=21 August 2021}}</ref>
Nearly a decade later, the picture painted in Table 1 is now more nuanced and varied, with slight changes in definitions, as well as additions to the service and deployment models. Cloudflare actually does a splendid job of describing these service and deployment models, so let's paraphrase from them, as seen in Table 2.


In IBM's 2007 white paper, they described cloud computing as a "pool of virtualized computer resources" that can<ref name="BossCloud07" />:
{| class="wikitable" border="1" cellpadding="5" cellspacing="0" width="70%"
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;" colspan="2"|'''Table 2.''' A more modern look at service models and deployment models for cloud computing, as inspired largely by Cloudflare
|-
  ! style="background-color:#e2e2e2; padding-left:10px; padding-right:10px;" colspan="2"|'''Service models'''
|-
  ! style="background-color:#e2e2e2; padding-left:10px; padding-right:10px;"|Model
  ! style="background-color:#e2e2e2; padding-left:10px; padding-right:10px;"|Description
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|Software as a Service (SaaS)
  | style="background-color:white; padding-left:10px; padding-right:10px;"|This service model allows customers, via an internet connection and a web browser or app, to use software provided by and operated upon a cloud provider and its computing infrastructure. The customer isn't worried about anything hardware-related; from their perspective, they just want the software hosted by the cloud provider to be reliably and effectively operational. If the desired software is tied to strong regulatory or security standards, however, the customer must thoroughly vet the vendor, and even then, there is some risk in taking the word of the vendor that the application is properly secure since customers usually won't be able to test the software's security themselves (e.g., via a penetration test).<ref name="CFWhatIsSoft">{{cite web |url=https://www.cloudflare.com/learning/cloud/what-is-saas/ |title=What Is SaaS? SaaS Definition |publisher=Cloudflare, Inc |accessdate=21 August 2021}}</ref>
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|Platform as a Service (PaaS)
  | style="background-color:white; padding-left:10px; padding-right:10px;"|This service model allows customers, via an internet connection and a web browser, to use not only the computing infrastructure (e.g., servers, hard drives, networking equipment) of the cloud provider but also development tools, operating systems, database management tools, middleware, etc. required to build web applications. As such, this allows a development team to spread around the world and still productively collaborate using the cloud provider's platform. However, app developers are essentially locked into the vendor's development environment, and additional security challenges may be introduced if the cloud provider has extended its infrastructure to one or more third parties. Finally, PaaS isn't truly "serverless," as applications won't automatically scale unless programmed to do so, and processes must be running most or all the time in order to be immediately available to users.<ref name="CFWhatIsPlat">{{cite web |url=https://www.cloudflare.com/learning/serverless/glossary/platform-as-a-service-paas/ |title=What is Platform-as-a-Service (PaaS)? |publisher=Cloudflare, Inc |accessdate=21 August 2021}}</ref>
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|Infrastructure as a Service (IaaS)
  | style="background-color:white; padding-left:10px; padding-right:10px;"|This service model allows customers to use the computing infrastructure of a cloud provider, via the internet, rather than invest in their own on-premises computing infrastructure. From their internet connection and a web browser, the customer can set up and allocate the resources required (i.e., scalable infrastructure) to build and host web applications, store data, run code, etc. These activities are often facilitated with the help of virtualization and container technologies.<ref name="CFWhatIsInfra">{{cite web |url=https://www.cloudflare.com/learning/cloud/what-is-iaas/ |title=What Is IaaS (Infrastructure-as-a-Service)? |publisher=Cloudflare, Inc |accessdate=21 August 2021}}</ref>
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|Function as a Service (FaaS)
  | style="background-color:white; padding-left:10px; padding-right:10px;"|This service model allows customers to run isolated or modular bits of code, preferably on local or "edge" cloud servers, when triggered by an element, such as an internet-connected device taking a reading or a user selecting an option in a web application. The customer has the luxury of focusing on writing and fine-tuning the code, and the cloud provider is the one responsible for allocating the necessary server and backend resources to ensure the code is run rapidly and effectively. As such, the customer doesn't have to think about servers at all, making FaaS a "serverless" computing model.<ref name="CFWhatIsFunction">{{cite web |url=https://www.cloudflare.com/learning/serverless/glossary/function-as-a-service-faas/ |title=What is Function-as-a-Service (FaaS)? |publisher=Cloudflare, Inc |accessdate=21 August 2021}}</ref>
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|Backend as a Service (BaaS)
  | style="background-color:white; padding-left:10px; padding-right:10px;"|This service model allows customers to focus on front-end application services like client-side logic and user interface (UI), while the cloud provider provides the backend services for user authentication, database management, data storage, etc. The customer uses APIs and [[software development kit]]s (SDKs) provided by the cloud provider to integrate customer frontend application code with the vendor's backend functionality. As such, the customer doesn't have to think about servers, virtual machines, etc. However, in most cases, BaaS isn't truly serverless like FaaS, as actions aren't usually triggered by an element but rather run continuously (not as scalable as serverless). Additionally, BaaS isn't generally set up to run on the network's edge.<ref name="CFWhatIsBackend">{{cite web |url=https://www.cloudflare.com/learning/serverless/glossary/backend-as-a-service-baas/ |title=What is BaaS? Backend-as-a-Service vs. serverless |publisher=Cloudflare, Inc |accessdate=21 August 2021}}</ref>
|-
  ! style="background-color:#e2e2e2; padding-left:10px; padding-right:10px;" colspan="2"|'''Deployment models'''
|-
  ! style="background-color:#e2e2e2; padding-left:10px; padding-right:10px;"|Model
  ! style="background-color:#e2e2e2; padding-left:10px; padding-right:10px;"|Description
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|Private cloud
  | style="background-color:white; padding-left:10px; padding-right:10px;"|This deployment model involves the provision of cloud computing infrastructure and services exclusively to one customer. Those infrastructure and service offerings may be hosted locally on-site or be remotely and privately managed and accessed via the internet and a web browser. Those organizations with high security and regulatory requirements may benefit from a private cloud, as they have direct control over how those policies are implemented on the infrastructure and services (i.e., don't have to consider the needs of other users sharing the cloud, as in public cloud). However, private cloud may come with higher costs.<ref name="CFWhatIsPrivate">{{cite web |url=https://www.cloudflare.com/learning/cloud/what-is-a-private-cloud/ |title=What Is a Private Cloud? Private Cloud vs. Public Cloud |publisher=Cloudflare, Inc |accessdate=21 August 2021}}</ref>
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|Community cloud
  | style="background-color:white; padding-left:10px; padding-right:10px;"|This deployment model, while not discussed often, still has some relevancy today. This model falls somewhere between private and public cloud, allowing authorized customers who need to work jointly on projects and applications, or require specific computing resources, in an integrated manner. The authorized customers typically have shared interests, policies, and security/regulatory requirements. Like private cloud, the computing infrastructure and services may be hosted locally at one of the customer's locations or be remotely and privately managed, with each customer accessing the community cloud via the internet. Given a set of common interest, policies, and requirements, the community cloud benefits all customers using the community cloud, as does the flexibility, scalability, and availability of cloud computing in general. However, with more users comes more security risk, and more detailed role-based or group-based security levels and enforcement may be required. Additionally, there must be solid communication and agreement among all members of the community to ensure the community cloud operates as efficiently and securely as possible.<ref name="TucavkovWhat20">{{cite web |url=https://phoenixnap.com/blog/community-cloud |title=What is Community Cloud? Benefits & Examples with Use Cases |author=Tucakov, D. |work=phoenixNAP Blog |publisher=phoenixNAP |date=18 June 2020 |accessdate=21 August 2021}}</ref>
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|Public cloud
  | style="background-color:white; padding-left:10px; padding-right:10px;"|This deployment model is what typically comes to mind when "cloud computing" is discussed, involving a cloud provider that provides computing resources to multiple customers at the same time, though each individual customer's applications, data, and resources remain "hidden" from all other customers not authorized to view and access them. Those provided resources come in many different services model, with SaaS, PaaS, and IaaS being the most common. Traditionally, the public cloud has been touted as being a cost-effective, less complex, relatively secure means of handling computing resources and applications. However, for organizations tied to strong regulatory or security standards, the organizaiton must thoroughly vet the cloud vendor and its approach to security and compliance, as the provider may not be able to meet regulatory needs. There's also the concern of vendor lock-in or even loss of data if the customer becomes too dependent on that one vendor's services.<ref name="CFWhatIsPublic">{{cite web |url=https://www.cloudflare.com/learning/cloud/what-is-a-public-cloud/ |title=What Is Hybrid Cloud? Hybrid Cloud Definition |publisher=Cloudflare, Inc |accessdate=21 August 2021}}</ref>
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|Hybrid cloud
  | style="background-color:white; padding-left:10px; padding-right:10px;"|This deployment model takes both private cloud and public cloud models and tightly integrates them, along with potentially any existing on-premises computing infrastructure. (Figure 2) The optimal end result is one seamless operating computing infrastructure, e.g., where a private cloud and on-premises infrastructure houses critical operations and a public cloud is used for data and information backup or computing resource scaling. Advantages include great flexibility in deployments, improved backup options, resource scalability, and potential cost savings. Downsides include greater effort required to integrate complex systems and make them sufficiently secure. Note that hybrid cloud is different from multicloud in that it combines both public and private computing components.<ref name="CFWhatIsHybrid">{{cite web |url=https://www.cloudflare.com/learning/cloud/what-is-hybrid-cloud/ |title=What Is Hybrid Cloud? Hybrid Cloud Definition |publisher=Cloudflare, Inc |accessdate=21 August 2021}}</ref>
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|Multicloud
  | style="background-color:white; padding-left:10px; padding-right:10px;"|This deployment model takes the concept of public cloud and multiplies it. Instead of the customer relying on a singular public cloud provider, they spread their cloud hosting, data storage, and application stack usage across more than one provider. The advantage to the customer is redundancy protection for data and systems and better value by tapping into different services. Downside comes with increased complexity in managing a multicloud deployment, as well as the potential for increased network latency and a greater cyber-attack surface. Note that multicloud requires multiple public clouds, though a private cloud can also be in the mix.<ref name="CFWhatIsMulti">{{cite web |url=https://www.cloudflare.com/learning/cloud/what-is-multicloud/ |title=What Is Multicloud? Multicloud Definition |publisher=Cloudflare, Inc |accessdate=21 August 2021}}</ref>
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|Distributed cloud
  | style="background-color:white; padding-left:10px; padding-right:10px;"|This up-and-coming deployment model takes public cloud and expands it, such that a provider's public cloud infrastructure can be located in multiple places but be leveraged by a customer wherever they are, from a single control structure. As IBM puts it: "In effect, distributed cloud extends the provider's centralized cloud with geographically distributed micro-cloud satellites. The cloud provider retains central control over the operations, updates, governance, security, and reliability of all distributed infrastructure."<ref name="IBMDistrib20">{{cite web |url=https://www.ibm.com/cloud/learn/distributed-cloud |title=Distributed cloud |author=IBM Cloud Education |publisher=IBM |date=03 November 2020 |accessdate=21 August 2021}}</ref> Meanwhile, the customer can still access all infrastructure and services as an integrated cloud from a single control structure. The benefit of this model is that, unlike multicloud, latency issues can largely be eliminated, and the risk of failures in infrastructure and services can be further mitigated. Customers in regulated environments may also see benefits as data required to be in a specific geographic location can be better guaranteed with the distributed cloud. However, some challenges to this distributed model involve the allocation of public cloud resources to distributed use and determining who's responsible for bandwidth use.<ref name="CostelloTheCIO20">{{cite web |url=https://www.gartner.com/smarterwithgartner/the-cios-guide-to-distributed-cloud/ |title=The CIO’s Guide to Distributed Cloud |author=Costello, K. |work=Smarter With Gartner |date=12 August 2020 |accessdate=21 August 2021}}</ref>
|-
|}


*  "host a variety of different workloads, including batch-style back-end jobs and interactive, user-facing applications";
*  "allow workloads to be deployed and scaled-out quickly through the rapid provisioning of virtual machines or physical machines";
*  "support redundant, self-recovering, highly scalable programming models that allow workloads to recover from many unavoidable hardware/software failures";
*  "monitor resource use in real time to enable rebalancing of allocations when needed"; and
*  "be a cost efficient model for delivering information services, reducing IT management complexity, promoting innovation, and increasing responsiveness through real-time workload balancing."


In 2011, the National Institute of Standards and Technology (NIST) came up with a more standards-based definition to cloud computing. They described it 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."<ref name="MellTheNIST11">{{cite web |url=https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-145.pdf |format=PDF |title=The NIST Definition of Cloud Computing |author=Mell, P.; Grance, T. |publisher=NIST |date=September 2011 |accessdate=21 August 2021}}</ref> They went on to highlight the five essential characteristics further<ref name="MellTheNIST11" />:
[[File:Hybrid Cloud.svg.png|right|400px|thumb|'''Figure 2.''' A representation of hybrid cloud. The cloud on the left represents the public cloud, being fed to the organization's main building. The cloud on the right represents the organization's private cloud, which is spread across all business locations. The main building feeds access to the public cloud to its other locations through its private cloud.]]While Table 2 addresses the basic ideas inherent to these service and deployment models, even providing some upside and downside notes, we still need to make further comparisons in order to highlight some fundamental differences in otherwise seemingly similar models. Let's first compare PaaS with serverless computing or FaaS. Then we'll examine the differences among hybrid, multi-, and distributed cloud models.


* On-demand self-service: The unilateral provision of computing resources should be an automatic or nearly automatic process.
====1.2.1 Platform-as-a-service vs. serverless computing====
* Broad network access: Thin- or thick-client platforms, both hardwired and mobile, should allow for standardized, networkable access to those computing resources.
As a service model, platform as a service or PaaS uses both the infrastructure layer and the platform layer of cloud computing. Hosted on the infrastructure are platform components like development tools, operating systems, database management tools, middleware, and more, which are useful for application design, development, testing, and deployment, as well as web service integration, database integration, state management, application versioning, and application instrumentation.<ref name="BonifacePlat10">{{cite journal |title=Platform-as-a-Service Architecture for Real-Time Quality of Service Management in Clouds |journal=Proceedings of the Fifth International Conference on Internet and Web Applications and Services |author=Boniface, M.; Nasser, B.; Papay, J. et al. |pages=155–60 |year=2010 |doi=10.1109/ICIW.2010.91}}</ref><ref name="XiongScalable14">{{cite journal |title=Scalable Architectures for Platform-as-a-Service Clouds: Performance and Cost Analysis |journal=Proceedings of the 2014 European Conference on Software Architecture |author=Xiong, H.; Fowley, F.; Pahl, C. et al. |pages=226–33 |year=2014 |doi=10.1007/978-3-319-09970-5_21}}</ref><ref name="ViolinoWhat19">{{cite web |url=https://www.infoworld.com/article/3223434/what-is-paas-software-development-in-the-cloud.html |title=What is PaaS? Platform-as-a-service explained |author=Violino, B. |work=InfoWorld |date=19 July 2019 |accessdate=21 August 2021}}</ref> In that regard, the user of the PaaS need not think about the backend processes.
* Resource pooling: A multi-tenant model requires the provisioning of resources to serve a wide customer base, with a layer of abstraction that gives the user a sense of location independence from those resources.
* Rapid elasticity: The platform's resources should be readily and/or automatically scalable commensurate with demand, such that the user sees no negative impact in their activities.
* Measured service: The resources should be automatically controlled and optimized by a measured service or metering system, transparently providing accurate and timely information about resource usage.


When we compare these 2007 and 2011 definitions of cloud computing with the comments on web services by Glass and Kreger at the turn of the century (as well as our own derived definition prior), we can't help but see how the early vision for cloud computing has taken shape today. First, web services can indeed be paired with other technologies to form a distributed system, in this case a centralized and scalable computing infrastructure that can be used by practically anyone to run software, develop applications, and "host a variety of different workloads."<ref name="BossCloud07" /> Second, those workloads can be quickly deployed worldwide, wherever there is internet access, and typically at a fair price, when compared to the costs of on-premises data management.<ref name="ViolinoWhere20">{{cite web |url=https://www.infoworld.com/article/3532288/where-to-look-for-cost-savings-in-the-cloud.html |title=Where to look for cost savings in the cloud |author=Violino, B. |work=InfoWorld |date=16 March 2020 |accessdate=21 August 2021}}</ref> Third, new opportunities are indeed developing for organizations seeking to tap into the on-demand, rapid, scalable, and cost-efficient nature of cloud computing.<ref name="OjalaDiscover16">{{cite journal |title=Discovering and creating business opportunities for cloud services |journal=Journal of Systems and Software |author=Ojala, A. |volume=113 |pages=408–17 |year=2016 |doi=10.1016/j.jss.2015.11.004}}</ref><ref name="PetteyCloud20">{{cite web |url=https://www.gartner.com/smarterwithgartner/cloud-shift-impacts-all-it-markets/ |title=Cloud Shift Impacts All IT Markets |author=Pettey, C. |work=Smarter with Gartner |date=26 October 2020 |accessdate=21 August 2021}}</ref> And finally, benefits are being seen in the integration of applications via the cloud, particularly as more options for multicloud and hybrid cloud integration develop.<ref name="PetteyFiveApp19">{{cite web |url=https://www.gartner.com/smarterwithgartner/5-approaches-cloud-applications-integration/ |title=5 Approaches to Cloud Applications Integration |author=Pettey, C. |work=Smarter with Gartner |date=14 May 2019 |accessdate=21 August 2021}}</ref> The early vision that perhaps hasn't been realized is found in Glass' "shift from client-server to peer-to-peer architectures," though discussions about the promise of peer-to-peer cloud computing have occurred since.<ref name="BabaogluEscape14">{{cite journal |title=The People's Cloud |journal=IEEE Spectrum |author=Babaoglu, O.; Marzolla, M. |volume=51 |issue=10 |pages=50–55 |year=2014 |doi=10.1109/MSPEC.2014.6905491 |url=https://spectrum.ieee.org/computing/networks/escape-from-the-data-center-the-promise-of-peertopeer-cloud-computing}}</ref>
Similarly, serverless computing or FaaS largely abstracts away (think "out of sight, out of mind") the servers running any software or code the user chooses to run on the cloud provider's infrastructure. The user practically doesn't need to know anything about the underlying hardware and operating system, or how that hardware and software handles the computational load of running your software or code, as the cloud provider ends up completely responsible for that. However, this is where the similarities stop.  


Though clearly linked to web services and the early vision of cloud computing in the 2000s, the cloud computing of the 2020s is a remarkably more advanced and continually evolving technology. However, it's still not without its challenges today. The data security, privacy, and governance of computing in general, and cloud computing in particular, will continue to require more rigorous approaches, as will reducing remaining data silos in organizations with pivots to hybrid cloud, multicloud, and serverless cloud implementations.<ref name="Goodison10Fut20">{{cite web |url=https://www.crn.com/news/cloud/10-future-cloud-computing-trends-to-watch-in-2021 |title=10 Future Cloud Computing Trends To Watch In 2021 |author=Goodison, D. |work=CRN |date=20 November 2020 |accessdate=21 August 2021}}</ref><ref name="DTCCCloud20">{{cite web |url=http://www.dtcc.com/-/media/Files/Downloads/WhitePapers/DTCC-Cloud-Journey-WP |format=PDF |title=Cloud Technology: Powerful and Evolving |author=DTCC |date=November 2020 |accessdate=21 August 2021}}</ref> But what is "hybrid cloud"? "Serverless cloud?" The next section goes into further detail.
Let's use Amazon's AWS Lambda serverless computing service as an example for comparison with PaaS. Imagine you have some code you want performed on your website when an [[internet of things]] (IoT) device in the field takes a reading for your environmental laboratory. From your AWS Lambda account, you can "stage and invoke" the code you've written (it can be in any programming language) "from within one of the support languages in the AWS Lambda runtime environment."<ref name="AWSServer17">{{cite web |url=https://d1.awsstatic.com/whitepapers/serverless-architectures-with-aws-lambda.pdf |format=PDF |title=Serverless Architectures with AWS Lambda: Overview and Best Practices |publisher=Amazon Web Services |date=November 2017 |accessdate=21 August 2021}}</ref><ref name="AWSLambda">{{cite web |url=https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html |title=Lambda runtimes |publisher=Amazon Web Services |accessdate=21 August 2021}}</ref> In turn, that runtime environment runs on top of Amazon Linux 2, an Amazon-developed version of Red Hat Enterprise running as a Linux server operating system.<ref name="MoreloWhat20">{{cite web |url=https://linuxhint.com/what_is_amazon_linux_2/ |title=What is Amazon Linux 2? |author=Morelo, D. |work=LinuxHint |date=2020 |accessdate=21 August 2021}}</ref> This can then be packaged into a container image that runs on Amazon's servers.<ref name="AWSLambda" /> When a designated event occurs (in this example, the internet-connected device taking a reading), a message is communicated—typically via an API—to the serverless code, which is then triggered, and Amazon Lambda provisions only the necessary resources to see the code to completion. Then the AWS server spins down those resources afterwards.<ref name="TRServerless20">{{cite web |url=https://www.techrepublic.com/article/serverless-computing-the-smart-persons-guide/ |title=Serverless computing: A cheat sheet |work=TechRepublic |date=25 December 2020 |accessdate=21 August 2021}}</ref> Yes, there are servers still involved, but the critical point is the customer need only to properly package their code up, without any concern whatsoever of how the AWS server manages its use and performance. In that regard, the code is said to be run in a "serverless" fashion, not because the servers aren't involved but because the code developer is effectively abstracted from the servers running and managing the code; the developer is left to only worry about the code itself.<ref name="TRServerless20" /><ref name="FrulingerWhatIs19">{{cite web |url=https://www.infoworld.com/article/3406501/what-is-serverless-serverless-computing-explained.html |title=What is serverless? Serverless computing explained |author=Fruhlinger, J. |work=InfoWorld |date=15 July 2019 |accessdate=21 August 2021}}</ref>
 
PaaS is not serverless, however. First, a truly serverless model is significantly different in its scalability. The serverless model is meant to instantly provide computing resources based upon a "trigger" or programmed element, and then wind down those resources. This is perfect for the environmental lab wanting to upload remote sensor data to the cloud after each collection time; only the resources required for performing the action to completion are required, minimizing cost. However, this doesn't work well for a PaaS solution, which doesn't scale up automatically unless specifically programmed to. Sure, the developer using PaaS has more control over the development environment, but resources must be scaled up manually and left continuously running, making it less agile than serverless. This makes PaaS more suitable for more prescriptive and deliberate application development, though its usage-based pricing is a bit less precise than serverless. Additionally, serverless models aren't typically offered with development tools, as usually is the case with PaaS, so the serverless code developer must turn to their own development tools.<ref name="CFWhatIsPlat" /><ref name="SandersServer19">{{cite web |url=https://www.zdnet.com/article/serverless-computing-vs-platform-as-a-service-which-is-right-for-your-business/ |title=Serverless computing vs platform-as-a-service: Which is right for your business? |author=Sander, J. |work=ZDNet |date=01 May 2019 |accessdate=21 August 2021}}</ref>
 
====1.2.2 Hybrid cloud vs. multicloud vs. distributed cloud====
At casual glance, one might be led to believe these three deployment models aren't all that different. However, there are some core differences to point out, which may affect an organization's deployment strategy significantly. As Table 2 notes:
 
* Hybrid cloud takes private cloud and public cloud models (as well as an organization's local infrastructure) and tightly integrates them. This indicates a wide mix of computing services is being used in an integrated fashion to create value.<ref name="CFWhatIsHybrid" /><ref name="HurwitzWhat21">{{cite web |url=https://www.dummies.com/programming/cloud-computing/hybrid-cloud/what-is-hybrid-cloud-computing/ |title=What is Hybrid Cloud Computing? |work=Dummies.com |author=Hurwitz, J.S.; Kaufman, M.; Halper, F. et al. |publisher=John Wiley & Sons, Inc |date=2021 |accessdate=21 August 2021}}</ref>
* Multicloud takes the concept of public cloud and multiplies it. This indicates that two or more public clouds are being used, without a private cloud to muddy the integration.<ref name="CFWhatIsMulti" />
* Distributed cloud takes public cloud and expands it to multiple edge locations. This indicates that a public cloud service's resources are strategically dispersed in locations as required by the user, while remaining accessible from and complementary to the user's private cloud or on-premises data center.<ref name="CostelloTheCIO20" /><ref name="SPWhatIs21">{{cite web |url=https://www.stackpath.com/edge-academy/distributed-cloud-computing/ |title=What is Distributed Cloud Computing? |work=Edge Academy |publisher=StackPath |date=2021 |accessdate=21 August 2021}}</ref>
 
As such, an organization's existing infrastructure and business demands, combined with its aspirations for moving into the cloud, will dictate their deployment model. But there are also advantages and disadvantages to each which may further dictate an organization's deployment decision. First, all three models provide some level of redundancy. If a failure occurs in one computing core (be it public, private, or local), another core can ideally provide backup services to fill the gap. However, each model does this in a slightly different way. In a similar way, if additional compute resources are required due to a spike in demand, each model can ramp up resources to smooth the demand spike. Hybrid and distributed clouds also have the benefit of making any future transition to a purely public cloud (be it singular or multi-) easier as part of an organization's processes and data are already found in public cloud.
 
Beyond these benefits, things diverge a bit. While hybrid clouds provide flexibility to maintain sensitive data in a private cloud or on-site, where security can be more tightly controlled, private clouds are resource-intensive to maintain. Additionally, due to the complexity of integrating that private cloud with all other resources, the hybrid cloud reveals a greater attack surface, complicates security protocols, and raises integration costs.<ref name="CFWhatIsHybrid" /> Multicloud has the benefit of reducing vendor lock-in (discussed later in this guide) by implementing resource utilization and storage across more than one public cloud provider. Should a need to migrate away from one vendor arrive, it's easier to continue critical services with the other public cloud vendor. This also lends to "shopping around" for public cloud services as costs lower and offerings change. However, this multicloud approach brings with it its own integration challenges, including differences in technologies between vendors, latency complexities between the services, increased points of attack with more integrations, and load balancing issues between the services.<ref name="CFWhatIsMulti" /> A distributed cloud model removes some of that latency and makes it easier to manage integrations and reduce network failure risks from one control center. It also benefits organizations requiring localized data storage due to regulations. However, with multiple servers being involved, it makes it a bit more difficult to troubleshoot integration and network issues across hardware and software. Additionally, implementation costs are likely to be higher, and security for replicated data across multiple locations becomes more complex and risky.<ref name="CostelloTheCIO20" /><ref name="EntradasoftWhatIs20">{{cite web |url=http://entradasoft.com/blogs/what-is-distributed-cloud |title=What is Distributed Cloud |publisher=Entradasoft |date=2000 |accessdate=21 August 2021}}</ref>


==References==
==References==
{{Reflist|colwidth=30em}}
{{Reflist|colwidth=30em}}

Revision as of 22:21, 3 February 2022

You've probably heard terms like "software as a service" and "public cloud," and you may very well be familiar with their significance already. However, let's briefly run through the terminology associated with cloud services and deployments, as that terminology gets used abundantly, and it's best we're all clear on it from the start. Additionally, the cloud computing paradigm is expanding into areas like "hybrid cloud" and "serverless computing," concepts which may be new to many.

Mentioned earlier was NIST's 2011 definition of cloud computing. When that was published, NIST defined three service models and four deployment models (Table 1)[1]:

Table 1. The three service models and four deployment models for cloud computing, as defined by the National Institute of Standards and Technology (NIST) in 2011[1]
Service models
Model Description
Software as a Service (SaaS) "The capability provided to the consumer is to use the provider’s applications running on a cloud infrastructure. The applications are accessible from various client devices through either a thin client interface, such as a web browser (e.g., web-based email), or a program interface. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings."
Platform as a Service (PaaS) "The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages, libraries, services, and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and possibly configuration settings for the application-hosting environment."
Infrastructure as a Service (IaaS) "The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, and deployed applications; and possibly limited control of select networking components (e.g., host firewalls)."
Deployment models
Model Description
Private cloud "The cloud infrastructure is provisioned for exclusive use by a single organization comprising multiple consumers (e.g., business units). It may be owned, managed, and operated by the organization, a third party, or some combination of them, and it may exist on or off premises."
Community cloud "The cloud infrastructure is provisioned for exclusive use by a specific community of consumers from organizations that have shared concerns (e.g., mission, security requirements, policy, and compliance considerations). It may be owned, managed, and operated by one or more of the organizations in the community, a third party, or some combination of them, and it may exist on or off premises."
Public cloud "The cloud infrastructure is provisioned for open use by the general public. It may be owned, managed, and operated by a business, academic, or government organization, or some combination of them. It exists on the premises of the cloud provider."
Hybrid cloud "The cloud infrastructure is a composition of two or more distinct cloud infrastructures (private, community, or public) that remain unique entities, but are bound together by standardized or proprietary technology that enables data and application portability (e.g., cloud bursting for load balancing between clouds)."


Nearly a decade later, the picture painted in Table 1 is now more nuanced and varied, with slight changes in definitions, as well as additions to the service and deployment models. Cloudflare actually does a splendid job of describing these service and deployment models, so let's paraphrase from them, as seen in Table 2.

Table 2. A more modern look at service models and deployment models for cloud computing, as inspired largely by Cloudflare
Service models
Model Description
Software as a Service (SaaS) This service model allows customers, via an internet connection and a web browser or app, to use software provided by and operated upon a cloud provider and its computing infrastructure. The customer isn't worried about anything hardware-related; from their perspective, they just want the software hosted by the cloud provider to be reliably and effectively operational. If the desired software is tied to strong regulatory or security standards, however, the customer must thoroughly vet the vendor, and even then, there is some risk in taking the word of the vendor that the application is properly secure since customers usually won't be able to test the software's security themselves (e.g., via a penetration test).[2]
Platform as a Service (PaaS) This service model allows customers, via an internet connection and a web browser, to use not only the computing infrastructure (e.g., servers, hard drives, networking equipment) of the cloud provider but also development tools, operating systems, database management tools, middleware, etc. required to build web applications. As such, this allows a development team to spread around the world and still productively collaborate using the cloud provider's platform. However, app developers are essentially locked into the vendor's development environment, and additional security challenges may be introduced if the cloud provider has extended its infrastructure to one or more third parties. Finally, PaaS isn't truly "serverless," as applications won't automatically scale unless programmed to do so, and processes must be running most or all the time in order to be immediately available to users.[3]
Infrastructure as a Service (IaaS) This service model allows customers to use the computing infrastructure of a cloud provider, via the internet, rather than invest in their own on-premises computing infrastructure. From their internet connection and a web browser, the customer can set up and allocate the resources required (i.e., scalable infrastructure) to build and host web applications, store data, run code, etc. These activities are often facilitated with the help of virtualization and container technologies.[4]
Function as a Service (FaaS) This service model allows customers to run isolated or modular bits of code, preferably on local or "edge" cloud servers, when triggered by an element, such as an internet-connected device taking a reading or a user selecting an option in a web application. The customer has the luxury of focusing on writing and fine-tuning the code, and the cloud provider is the one responsible for allocating the necessary server and backend resources to ensure the code is run rapidly and effectively. As such, the customer doesn't have to think about servers at all, making FaaS a "serverless" computing model.[5]
Backend as a Service (BaaS) This service model allows customers to focus on front-end application services like client-side logic and user interface (UI), while the cloud provider provides the backend services for user authentication, database management, data storage, etc. The customer uses APIs and software development kits (SDKs) provided by the cloud provider to integrate customer frontend application code with the vendor's backend functionality. As such, the customer doesn't have to think about servers, virtual machines, etc. However, in most cases, BaaS isn't truly serverless like FaaS, as actions aren't usually triggered by an element but rather run continuously (not as scalable as serverless). Additionally, BaaS isn't generally set up to run on the network's edge.[6]
Deployment models
Model Description
Private cloud This deployment model involves the provision of cloud computing infrastructure and services exclusively to one customer. Those infrastructure and service offerings may be hosted locally on-site or be remotely and privately managed and accessed via the internet and a web browser. Those organizations with high security and regulatory requirements may benefit from a private cloud, as they have direct control over how those policies are implemented on the infrastructure and services (i.e., don't have to consider the needs of other users sharing the cloud, as in public cloud). However, private cloud may come with higher costs.[7]
Community cloud This deployment model, while not discussed often, still has some relevancy today. This model falls somewhere between private and public cloud, allowing authorized customers who need to work jointly on projects and applications, or require specific computing resources, in an integrated manner. The authorized customers typically have shared interests, policies, and security/regulatory requirements. Like private cloud, the computing infrastructure and services may be hosted locally at one of the customer's locations or be remotely and privately managed, with each customer accessing the community cloud via the internet. Given a set of common interest, policies, and requirements, the community cloud benefits all customers using the community cloud, as does the flexibility, scalability, and availability of cloud computing in general. However, with more users comes more security risk, and more detailed role-based or group-based security levels and enforcement may be required. Additionally, there must be solid communication and agreement among all members of the community to ensure the community cloud operates as efficiently and securely as possible.[8]
Public cloud This deployment model is what typically comes to mind when "cloud computing" is discussed, involving a cloud provider that provides computing resources to multiple customers at the same time, though each individual customer's applications, data, and resources remain "hidden" from all other customers not authorized to view and access them. Those provided resources come in many different services model, with SaaS, PaaS, and IaaS being the most common. Traditionally, the public cloud has been touted as being a cost-effective, less complex, relatively secure means of handling computing resources and applications. However, for organizations tied to strong regulatory or security standards, the organizaiton must thoroughly vet the cloud vendor and its approach to security and compliance, as the provider may not be able to meet regulatory needs. There's also the concern of vendor lock-in or even loss of data if the customer becomes too dependent on that one vendor's services.[9]
Hybrid cloud This deployment model takes both private cloud and public cloud models and tightly integrates them, along with potentially any existing on-premises computing infrastructure. (Figure 2) The optimal end result is one seamless operating computing infrastructure, e.g., where a private cloud and on-premises infrastructure houses critical operations and a public cloud is used for data and information backup or computing resource scaling. Advantages include great flexibility in deployments, improved backup options, resource scalability, and potential cost savings. Downsides include greater effort required to integrate complex systems and make them sufficiently secure. Note that hybrid cloud is different from multicloud in that it combines both public and private computing components.[10]
Multicloud This deployment model takes the concept of public cloud and multiplies it. Instead of the customer relying on a singular public cloud provider, they spread their cloud hosting, data storage, and application stack usage across more than one provider. The advantage to the customer is redundancy protection for data and systems and better value by tapping into different services. Downside comes with increased complexity in managing a multicloud deployment, as well as the potential for increased network latency and a greater cyber-attack surface. Note that multicloud requires multiple public clouds, though a private cloud can also be in the mix.[11]
Distributed cloud This up-and-coming deployment model takes public cloud and expands it, such that a provider's public cloud infrastructure can be located in multiple places but be leveraged by a customer wherever they are, from a single control structure. As IBM puts it: "In effect, distributed cloud extends the provider's centralized cloud with geographically distributed micro-cloud satellites. The cloud provider retains central control over the operations, updates, governance, security, and reliability of all distributed infrastructure."[12] Meanwhile, the customer can still access all infrastructure and services as an integrated cloud from a single control structure. The benefit of this model is that, unlike multicloud, latency issues can largely be eliminated, and the risk of failures in infrastructure and services can be further mitigated. Customers in regulated environments may also see benefits as data required to be in a specific geographic location can be better guaranteed with the distributed cloud. However, some challenges to this distributed model involve the allocation of public cloud resources to distributed use and determining who's responsible for bandwidth use.[13]


Figure 2. A representation of hybrid cloud. The cloud on the left represents the public cloud, being fed to the organization's main building. The cloud on the right represents the organization's private cloud, which is spread across all business locations. The main building feeds access to the public cloud to its other locations through its private cloud.

While Table 2 addresses the basic ideas inherent to these service and deployment models, even providing some upside and downside notes, we still need to make further comparisons in order to highlight some fundamental differences in otherwise seemingly similar models. Let's first compare PaaS with serverless computing or FaaS. Then we'll examine the differences among hybrid, multi-, and distributed cloud models.

1.2.1 Platform-as-a-service vs. serverless computing

As a service model, platform as a service or PaaS uses both the infrastructure layer and the platform layer of cloud computing. Hosted on the infrastructure are platform components like development tools, operating systems, database management tools, middleware, and more, which are useful for application design, development, testing, and deployment, as well as web service integration, database integration, state management, application versioning, and application instrumentation.[14][15][16] In that regard, the user of the PaaS need not think about the backend processes.

Similarly, serverless computing or FaaS largely abstracts away (think "out of sight, out of mind") the servers running any software or code the user chooses to run on the cloud provider's infrastructure. The user practically doesn't need to know anything about the underlying hardware and operating system, or how that hardware and software handles the computational load of running your software or code, as the cloud provider ends up completely responsible for that. However, this is where the similarities stop.

Let's use Amazon's AWS Lambda serverless computing service as an example for comparison with PaaS. Imagine you have some code you want performed on your website when an internet of things (IoT) device in the field takes a reading for your environmental laboratory. From your AWS Lambda account, you can "stage and invoke" the code you've written (it can be in any programming language) "from within one of the support languages in the AWS Lambda runtime environment."[17][18] In turn, that runtime environment runs on top of Amazon Linux 2, an Amazon-developed version of Red Hat Enterprise running as a Linux server operating system.[19] This can then be packaged into a container image that runs on Amazon's servers.[18] When a designated event occurs (in this example, the internet-connected device taking a reading), a message is communicated—typically via an API—to the serverless code, which is then triggered, and Amazon Lambda provisions only the necessary resources to see the code to completion. Then the AWS server spins down those resources afterwards.[20] Yes, there are servers still involved, but the critical point is the customer need only to properly package their code up, without any concern whatsoever of how the AWS server manages its use and performance. In that regard, the code is said to be run in a "serverless" fashion, not because the servers aren't involved but because the code developer is effectively abstracted from the servers running and managing the code; the developer is left to only worry about the code itself.[20][21]

PaaS is not serverless, however. First, a truly serverless model is significantly different in its scalability. The serverless model is meant to instantly provide computing resources based upon a "trigger" or programmed element, and then wind down those resources. This is perfect for the environmental lab wanting to upload remote sensor data to the cloud after each collection time; only the resources required for performing the action to completion are required, minimizing cost. However, this doesn't work well for a PaaS solution, which doesn't scale up automatically unless specifically programmed to. Sure, the developer using PaaS has more control over the development environment, but resources must be scaled up manually and left continuously running, making it less agile than serverless. This makes PaaS more suitable for more prescriptive and deliberate application development, though its usage-based pricing is a bit less precise than serverless. Additionally, serverless models aren't typically offered with development tools, as usually is the case with PaaS, so the serverless code developer must turn to their own development tools.[3][22]

1.2.2 Hybrid cloud vs. multicloud vs. distributed cloud

At casual glance, one might be led to believe these three deployment models aren't all that different. However, there are some core differences to point out, which may affect an organization's deployment strategy significantly. As Table 2 notes:

  • Hybrid cloud takes private cloud and public cloud models (as well as an organization's local infrastructure) and tightly integrates them. This indicates a wide mix of computing services is being used in an integrated fashion to create value.[10][23]
  • Multicloud takes the concept of public cloud and multiplies it. This indicates that two or more public clouds are being used, without a private cloud to muddy the integration.[11]
  • Distributed cloud takes public cloud and expands it to multiple edge locations. This indicates that a public cloud service's resources are strategically dispersed in locations as required by the user, while remaining accessible from and complementary to the user's private cloud or on-premises data center.[13][24]

As such, an organization's existing infrastructure and business demands, combined with its aspirations for moving into the cloud, will dictate their deployment model. But there are also advantages and disadvantages to each which may further dictate an organization's deployment decision. First, all three models provide some level of redundancy. If a failure occurs in one computing core (be it public, private, or local), another core can ideally provide backup services to fill the gap. However, each model does this in a slightly different way. In a similar way, if additional compute resources are required due to a spike in demand, each model can ramp up resources to smooth the demand spike. Hybrid and distributed clouds also have the benefit of making any future transition to a purely public cloud (be it singular or multi-) easier as part of an organization's processes and data are already found in public cloud.

Beyond these benefits, things diverge a bit. While hybrid clouds provide flexibility to maintain sensitive data in a private cloud or on-site, where security can be more tightly controlled, private clouds are resource-intensive to maintain. Additionally, due to the complexity of integrating that private cloud with all other resources, the hybrid cloud reveals a greater attack surface, complicates security protocols, and raises integration costs.[10] Multicloud has the benefit of reducing vendor lock-in (discussed later in this guide) by implementing resource utilization and storage across more than one public cloud provider. Should a need to migrate away from one vendor arrive, it's easier to continue critical services with the other public cloud vendor. This also lends to "shopping around" for public cloud services as costs lower and offerings change. However, this multicloud approach brings with it its own integration challenges, including differences in technologies between vendors, latency complexities between the services, increased points of attack with more integrations, and load balancing issues between the services.[11] A distributed cloud model removes some of that latency and makes it easier to manage integrations and reduce network failure risks from one control center. It also benefits organizations requiring localized data storage due to regulations. However, with multiple servers being involved, it makes it a bit more difficult to troubleshoot integration and network issues across hardware and software. Additionally, implementation costs are likely to be higher, and security for replicated data across multiple locations becomes more complex and risky.[13][25]

References

  1. 1.0 1.1 Mell, P.; Grance, T. (September 2011). "The NIST Definition of Cloud Computing" (PDF). NIST. https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-145.pdf. Retrieved 21 August 2021. 
  2. "What Is SaaS? SaaS Definition". Cloudflare, Inc. https://www.cloudflare.com/learning/cloud/what-is-saas/. Retrieved 21 August 2021. 
  3. 3.0 3.1 "What is Platform-as-a-Service (PaaS)?". Cloudflare, Inc. https://www.cloudflare.com/learning/serverless/glossary/platform-as-a-service-paas/. Retrieved 21 August 2021. 
  4. "What Is IaaS (Infrastructure-as-a-Service)?". Cloudflare, Inc. https://www.cloudflare.com/learning/cloud/what-is-iaas/. Retrieved 21 August 2021. 
  5. "What is Function-as-a-Service (FaaS)?". Cloudflare, Inc. https://www.cloudflare.com/learning/serverless/glossary/function-as-a-service-faas/. Retrieved 21 August 2021. 
  6. "What is BaaS? Backend-as-a-Service vs. serverless". Cloudflare, Inc. https://www.cloudflare.com/learning/serverless/glossary/backend-as-a-service-baas/. Retrieved 21 August 2021. 
  7. "What Is a Private Cloud? Private Cloud vs. Public Cloud". Cloudflare, Inc. https://www.cloudflare.com/learning/cloud/what-is-a-private-cloud/. Retrieved 21 August 2021. 
  8. Tucakov, D. (18 June 2020). "What is Community Cloud? Benefits & Examples with Use Cases". phoenixNAP Blog. phoenixNAP. https://phoenixnap.com/blog/community-cloud. Retrieved 21 August 2021. 
  9. "What Is Hybrid Cloud? Hybrid Cloud Definition". Cloudflare, Inc. https://www.cloudflare.com/learning/cloud/what-is-a-public-cloud/. Retrieved 21 August 2021. 
  10. 10.0 10.1 10.2 "What Is Hybrid Cloud? Hybrid Cloud Definition". Cloudflare, Inc. https://www.cloudflare.com/learning/cloud/what-is-hybrid-cloud/. Retrieved 21 August 2021. 
  11. 11.0 11.1 11.2 "What Is Multicloud? Multicloud Definition". Cloudflare, Inc. https://www.cloudflare.com/learning/cloud/what-is-multicloud/. Retrieved 21 August 2021. 
  12. IBM Cloud Education (3 November 2020). "Distributed cloud". IBM. https://www.ibm.com/cloud/learn/distributed-cloud. Retrieved 21 August 2021. 
  13. 13.0 13.1 13.2 Costello, K. (12 August 2020). "The CIO’s Guide to Distributed Cloud". Smarter With Gartner. https://www.gartner.com/smarterwithgartner/the-cios-guide-to-distributed-cloud/. Retrieved 21 August 2021. 
  14. Boniface, M.; Nasser, B.; Papay, J. et al. (2010). "Platform-as-a-Service Architecture for Real-Time Quality of Service Management in Clouds". Proceedings of the Fifth International Conference on Internet and Web Applications and Services: 155–60. doi:10.1109/ICIW.2010.91. 
  15. Xiong, H.; Fowley, F.; Pahl, C. et al. (2014). "Scalable Architectures for Platform-as-a-Service Clouds: Performance and Cost Analysis". Proceedings of the 2014 European Conference on Software Architecture: 226–33. doi:10.1007/978-3-319-09970-5_21. 
  16. Violino, B. (19 July 2019). "What is PaaS? Platform-as-a-service explained". InfoWorld. https://www.infoworld.com/article/3223434/what-is-paas-software-development-in-the-cloud.html. Retrieved 21 August 2021. 
  17. "Serverless Architectures with AWS Lambda: Overview and Best Practices" (PDF). Amazon Web Services. November 2017. https://d1.awsstatic.com/whitepapers/serverless-architectures-with-aws-lambda.pdf. Retrieved 21 August 2021. 
  18. 18.0 18.1 "Lambda runtimes". Amazon Web Services. https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html. Retrieved 21 August 2021. 
  19. Morelo, D. (2020). "What is Amazon Linux 2?". LinuxHint. https://linuxhint.com/what_is_amazon_linux_2/. Retrieved 21 August 2021. 
  20. 20.0 20.1 "Serverless computing: A cheat sheet". TechRepublic. 25 December 2020. https://www.techrepublic.com/article/serverless-computing-the-smart-persons-guide/. Retrieved 21 August 2021. 
  21. Fruhlinger, J. (15 July 2019). "What is serverless? Serverless computing explained". InfoWorld. https://www.infoworld.com/article/3406501/what-is-serverless-serverless-computing-explained.html. Retrieved 21 August 2021. 
  22. Sander, J. (1 May 2019). "Serverless computing vs platform-as-a-service: Which is right for your business?". ZDNet. https://www.zdnet.com/article/serverless-computing-vs-platform-as-a-service-which-is-right-for-your-business/. Retrieved 21 August 2021. 
  23. Hurwitz, J.S.; Kaufman, M.; Halper, F. et al. (2021). "What is Hybrid Cloud Computing?". Dummies.com. John Wiley & Sons, Inc. https://www.dummies.com/programming/cloud-computing/hybrid-cloud/what-is-hybrid-cloud-computing/. Retrieved 21 August 2021. 
  24. "What is Distributed Cloud Computing?". Edge Academy. StackPath. 2021. https://www.stackpath.com/edge-academy/distributed-cloud-computing/. Retrieved 21 August 2021. 
  25. "What is Distributed Cloud". Entradasoft. 2000. http://entradasoft.com/blogs/what-is-distributed-cloud. Retrieved 21 August 2021.