Day 11: What is Load Balancing and Other Services in azure

Anand RavalAnand Raval
8 min read

Load Balancing

  • Increases availability & resiliency

    • Availability: to how long your service is up and running without interruption

      • High availability (HA), or highly available = a service that's up and running for a long period of time.

      • Five nines availability: Guaranteed to be running 99.999 percent of the time

    • Resiliency refers to a system's ability to stay operational during abnormal conditions e.g.

      • Natural disasters, system maintenance, spikes in traffic, threats made by malicious parties
  • Load balancer distributes traffic evenly among each system in a pool.

    • The idea is to have additional systems ready, in case one goes down or serving too many users.
  • The load balancer becomes the entry point to the user.

    • The user doesn't know (or need to know) which system the load balancer chooses to receive the request.
  • 3 load balancer

    • If a VM is unavailable or stops responding, the load balancer stops sending traffic to it.
  • In 3-tier architecture, the app and data tiers can also have a load balancer. It all depends on what your service requires.

  • You can configure your own load balancer on a VM, or use Azure Load Balancer, Azure Application Gateway, Content Delivery Network or Azure Traffic Manager.

Azure Load Balancer

  • Microsoft does the maintenance for you.

    • There's no infrastructure or software for you to maintain
  • Define the forwarding rules based on the source IP and port to a set of destination IP/ports.

  • Supports inbound and outbound scenarios (internal + external load balancer)

  • Provides low latency and high throughput

    • ๐Ÿ“ Low latency: computer network that is optimized to process a very high volume of data messages with minimal delay (latency).
  • Scales up to millions of flows for all Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) applications

  • Use-cases:

    • incoming internet traffic

    • internal traffic across Azure services

    • port forwarding for specific

    • ๐Ÿ’ก Outbound connectivity for VMs in your virtual network

Azure Application Gateway

  • ๐Ÿ’กBetter option if all of your traffic HTTP.

  • Load balancer designed for web applications

    • It's application layer (OSI layer 7) load balancing since it understands the structure of the HTTP message.
  • It uses Azure Load Balancer at the transport level (TCP) behind the scenes.

  • Functionalities:

    • Cookie affinity

      • Useful when you want to keep a user session on the same backend server.
    • SSL termination

      • Can manage your SSL certificates and pass unencrypted traffic to the backend servers to avoid encryption/decryption overhead.

      • Full end-to-end encryption for applications that require that.

    • Web application firewall

      • Supports a sophisticated firewall (WAF) with detailed monitoring and logging to detect malicious attacks against your network infrastructure.
    • URL rule-based routes

      • Route traffic based on URL patterns, source IP address and port to destination IP address and port.

      • Helpful when setting up a content delivery network.

    • Rewrite HTTP headers

      • Addadd or remove information from the inbound and outbound HTTP headers of each request to enable important security scenarios, or scrub sensitive information such as server names.

Azure Content Delivery Network

  • Caches content at nodes across the world and provide better performance to end users.

  • Allows distributed network of servers that can efficiently deliver web content to users to minimize latency.

  • Can be hosted in Azure or any other location.

  • ๐Ÿ’ก Use-cases:

    • web applications containing multimedia content

    • a product launch event in a particular region,

    • or any event where you expect a high-bandwidth requirement in a region.

DNS

  • DNS, or Domain Name System, is a way to map user-friendly names to their IP addresses.

    • E.g. contoso.com might map to IP address of the load balancer at the web tier, 40.65.106.192.
  • You can bring your own DNS server or use Azure DNS

Azure DNS

  • A hosting service for DNS domains that runs on Azure infrastructure.

  • Provides ultra-fast DNS responses and ultra-high domain availability

Azure Traffic Manager

  • DNS based traffic load balancer

  • Allows you to make e.g. your website located in the United States, load faster for users located in Europe or Asia.

  • Uses the DNS server that's closest to the user to direct user traffic to a globally distributed endpoint.

  • It directs the client web browser to a preferred endpoint.

  • Can route traffic in a few different ways, using e.g. to the endpoint with the lowest latency.

  • You can connect Traffic Manager to your own on-premises networks.

Network latency

  • ๐Ÿ“ The time it takes for data to travel over the network.

  • Typically measured in milliseconds.

  • Bandwidth vs Latency

    • Bandwidth = the amount of data that can fit on the connection.

    • Latency = the time it takes for that data to reach its destination.

  • Affected by factors such as:

    • type of connection you use

    • how your application is designed

    • biggest factor = distance

  • One way to reduce latency is to provide exact copies of your service in more than one region using Azure Traffic Manager.

Load Balancer vs Azure Traffic Manager

  • Azure Load Balancer distributes traffic within the same region.

    • Traffic Manager works at the DNS level, and directs the client to a preferred endpoint across regions.
  • Both help with resiliency in different ways.

    • Load Balancer detects an unresponsive VM => it directs traffic to other VMs in the pool.

    • Traffic Manager monitors the health of your endpoints, finds an unresponsive endpoint => it directs traffic to the next closest endpoint that is responsive.

