Skip to main content

Microsoft Azure Cloud

danger

Following document is still under construction.

Hosting in the Microsoft Azure cloud is the basic solution for the installation, but it can cater the high availability by the features of each component.

Architecture diagram

Azure cloud server infrastructure

This structure is the design of existing Bookings ONE Cloud subscription service, which has multiple production servers running on this structure for over a year.

1. Azure App Services

Azure App Service is an HTTP-based service for hosting web applications. It supports the advance features such as load balancing, autoscaling, and automated management, which makes the website easy to manage.

Scalability:

Azure App support both Scale up and Scale out. Scale up - Retrieve more CPU, memory, disk space, and extra features like dedicated virtual machines (VMs), custom domains and certificates, staging slots, autoscaling etc. Scale out - Increase the number of VM instances that run the application.

Resilience:

Scaling out of system can be implemented on multiple VM instances, therefore the system setting should be configured for running the application on at least 2 instances which provides the resilience to prevent single point of failure.

2. Azure SQL Database

Azure SQL Database is a fully managed platform as a service (PaaS) database engine that handles most of the database management functions such as upgrading, patching, backups, and monitoring without user involvement.

Scalability:

Azure SQL Database offers the ability to dynamically scale databases, with a single database, use either DTU or vCore models to define maximum number of resources that will be assigned to each database.

Resilience:

Azure SQL Database automatically handles critical servicing tasks, such as patching, backups, Windows and Azure SQL upgrades, as well as unplanned events such as underlying hardware, software, or network failures. When the underlying database in Azure SQL Database is patched or fails over, the downtime is not noticeable since there are logical retry in Bookings ONE server. SQL Database Instance can quickly recover even in the most critical circumstances ensuring that the data is always available.

Data backup:

SQL Database use SQL Server technology to create full backups every week, differential backups every 12-24 hours, and transaction log backups every 5 to 10 minutes. The backup is configurable through the azure portal.

3. Azure Blob Storage

Azure Blob storage is Microsoft's object storage solution for the cloud. Blob storage is optimized for storing massive amounts of unstructured data. Unstructured data is data that does not adhere to a particular data model or definition, such as text or binary data.

In Bookings ONE, we will use the blob storage for:

  • Serving images directly to a browser
  • Writing to log files

Scalability:

Azure blob storage usage is dependency on the volume of data stored, the quantity and types of operations performed, along with any data transfer costs.

In Bookings ONE cases, it uses blob storage to save the administrator uploaded images and system log, the total data size will be less than 10GB and the maximum access are limited 4000 staffs access from the customer, the usage in is much lower than the maximum limitation of the blob storage, for the limitation.

Blob storage has the full capacity to support the scaling in the future.

Resilience:

Azure Storage always stores multiple copies of data so that it is protected from planned and unplanned events, including transient hardware failures, network or power outages, and massive natural disasters. Redundancy ensures that the storage meets its availability and durability targets even in the face of failures.