Computing Services: SaaS, PaaS, and IaaS
There are three primary computing services: Software as a Service (SaaS), Platform as a Service (PaaS), and Infrastructure as a Service (IaaS).
A Software as a Service (SaaS) is when a cloud provider hosts applications and makes them available to customers to use over the internet. SaaS software is designed to facilitate customers accomplishing specific end-to-end activities. The process flows defining who is responsible for each task and which apps to use to accomplish different tasks are already built in the system. A customer runs their data through the defined processes, similar to how water in a river follows the path that's been carved into the surrounding landscape. Customers can access SaaS applications from their web browser, and the SaaS provider is constantly developing new enhancements and features with the latest technology. For SAP's public cloud SaaS solutions, we install upgrades on a regular schedule in all customer systems. For our SAP S/4HANA Cloud, Private Edition solution, we handle the technical upgrade activities, but let each customer individually decide when they are ready for an upgrade to be installed (with an upgrade being mandatory at least once every 5 years).
A Platform as a Service (PaaS) is when a cloud provider hosts a development platform on its own infrastructure and makes the platform and services that run on the platform available to customers over the internet. This is not a SaaS solution with defined process flows, but a development space where a customer subscribes to a specific service and uses the development tools available to create something using that service. For example, if I want to design a mobile app that consumes data from my SaaS solution and can run on iOS and Android devices, I would subscribe to a service that supports mobile app development. Within the service, I can develop, configure, and manage my new mobile application. Another consideration is how the mobile app consumes data from my SaaS solution, and whether or not the app has the ability to update certain fields directly in my SaaS solution. To make sure the app can consume and send data, I would also need to subscribe to an integration service to develop and run a custom integration. The primary users of a PaaS are developers who choose which services to subscribe to and access the PaaS over the internet.
An Infrastructure as a Service (IaaS) is when a cloud provider hosts servers, storage, and/or other virtual computing resources, and makes them available to customers to consume over the internet. This is beneficial, because a customer can "rent" access to a server on a pay-per-use basis and avoid the expensive up-front cost of purchasing physical hardware and the technical knowledge required to set it up. For example, if I have thousands of pictures that take up too much space on a laptop hard drive, I could subscribe to a document storage service like iCloud, Google Drive, Dropbox, or others and upload all my photos there. The IaaS provider is delivering a storage service that runs on their servers. They host the infrastructure and handle tasks like system maintenance and backups so customers don't have to.