what is cloud computing?
As defined by NIST:
Cloud computing is a model for enabling 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.
Main advantages:
-> Scalability
-> cost-efficientcy
-> accessiblility
Three main service models:
-> Iaas (infrastructure as a service):
Infrastructure as a Service provides virtualized computing resources over the internet. It offers virtualized hardware, networking, and storage resources.
Characteristics of IaaS:
- Users have control over the operating system, applications, and networking components. Users manage and maintain the VMs, including security patches and updates.
s3-> store our code ec2-> instance route 53 -> DNS
Use cases: Hosting development and test environments, running scalable web applications etc.
Examples of IaaS compute engines: AWS EC2, Azure Virtual Machines, Google Cloud Compute Engine.
-> Paas (platform as a service):
Platform as a Service offers a platform and environment to develop, test, deploy, and manage applications without worrying about the underlying infrastructure.
Characteristics of PaaS:
- Developers focus on writing code and managing the application, while the platform handles the infrastructure.
Use cases: Developing and deploying web and mobile applications
e.g: Heroku, Google App Engine, Microsoft Azure App Service.
-> Saas (Software as a service):
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 .
The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage.
e.g: Google Spread Sheet, Microsoft Office 365.
compute engines in the context of SaaS: The backend infrastructure that supports the software delivered as a service.