Other Azure Services

Web

  • Azure Notification Hubs

    • Send push notifications to any platform from any back end.
  • Azure API Management

    • Publish APIs to developers, partners, and employees securely and at scale.
  • Azure Cognitive Search

    • Fully managed search as a service.
  • Azure SignalR Service

    • Add real-time web functionalities easily.

Internet of things

  • Internet allows any item that's online-capable to access valuable information

    • This ability is for devices to garner & relay information for data analysis is called Internet of Things (IoT).

    • E.g. smart watches, smart thermostats, smart refrigerators. Personal computers used to be the norm.

  • IoT Central

    • ๐Ÿ“ SaaS to manage IoT devices
  • Azure IoT Hub

    • Takes data, coordinates in and out

    • Integrates sensors, devices and manages them.

    • Messaging hub that provides secure communications between and monitoring of devices

    • IoT Edge

      • Allows pushing data analysis models directly onto IoT devices

      • Allowing them to react quickly to state changes without needing to consult cloud-based AI models.

Big data

  • Big Data = large volumes of data

    • E.g data from weather systems, communications systems, genomic research, imaging platforms
  • Hard to analyze and make decisions

    • Traditional forms of processing and analysis becomes no longer appropriate.

    • Solution: Open source cluster technologies

  • Azure supports a broad range of technologies and services to provide big data and analytic solutions.

  • ๐Ÿ“ Some examples

    • Azure Synapse Analytics

    • Azure HDInsight

      • Process big data through Hadoop clusters

      • More complete than Azure Data Lake Analytics

    • Azure Data Lake Analytics

      • Transform big data on Azure data lake
    • Azure Databricks

      • Apache Sparkโ€“based analytics service

      • Can be integrated with other Big Data services in Azure.

    • Data Lake Store

      • Secure, massively scalable and built to the open HDFS standard
    • Azure Data Factory

      • Pipelines for data analysis

Artificial Intelligence

  • The core is Machine Learning.

    • Allows computers to use existing data to forecast future behaviors, outcomes, and trends.

    • Computers learn without being explicitly programmed.

  • Forecasts or predictions can make apps and devices smarter.

    • E.g. when you shop online, machine learning helps recommend other products you might like based on what you've purchased.

Azure Machine Learning Service

  • Cloud-based environment you can use to develop, train, test, deploy, manage, and track machine learning models.

  • Can auto-generate a model and auto-tune it for you.

  • Lets you start training on your local machine, and then scale out to the cloud

Azure Cognitive services

  • ๐Ÿ“ AI SaaS services (pre-built APIs)

  • Vision: Image-processing algorithms to smartly identify, caption, index, and moderate your pictures and videos.

  • Speech: Convert spoken audio into text, use voice for verification, or add speaker recognition to your app.

  • Knowledge mapping: Map complex information and data in order to solve tasks such as intelligent recommendations and semantic search.

  • Bing Search: Add Bing Search APIs to your apps and harness the ability to comb billions of webpages, images, videos, and news with a single API call.

  • Natural Language processing: Allow your apps to process natural language with pre-built scripts, evaluate sentiment and learn how to recognize what users want.

Azure Machine Learning Studio

  • Collaborative, drag-and-drop visual workspace for machine learning solutions

  • Allows to build, test, and deploy machine learning models with algorithms and data-handling modules

DevOps

  • Brings together people, processes, and technology, automating software delivery to provide continuous value to your users.

Azure DevOps

  • ๐Ÿ“ Azure DevOps Services (formerly known as Visual Studio Team Services, or VSTS)

  • Provides development collaboration tools including pipelines, Git repositories, configurable Kanban boards, and automated load testing

    • Consists of:

      • Azure Repos: Source control for your code.

      • Azure Pipelines: providing build & release services for continuous integration & delivery

      • Azure Boards: Agile tools that support planning and tracking work items

      • Azure Test Plans: Tools for testing your applications

      • Azure Artifacts: Allows teams to work with maven, npm and NuGet packages, like purpose as artifactory

Azure DevTest Labs

  • ๐Ÿ“ Creates labs consisting of pre-configured Windows & Linux environments or Azure Resource Manager templates.

  • Good for testing can use to test or demo your applications directly from your deployment pipelines.

1
Subscribe to my newsletter

Read articles from Anand Raval directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Anand Raval
Anand Raval

"I'm a 3rd-year Computer Engineering student at Marwadi University with skills in C++, web development (MERN stack), and DevOps tools like Kubernetes. I contribute to open-source projects and share tech knowledge on GitHub and LinkedIn. I'm learning cloud technologies and app deployment. As an Internshala Student Partner, I help others find jobs and courses." now currently focusing on #90DaysOfDevops