Virtualization & Hypervisors: Virtualization abstracts physical hardware into virtual machines or containers which allows multiple computing environments to run simultaneously. This process is orchestrated via ==hypervisor==, which is a piece of software that sits between the hardware and VMs.
2 Types of Hypervisors:
- Type1 Bare Metal -- Run directly on the hardware which offers better performance and efficiency.
- Type2 Hosted -- Run on-top of an existing operating system which provides easier management and setup.
Through hypervisors, cloud providers can ensure high availability and seamless resource scalability which are critical for multi-tenant environments.
## Scalable Storage Systems
Scalable storage systems are critical in cloud environments to manage the ever-growing amounts of data. These systems, often referred to as object storage, provide flexibility by allowing users to store large amounts of unstructured data across distributed resources.
> NOTE! Object storage systems categorize data into objects rather than files, facilitating easy access and manipulation across cloud services.
Key Properties:
- Dynamic scalability which allows for storage expansion without downtime.
- Highly durable and persistent, typically done through redundancy and replication.
- Accessible from anywhere enabling global access and integration with various cloud services.
### High-Speed Networks and Software-Defined Networking (SDN)
Networking plays a vital role in cloud architecture. High-speed networks facilitate the quick transfer of data to ensure efficient communication between cloud services. A key enabler of versatile network infrastructure is Software-Defined Networking (SDN).
> NOTE! SDN separates the networks control and forwarding functions which can introduce vulnerabilities if not properly secured.
SDN Enables:
- Centralized management of network resources.
- Increased agility and flexibility as network configurations can be adjusted dynamically.
- Enhanced programmability which allows for customization to better meet application requirements.
#### Distributed Databases
These are crucial for managing large volumes of data across different locations. They ensure data consistency and availability, a necessity for cloud environments that operate at a global scale.
Characteristics:
- Scalability -- Ability to handle increasing loads by distributing data across multiple nodes.
- Fault Tolerance -- Ensures continuous availability in case of node failures, achieved via replication and failover mechanisms.
- Consistency Models -- Can offer varying levels of consistent from strong to eventual which provides balance between performance and reliability.
##### Orchestration Tools
Orchestration tools such as Kubernetes automate the deployment, scaling, and management of containerized applications. They ensure applications run smoothly by managing resources dynamically and ensuring optimal performance.
Benefits include:
- Automated healing to ensure availability and reliability.
- Simplified management of complex applications across hybrid and multi-cloud environments.
- Improved resource utilization, reducing overhead costs.
##### Cloud Reference Architecture
A cloud reference architecture provides a blueprint of cloud services which include application, platform, and infrastructure capabilities. It defines they key building blocks necessary to deliver scalable, resilient cloud services.
This architecture emphasizes:
- Resource pooling to serve multiple tenants concurrently.
- On-demand self-service to allow users to adjust resources according to their needs.
- Rapid elasticity enabling dynamic scaling based on real-time demand.