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

From LIMSWiki
Jump to navigationJump to search
Line 1: Line 1:
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.
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:


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.
* 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>


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>
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.  


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">{{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><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>
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:31, 3 February 2022

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.[1][2]
  • 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.[3]
  • 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.[4][5]

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.[1] 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.[3] 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.[4][6]

References

  1. 1.0 1.1 Cite error: Invalid <ref> tag; no text was provided for refs named CFWhatIsHybrid
  2. 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. 
  3. 3.0 3.1 Cite error: Invalid <ref> tag; no text was provided for refs named CFWhatIsMulti
  4. 4.0 4.1 Cite error: Invalid <ref> tag; no text was provided for refs named CostelloTheCIO20
  5. "What is Distributed Cloud Computing?". Edge Academy. StackPath. 2021. https://www.stackpath.com/edge-academy/distributed-cloud-computing/. Retrieved 21 August 2021. 
  6. "What is Distributed Cloud". Entradasoft. 2000. http://entradasoft.com/blogs/what-is-distributed-cloud. Retrieved 21 August 2021.