Cloud computing is the delivery of various services such as data storage, servers, databases, networking, and software, over the Internet.
Cloud storage allows customers to save files to a remote database and retrieve them whenever they need them. So, a cloud environment provides various types of advantages.
High availability: High availability refers to a computing infrastructure that allows it to continue operating even if some of its components fail. So, depending on the service-level agreement (SLA) that a customer choose, they can experience a continuous user experience with no apparent downtime of cloud-based apps.
Availability = uptime / (uptime + downtime)
[A cloud SLA (Service-Level Agreement) is an agreement between a cloud service provider and a customer that ensures specific terms that state the level of service that will be provided to a customer.]
Scalability: Scalability is the ability of the system to support desired workload.
Basically, scalability basically handles larger loads by adding resources either making hardware stronger (scale up) or adding additional nodes (scale out)
It helps the system to scale out to ensure capacity during workload peaks and return to normal automatically when the peak drops.
Apps in the cloud can scale vertically and horizontally.
Vertical Scalability increases compute capacity by adding RAM or CPUs to a virtual machine.
Horizontal Scalability increases compute capacity by adding instances of resources, such as adding VMs to the configuration.
Elasticity: Elasticity is the ability to scale automatically/dynamically.
It provides the capacity to fit the resources needed to cope with loads dynamically.
It quickly expands or decreases cloud-based resources to satisfy changing demands without worrying about capacity planning and engineering for peak usage.
Cloud Agility is the ability to react quickly.So, the speed and flexibility in the cloud which allow users to allocate and deallocate resources quickly is often called cloud agility.
Because of Agility the cloud providers maintain resources and provision them, so user can concentrate on other issues such as security, monitoring, and analysis.
Geo-distribution: Geo distribution is designed in such a way to deploy apps and data to regional datacenters around the globe,which ensures the customers always have the best performance in their region.
Fault Tolerance: Fault tolerance is the ability to maintain system uptime while physical and service component failures happen.
Disaster recovery: Disaster Recovery is the ability of a system to recover from a human -induced disaster that has destroyed the primary data-center.
Using cloud computing system we can deploy applications in multiple regions and data-replication in another region; and can also access it easily.
As multiple times, we have mentioned regions, lets get to know more about it.
Region: Region is the location of your services. A region is a set of datacenters connected through a regional low-latency network.
Microsoft azure has the most number of regions currently, so it gives customers the flexibility to deploy application wherever needed.
Two kinds of regions we need to keep in mind:
1) Special government regions (US DoD Central, US Gov Virginia, etc.)
2) Special partnered regions (China East, China North)
Region Pair: Each region pairing with another region makes region pair. Region pairs are static and we cannot choose it.
Availability Zone: Then comes the availability zone which is a regional feature. It is designed to protect from data center failures. Availability Zones are grouping of physically separate facilities, so if a zone goes down others continue working. But not all regions are supported in availability zone, a supported region has three or more zones.