
The public cloud architecture
In a typical definition, the public cloud is a fully virtualized environment, which is accessible both over the internet or private network lines. However, in recent times, public cloud vendors also started offering an on-premises physical infrastructure for better hybrid cloud adoption. The public cloud provides a multi-tenancy model, where IT infrastructure such as storage and compute are shared between multiple customers; however, they are isolated at the software and logical network levels, and do not interfere with each other's workload. In the public cloud, by creating network-level isolation, organizations can have their virtual private cloud, which is equivalent to the logical data center.
Public cloud storage achieves high durability and availability, by creating a redundancy model using multiple data centers, and robust data replication. This makes them achieve architecture resiliency and easy scalability.
There are three major types of cloud computing model, as shown here:

As shown in the diagram, you can see a comparison between customer responsibilities in the on-premises environment with the cloud computing service model. In on-premises, the customer has to manage everything, while in the cloud computing model, customers can offload responsibilities to the vendor and focus on their business needs. The following points are high-level details of services that are provided under different cloud computing models:
- Infrastructure as a Service (IaaS): In the IaaS model, a vendor provides infrastructure resources such as a compute server, networking components, and data storage space as managed services. It helps customers to use IT resources without worrying about handling data center overheads such as heating and cooling, racking and stacking, physical security, and so on.
- Platform as a Service (PaaS): The PaaS model adds a layer of service, where the vendor takes care of the resources that are required for your development platform, such as the operating system, software maintenance, patching, and so on, along with infrastructure resources. The PaaS model facilitates your team's focus on writing business logic and handle data, by taking care of all of the platform maintenance burdens for you.
- Software as a Service (SaaS): The SaaS model adds one more layer of abstraction on top of the PaaS and IaaS models, where the vendor provides ready-to-use software, and you pay for the service. For example, you use email services such as Gmail, Yahoo! Mail, AOL, and so on, where you get your own space of email as a service, and you don't have to worry about underlying applications or infrastructures.
The fourth emerging model is the Function as a Service (FaaS) model, which is becoming popular in the building of serverless architecture using services including AWS Lambda. You will learn more details about serverless architecture in Chapter 6, Solution Architecture Design Patterns.