Azure Architecture - Beginner

Azure Architecture - Beginner

Highlighting Azure end to end architecture for web services and databases

Whenever there is a requirement to host a web server or a website, we may need a physical server or a VM server or we may think of going serverless. We may also think or come across Nginx, IIS or tomcat.

In the architecture discussed here, the websites will be hosted on Azure virtual machines. We need to configure the virtual machine instance for the same.

Azure Virtual Machines is an on-demand, scalable computing offering by Azure. It gives us the flexibility of virtualization without having to buy and maintain the physical hardware that runs it.

After we configure the virtual machines, we need to configure Azure Network Security Group (NSG) on top of it.

NSG contains security rules that allow or deny inbound network traffic to, or outbound network traffic from, several types of Azure resources. We define the source and destination ports along with protocols for each rule.

We need to manage autoscaling in our infrastructure, for that we have to enable Azure virtual machine scale sets.

Azure virtual machine scale sets let us create and manage a group of load balanced VMs. The number of VM instances can automatically increase or decrease in response to demand or a defined schedule. Therefore, this helps our application to automatically scale itself.

Step1.png

Now, we have configured two sets of VMs, we also need to balance the load in between, so we have to configure the Load Balancer between the VMs.

Load balancer distributes inbound network traffic that arrive at the load balancer's front end to backend pool instances, i.e. VMs . These flows are according to configured load-balancing rules and health probes.

Talking about the security aspect of the Azure Infrastructure, we can configure Azure Web Application Firewall on Application Gateway.

It protects web apps from common web-hacking techniques such as SQL injection and security vulnerabilities such as cross-site scripting.

We can also enable DDoS protection.

Step 2.png

Now, we need a domain for our public to access our website. We need a domain to make it possible. Azure DNS will help us to configure our domain and to redirect to our IP internally.

Azure DNS is a hosting service for DNS domains that provides name resolution by using Microsoft Azure infrastructure. By hosting our domains in Azure, you can manage the DNS records by using the same credentials, APIs, tools, and billing as your other Azure services.

We can have Azure CDN in between Azure DNS and Load Balancer.

CDN is a distributed network of servers called edge servers which helps in reducing latency by serving content for a user's request from these edge servers. So, it helps in efficient delivery of web contents to users.

Step 3.png

For handling the backup mechanism, we can have our backup on Azure Blob Storage. Here, for instance, we can take the backup of our virtual machines. We can also use Azure Site recovery to overcome and be prepared for failovers.

Step 4.png

Next, we come up with monitoring and in our azure infrastructure, we can configure monitoring services using Azure Monitor.

Azure Monitor is a tool that collects and analyzes data about the various Azure resources and the infrastructure on which these resources are run. Azure Monitor offers a one-stop solution to store and analyze data about the working of various resources.

Whenever any of our servers are down, Azure Monitor can notify us using Notification Hub which is a highly scalable mobile push notification engine by Microsoft that is compatible with all significant platforms.

Step 6.png

For our database, we can use Azure SQL database which is a managed cloud database as a part of Azure. It is PaaS feature which handles most of the database management functions such as upgrading, patching, backups, and monitoring without user involvement and is always running on the latest stable version of the SQL Server database engine and patched OS.

Step 7.png

Although we have completed the basic Azure Infrastructure but additionally, we can use API gateway if we want to expose API and can also configure an Azure Function which can be used to run some logic based on the requirement.

image.png

This is what the infra looks like with all the relevant services being used and set up together to get a brief idea about Azure cloud environment infrastructure.