User:Shawndouglas/sandbox/sublevel45
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.[1][2][3] 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."[4][5] 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.[6] This can then be packaged into a container image that runs on Amazon's servers.[5] 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.[7] 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.[7][8]
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.[9][10]
References
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ "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.
- ↑ 5.0 5.1 "Lambda runtimes". Amazon Web Services. https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html. Retrieved 21 August 2021.
- ↑ Morelo, D. (2020). "What is Amazon Linux 2?". LinuxHint. https://linuxhint.com/what_is_amazon_linux_2/. Retrieved 21 August 2021.
- ↑ 7.0 7.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.
- ↑ 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.
- ↑ "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.
- ↑ 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.