A Guide to Common Azure Services
by George Kosmidis / Published 2 years ago
Introduction
In this article, we'll do a short overview of some of the most widely used Azure Services. In a bullet format, you'll quickly learn about their ideal use cases, which services complement them best, and where to avoid using them. Additionally, we'll note on important aspects such as backups, scalability, availability, and monitoring to help you make informed decisions when using these services. This article will be updated in the long run with new services, as demand and time allows.Azure Services ToC alphabetically sorted
- Backup and Recovery Services
- Cache Services
- Compute Services
- Data Integration and Management Services
- Databases Services
- Key Management Services
- Messaging & Event Processing Services
- Monitoring Services
- Networking & Hybrid Integration Service
- Storage Services
Azure Services
Backup and Recovery Services
Azure Backup
A cloud-based backup and disaster recovery service.
Scenarios:
Best used for backing up and restoring critical business data, such as servers, virtual machines, and databases, from on-premises or in the cloud.
Use with:
Azure Backup integrates well with other Azure services like Azure Site Recovery for disaster recovery, Azure Storage for cost-effective data storage, and Azure Monitor for monitoring and alerts.
Not ideal:
Azure Backup is not suitable for real-time or continuous data backup or replication, use Azure Site Recovery instead.
Availability:
Azure Backup provides a high level of availability through multiple data centers, with a guaranteed 99.9% uptime SLA.
Scalability:
Azure Backup scales to meet the changing needs of your organization, allowing you to store unlimited data in the cloud.
Monitoring:
Azure Backup provides a comprehensive set of monitoring and reporting capabilities, including real-time monitoring and alerts, backup reports, and detailed logs, to help you manage and troubleshoot your backup and restore operations.
Azure Site Recovery
A disaster recovery solution that helps organizations protect their critical applications and data from downtime and data loss in case of a disaster or a disruption.
Scenarios:
- Disaster recovery: Azure Site Recovery provides a fully managed disaster recovery solution that helps organizations ensure the availability and resiliency of their critical applications and data.
- Migration: Azure Site Recovery can be used to migrate applications and data to Azure, either as part of a disaster recovery plan or as a standalone migration solution.
Use with:
- Azure Backup: A fully managed backup service that can be used to protect data and configuration for applications and workloads that are protected by Azure Site Recovery.
- Azure Monitor: A fully managed monitoring service that can be used to monitor the health and performance of applications and workloads that are protected by Azure Site Recovery, and receive alerts and notifications in case of issues.
Not ideal:
Applications and workloads that are not critical, as Azure Site Recovery is designed for protecting critical applications and data, and may not be suitable for non-critical workloads.
Backup:
Not applicable.
Availability:
Azure Site Recovery is designed for high availability, and provides automatic failover and load balancing to ensure that your applications and data are always available.
Scalability:
Azure Site Recovery is highly scalable, and can be easily scaled up or down to meet the changing needs of your application, either manually or automatically based on pre-defined rules.
Monitoring:
Azure Monitor: A fully managed monitoring service that can be used to monitor the health and performance of Azure Site Recovery, and receive alerts and notifications in case of issues.
Cache Services
Azure Redis Cache
An in-memory data store that can be used as a cache or a data store and supports various data structures such as strings, hashes, and lists
Scenarios:
- High-performance caching of frequently used data to speed up application response times.
- Session management for web applications.
- Real-time message notifications and broadcasting for online games or chat applications.
- Storing and processing real-time analytics and sensor data from IoT devices.
Use with:
- Azure Functions, can be used to process data stored in Azure Redis Cache and take actions based on the data.
- Azure Stream Analytics, can be used to stream data from IoT devices into Azure Redis Cache for real-time analytics and reporting.
- Azure Web Apps, can be used to host web applications that use Azure Redis Cache for session management and data caching.
Not ideal:
- Applications that require strong consistency guarantees, as Redis Cache provides eventually consistent data.
- Applications that require data persistence, as Redis Cache is an in-memory data store.
Backup:
- Azure Backup, a fully managed backup service that can be used to protect data stored in Azure Redis Cache.
- Azure Site Recovery, a disaster recovery solution that can be used to replicate data stored in Azure Redis Cache to another region.
Availability:
Azure Redis Cache is designed for high availability, with data automatically distributed across multiple cache nodes to ensure reliability and durability.
Scalability:
Azure Redis Cache is highly scalable, and can be easily scaled up or down to meet the changing needs of your application.
Monitoring:
Azure Monitor, a fully managed monitoring service that can be used to monitor the health and performance of Azure Redis Cache, and receive alerts and notifications in case of issues.
Compute Services
Azure Container Apps
A set of services in Azure that enables you to build, deploy, and manage containerized applications at scale.
Scenarios:
- Building, deploying, and scaling modern cloud-native applications, as it provides a flexible and scalable platform for running containerized applications.
- Providing a platform for DevOps and CI/CD pipelines, as it integrates with a variety of tools and services for source control, build and deployment automation, and testing.
- Building microservices architectures, as it allows you to break down monolithic applications into smaller, more manageable services that can be deployed and scaled independently.
Use with:
- Azure Kubernetes Service (AKS): A managed Kubernetes service that makes it easy to deploy, manage, and scale containerized applications using Kubernetes.
- Azure Service Fabric: A distributed systems platform that can be used to build and deploy highly scalable, reliable, and resilient cloud applications.
- Azure DevOps: A set of services for software development and collaboration that can be used to manage the end-to-end application lifecycle, from development to deployment and operations.
Not ideal:
- Applications that require low-level access to the underlying infrastructure, as Azure Container Apps provides a fully managed platform with limited control over the underlying infrastructure.
- Applications that require real-time processing and low latency, as the multi-tenant nature of Azure Container Apps may result in variability in response times.
Backup:
- Azure Backup: A fully managed backup service that can be used to protect data and configuration for Azure Container Apps.
- Azure Site Recovery: A disaster recovery solution that can be used to replicate data and configuration for Azure Container Apps to another region.
Availability:
Azure Container Apps is designed for high availability, with automatic failover and load balancing to ensure that your applications are always available.
Scalability:
Azure Container Apps is highly scalable, and can be easily scaled up or down to meet the changing needs of your application, either manually or automatically based on pre-defined rules.
Monitoring:
Azure Monitor: A fully managed monitoring service that can be used to monitor the health and performance of Azure Container Apps, and receive alerts and notifications in case of issues.
Azure Container Instances
A service in Azure that enables you to run containers in the cloud without having to manage any infrastructure.
Scenarios:
- Running short-lived or infrequently used applications and tasks, as Azure Container Instances provides a fast and efficient way to run containers without having to manage any infrastructure.
- Testing and debugging container applications, as Azure Container Instances makes it easy to quickly run containers for testing and debugging purposes.
- Deploying small scale, stateless applications and services, as Azure Container Instances provides a simple and scalable platform for running containerized applications.
Use with:
- Azure Functions: A serverless computing platform that can be used to build and run event-driven applications and services.
- Azure Kubernetes Service (AKS): A managed Kubernetes service that makes it easy to deploy, manage, and scale containerized applications using Kubernetes.
- Azure DevOps: A set of services for software development and collaboration that can be used to manage the end-to-end application lifecycle, from development to deployment and operations.
Not ideal:
- Long-running applications and services, as Azure Container Instances is designed for short-lived or infrequently used applications and tasks.
- Applications that require persistent storage, as Azure Container Instances does not provide any built-in storage solution.
Backup:
- Azure Backup: A fully managed backup service that can be used to protect data and configuration for Azure Container Instances.
- Azure Site Recovery: A disaster recovery solution that can be used to replicate data and configuration for Azure Container Instances to another region.
Availability:
Azure Container Instances is designed for high availability, with automatic failover and load balancing to ensure that your containers are always available.
Scalability:
Azure Container Instances is highly scalable, and can be easily scaled up or down to meet the changing needs of your application, either manually or automatically based on pre-defined rules.
Monitoring:
Azure Monitor: A fully managed monitoring service that can be used to monitor the health and performance of Azure Container Instances, and receive alerts and notifications in case of issues.
Azure Functions
A serverless computing platform.
Scenarios:
- Event-driven applications that require processing of events, such as creating thumbnails from uploaded images, sending notifications, or analyzing logs.
- Building microservices and serverless architectures, where you can run small pieces of code that perform a single function.
- Applications that require rapid scaling and automatic provisioning of resources, as Azure Functions can automatically scale based on incoming request rate.
Use with:
- Azure Event Grid for event-driven architectures, enabling Azure Functions to trigger in response to events from other Azure services.
- Azure Cosmos DB for storing and processing data, enabling Azure Functions to retrieve and store data in Cosmos DB.
- Azure Service Bus for messaging and queue processing, enabling Azure Functions to process messages and queues.
Not ideal:
- Applications that require long-running or persistent processes, as Azure Functions are designed for stateless and ephemeral processing.
- Applications that require high-performance, low-latency access to data, as Azure Functions can have higher latency compared to other Azure services.
Backup:
Azure Functions provide built-in disaster recovery and data replication across multiple regions for high availability, however, for backup and restore purposes, you can use Azure Backup to protect your Azure Functions by backing up its configuration and data to a recovery vault.
Availability:
Azure Functions provide high availability by automatically replicating your functions across multiple regions and automatically provisioning additional resources to meet demand.
Scalability:
Azure Functions automatically scale based on incoming request rate, enabling you to scale up or down dynamically based on the needs of your application. You can also set up auto-scale rules based on custom metrics.
Monitoring:
Azure Functions provides built-in monitoring capabilities, including logging and telemetry data, and provides integration with Azure Monitor to track performance and view logs and metrics. You can also use Azure Log Analytics and Azure Monitor to track and visualize your Azure Functions usage and performance and set up alerts to notify you of issues.
Azure Kubernetes Service (AKS)
A fully managed Kubernetes service that makes it easy to deploy and manage containerized applications in the cloud.
Scenarios:
- Containerized applications: AKS is ideal for deploying and managing containerized applications, especially those that are built using microservices architecture.
- DevOps workflows: AKS supports DevOps workflows by providing an integrated and fully managed platform for deploying, updating, and scaling containerized applications.
Use with:
- Azure Container Registry: A fully managed container registry that can be used to store and manage container images for deployment on AKS.
- Azure Monitor: A fully managed monitoring service that can be used to monitor the health and performance of containerized applications deployed on AKS, and receive alerts and notifications in case of issues.
Not ideal:
- Applications that are not containerized, as AKS is designed specifically for deploying and managing containerized applications.
- Applications that require a high degree of customization and control, as AKS is a fully managed service and does not provide direct access to the underlying infrastructure.
Backup:
Azure Backup: A fully managed backup service that can be used to protect data and configuration for applications deployed on AKS.
Availability:
AKS is designed for high availability, and provides automatic failover and load balancing to ensure that your applications are always available.
Scalability:
AKS is highly scalable, and can be easily scaled up or down to meet the changing needs of your application, either manually or automatically based on pre-defined rules.
Monitoring:
Azure Monitor: A fully managed monitoring service that can be used to monitor the health and performance of AKS, and receive alerts and notifications in case of issues.
Azure Logic Apps
A cloud-based platform for building, deploying, and running workflows that integrate with various services and systems.
Scenarios:
- Automating business processes and workflows, as Azure Logic Apps provides a visual and intuitive interface for building and deploying workflows that integrate with various services and systems.
- Integrating cloud-based and on-premises systems, as Azure Logic Apps supports a wide range of data sources and protocols for connecting to various services and systems.
- Building microservices and serverless architectures, as Azure Logic Apps provides a scalable and flexible platform for building and deploying workflows that can be triggered by events and run in response to messages.
Use with:
- Azure Functions: A serverless computing platform that can be used to build and run event-driven applications and services.
- Azure API Management: A fully managed API management platform that can be used to publish, manage, and monitor APIs and microservices.
- Azure Event Grid: A fully managed event routing service that can be used to route events to various services and systems, including Azure Logic Apps.
Not ideal:
- High-performance computing or data-intensive workloads, as Azure Logic Apps is designed for workflows and integrations, not for heavy-duty computing tasks.
- Applications that require fine-grained control over the underlying infrastructure, as Azure Logic Apps provides a managed platform for building and deploying workflows, and does not provide direct access to the underlying infrastructure.
Backup:
- Azure Backup: A fully managed backup service that can be used to protect data and configuration for Azure Logic Apps.
- Azure Site Recovery: A disaster recovery solution that can be used to replicate data and configuration for Azure Logic Apps to another region.
Availability:
Azure Logic Apps is designed for high availability, with automatic failover and load balancing to ensure that your workflows are always available.
Scalability:
Azure Logic Apps is highly scalable, and can be easily scaled up or down to meet the changing needs of your application, either manually or automatically based on pre-defined rules.
Monitoring:
Azure Monitor: A fully managed monitoring service that can be used to monitor the health and performance of Azure Logic Apps, and receive alerts and notifications in case of issues.
Azure Virtual Machines
A service that allows you to create and manage virtualized computing environments in the cloud.
Scenarios:
Azure VMs are best used for scenarios that require a flexible and scalable computing environment. They can be used to run a wide range of applications, including web applications, databases, and development environments. Azure VMs are also useful for migrating existing applications to the cloud, as well as for testing and development purposes.
Use with:
Azure VMs can be used in combination with many other Azure services, including Azure Storage, Azure Load Balancer, and Azure Networking, to create a complete and highly available computing environment in the cloud.
Not ideal:
Azure VMs may not be appropriate for scenarios that require extremely low latency or high-performance computing, as the performance of virtual machines can be affected by resource contention with other virtual machines on the same host.
Backup:
Azure VMs can be backed up using Azure Backup, a cloud-based backup service that provides data protection and recovery capabilities for virtual machines. You can use Azure Backup to create and manage backup schedules, and perform restore operations in the event of data loss.
Availability:
Azure VMs provide high availability and resiliency through features such as availability sets, which ensure that virtual machines are placed on separate physical hosts to protect against hardware failures. Additionally, you can use Azure Site Recovery to implement disaster recovery and business continuity plans for virtual machines.
Scalability:
Azure VMs can be easily scaled up or down as needed to meet changing demands. You can increase or decrease the number of virtual machines in your environment, as well as adjust the size and configuration of individual virtual machines to meet your needs.
Monitoring:
Azure VMs can be monitored using Azure Monitor, a cloud-based monitoring service that provides visibility into the performance and health of virtual machines. You can use Azure Monitor to track performance metrics, set up alerts and notifications, and visualize log data for virtual machines.
Azure Web Apps
A fully managed platform for building, deploying, and scaling web applications.
Scenarios:
- Building and deploying modern web applications, including web apps, RESTful APIs, and mobile backends.
- Hosting websites and web applications, as it provides a scalable and cost-effective platform for delivering content over the internet.
- Providing a platform for development and testing, as it provides an easy-to-use environment for building, deploying, and testing web applications.
Use with:
- Azure SQL Database: A fully managed relational database service that can be used as a backend for web applications hosted on Azure Web App.
- Azure Functions: A serverless compute service that can be used to build and run event-driven applications and microservices.
- Azure Cache for Redis: A fully managed in-memory data store that can be used as a cache for web applications hosted on Azure Web App.
Not ideal:
- Applications that require low-level access to the underlying infrastructure, as Azure Web App provides a fully managed platform with limited control over the underlying infrastructure.
- Applications that require real-time processing and low latency, as Azure Web App provides a multi-tenant platform that may result in variability in response times.
Backup:
- Azure Backup, a fully managed backup service that can be used to protect data and configuration for Azure Web App.
- Azure Site Recovery, a disaster recovery solution that can be used to replicate data and configuration for Azure Web App to another region.
Availability:
Azure Web App is designed for high availability, with automatic failover and load balancing to ensure that your applications are always available.
Scalability:
Azure Web App is highly scalable, and can be easily scaled up or down to meet the changing needs of your application, either manually or automatically based on pre-defined rules.
Monitoring:
Azure Monitor, a fully managed monitoring service that can be used to monitor the health and performance of Azure Web App, and receive alerts and notifications in case of issues.
Data Integration and Management Services
Azure Data Factory
A fully managed, cloud-based data integration service that allows you to create, schedule, and orchestrate data pipelines that can move and transform data from various sources to various destinations, including SQL databases.
Scenarios:
It's best used for ETL (Extract, Transform and Load) scenarios, and scenarios where you need to move and transform data between various sources and destinations.
Use with:
- Azure Data Lake Storage Gen1 and Gen2, for data storage and data lake scenarios.
- Azure Machine Learning, for advanced analytics and machine learning.
Not ideal:
It's not the best option for scenarios where you don't need to move or transform data between various sources and destinations.
Backup:
Azure Data Factory itself can be used as a backup solution for other services like SQL DB, Synapse and Cosmos DB; it allows you to create data pipelines that can move data from your source to different destinations.
Availability:
- Azure Data Factory provides built-in high availability and disaster recovery options, including automatic failover to a secondary replica and point-in-time restore.
Scalability:
- Scale out your data pipelines by adding more resources like data integration runtime to distribute data processing across multiple servers
- Scale out your data pipelines by adding more regions to distribute data across multiple servers
Monitoring:
- Azure Log Analytics is the best monitoring solution to use with Azure Data Factory.
- Azure Monitor can be used to monitor Azure Data Factory performance and troubleshoot issues.
- Built-in monitoring capabilities such as pipeline run and activity run history, monitoring & alerting, and Data Factory Analytics that enables you to track performance, troubleshoot issues, and identify performance bottlenecks.
Databases Services
Azure Arc-enabled SQL Server
A service that allows you to manage SQL Server instances running on-premises or in other clouds with Azure Arc.
Scenarios:
It's best used for organizations that have multiple SQL Server instances running in different environments and need a consistent way to manage and monitor them.
Use with:
- Azure Networking, for secure network connectivity.
- Azure ExpressRoute, for a private connection to Azure.
Not ideal:
It's not suitable for scenarios where you don't have any on-premises or multi-cloud SQL Server instances to manage.
Backup:
Azure Backup is the appropriate backup solution for Azure Arc-enabled SQL Server.
Availability:
- Built-in high availability with automatic failover to a secondary replica, it can be either on-premises or in another cloud, depending on the configuration.
- Built-in disaster recovery options, including point-in-time restore, and long-term retention backup
- Built-in read-scale out options, allowing you to distribute read traffic across multiple replicas.
Scalability:
- Scale up or down the performance level of your SQL Server instances running on-premises or in other clouds.
- Scale out your SQL Server instances using Azure Arc to distribute data processing across multiple servers.
Monitoring:
- Azure Log Analytics is the best monitoring solution to use with Azure SQL Managed Instance.
- Azure Monitor for SQL to monitor performance and troubleshoot issues.
- Built-in monitoring capabilities such as Automatic tuning, Query store, and Azure SQL Analytics.
Azure SQL
A fully managed relational database service that supports SQL Server-compatible Transact-SQL.
Scenarios:
Best used for traditional relational database scenarios, such as online transaction processing (OLTP) and line-of-business (LOB) applications, as well as for small to medium-sized data warehouses.
Use with:
- Azure Active Directory Authentication, for secure access to the database.
Not ideal:
It's not the best option for scenarios that require high-performance, real-time analytics and very large datasets.
Backup:
Azure Backup is the appropriate backup solution for Azure SQL Database.
Availability:
- Built-in high availability with automatic failover to a secondary replica in the same region, or a different region in the case of a disaster recovery scenario using active-geo replication.
- Built-in disaster recovery options, including point-in-time restore, and long-term retention backup.
- Built-in read-scale out options, allowing you to distribute read traffic across multiple replicas.
Scalability:
- Scale up or down the performance level with a few clicks or automatically with the use of Azure Automation.
- Scale out using read replicas to distribute read load across multiple servers.
- Scale out using Azure Elastic Database Pools to share resources among multiple databases.
Monitoring:
- Azure Log Analytics is the best monitoring solution to use with Azure SQL Database.
- Azure Monitor for SQL to monitor performance and troubleshoot issues.
- Built-in monitoring capabilities such as Automatic tuning, Query store, and Azure SQL Analytics.
Azure SQL Edge
A small-footprint version of SQL Server optimized for IoT scenarios.
Scenarios:
It's best used for Internet of Things (IoT) and edge computing scenarios, where devices have limited resources and require a lightweight, low-power database.
Use with:
- Azure IoT Hub, for IoT scenarios.
- Azure Stream Analytics, for real-time analytics.
- Azure Time Series Insights, for time-series data analysis.
Not ideal:
It's not the best option for scenarios that require high-performance or high-transactional workloads.
Backup:
Azure Backup is the appropriate backup solution for Azure SQL Edge.
Availability:
- Built-in high availability with automatic failover to a secondary replica in the same region.
- Built-in disaster recovery options, including point-in-time restore, and long-term retention backup
- Built-in read-scale out options, allowing you to distribute read traffic across multiple replicas.
Scalability:
- Scale up or down the performance level of your SQL Edge instances.
Monitoring:
- Azure Log Analytics is the best monitoring solution to use with Azure SQL Edge.
- Azure Monitor for SQL to monitor performance and troubleshoot issues.
- Built-in monitoring capabilities such as Automatic tuning, Query store, and Azure SQL Analytics.
Azure SQL Managed Instance
A fully managed SQL Server instance that provides an almost lift-and-shift experience of moving on-premises SQL Server databases to the cloud.
Scenarios:
It's best used for applications that are currently running on an on-premises SQL Server and need to be moved to the cloud with minimal changes.
Use with:
- Azure ExpressRoute, for a private connection to Azure.
Not ideal:
It's not the best option if you're looking for a fully managed service with a high level of automation and scalability.
Backup:
Azure Backup is the appropriate backup solution for Azure SQL Managed Instance.
Availability:
- Built-in high availability with automatic failover to a secondary replica in the same region, or a different region in the case of a disaster recovery scenario using active-geo replication.
- Built-in disaster recovery options, including point-in-time restore, and long-term retention backup.
- Built-in read-scale out options, allowing you to distribute read traffic across multiple replicas.
Scalability:
- Scale up or down the performance level with a few clicks or automatically with the use of Azure Automation.
- Scale out using read replicas to distribute read load across multiple servers.
- Scale out using Azure Elastic Database Pools to share resources among multiple databases.
Monitoring:
- Azure Log Analytics is the best monitoring solution to use with Azure SQL Managed Instance.
- Azure Monitor for SQL to monitor performance and troubleshoot issues.
- Built-in monitoring capabilities such as Automatic tuning, Query store, and Azure SQL Analytics.
Azure SQL Server Big Data Clusters
A fully-managed service that allows you to run SQL Server, Spark, and HDFS all together on Kubernetes.
Scenarios:
It's best used for big data scenarios and SQL Server scenarios that require integration with Apache Spark and Hadoop ecosystem.
Use with:
- Azure Data Factory, for data integration and data analytics.
- Azure Data Lake Storage Gen1 and Gen2, for data storage and data lake scenarios.
- Azure Machine Learning, for advanced analytics and machine learning.
- Azure Networking, for secure network connectivity.
Not ideal:
It's not the best option for scenarios that don't require Spark integration.
Backup:
Azure Data Factory is an appropriate backup solution for Azure SQL Server Big Data Clusters. Azure Data Factory allows you to create data pipelines that can move data from Azure SQL Server Big Data Clusters to Azure Blob Storage, Azure Data Lake Storage, or other data stores. This allows you to create backups of your data in another location, and also allows you to do incremental backups.
Availability:
- Built-in high availability and disaster recovery options, including automatic failover to a secondary replica and point-in-time restore.
- Built-in read-scale out options, allowing you to distribute read traffic across multiple replicas.
Scalability:
- Scale out your SQL Server Big Data Clusters by adding more nodes to distribute data processing across multiple servers
Monitoring:
- Azure Log Analytics is the best monitoring solution to use with Azure SQL Edge.
- Azure Monitor for SQL to monitor performance and troubleshoot issues.
- Built-in monitoring capabilities such as Automatic tuning, Query store, and Azure SQL Analytics.
Azure SQL Server on Virtual Machines
Allows you to run SQL Server on Azure virtual machines, giving you the flexibility to choose your operating system, storage, and networking options.
Scenarios:
It's best used for scenarios where you need full control over the SQL Server environment and have specific requirements that are not met by other Azure SQL services.
Use with:
- Azure ExpressRoute, for a private connection to Azure.
Not ideal:
It's not the best option for scenarios where you don't need full control over the SQL Server environment or when you have requirements that are not met by other Azure SQL services.
Backup:
Azure Backup is the appropriate backup solution for Azure SQL Server on Virtual Machines.
Availability:
- Built-in high availability with automatic failover to a secondary replica in the same region, or a different region in the case of a disaster recovery scenario using active-geo replication.
- Built-in disaster recovery options, including point-in-time restore, and long-term retention backup.
- Built-in read-scale out options, allowing you to distribute read traffic across multiple replicas.
Scalability:
- Scale up or down the performance level of your SQL Server on Virtual Machines by adjusting the size of the virtual machine.
- Scale out your SQL Server on Virtual Machines by adding more virtual machines to distribute data processing across multiple servers.
Monitoring:
- Azure Log Analytics is a good solution to use with Azure SQL Database.
- Azure Monitor for VMs to monitor the performance of your virtual machines and the underlying infrastructure.
- SQL Server Management Studio (SSMS) and SQL Server Profiler to monitor and troubleshoot performance issues for SQL Server on Virtual Machines.
Azure Synapse Analytics (formerly SQL Data Warehouse)
A fully managed, cloud-based analytics service that supports big data scenarios.
Scenarios:
Best used for large-scale data warehousing and business intelligence (BI) workloads, as well as for data integration and data analytics.
Use with:
- Azure Data Factory, for data integration and data analytics.
- Azure Data Lake Storage Gen1 and Gen2, for data storage and data lake scenarios.
- Azure Networking, for secure network connectivity.
- Azure Machine Learning, for advanced analytics and machine learning.
Not ideal:
It's not the best option for scenarios that require high-performance, real-time analytics and very large datasets.
Backup:
Azure Data Factory is an appropriate backup solution for Azure Synapse Analytics. Azure Data Factory allows you to create data pipelines that can move data from Azure Synapse Analytics to Azure Blob Storage, Azure Data Lake Storage, or other data stores. This allows you to create backups of your data in another location, and also allows you to do incremental backups.
Availability:
- Built-in high availability with automatic failover to a secondary replica in the same region.
- Built-in disaster recovery options, including point-in-time restore, and long-term retention backup
- Built-in read-scale out options, allowing you to distribute read traffic across multiple replicas.
Scalability:
- Scale up or down the performance level of your data warehouse with a few clicks or automatically with the use of Azure Automation.
- Scale out your data warehouse using Azure Data Factory to distribute data processing across multiple servers.
- Scale out your data warehouse using Azure Data Lake Storage to store large amounts of data.
Monitoring:
Azure Log Analytics is a great solution for monitoring Azure Synapse Analytics.
Key Management Services
Azure Key Vault
A secure and scalable cloud-based solution for managing and storing secrets, such as certificates, keys, and passwords.
Scenarios:
Best used for securely storing, managing, and accessing secrets, such as certificates, keys, and passwords, used by cloud applications and services.
Use with:
Everything, when you want secure any kind of secret, password, etc!
Not ideal:
Not applicable - if used for what was created for, it can work with any Azure (or not) Service.
Backup:
Backup and recovery of secrets stored in Azure Key Vault can be achieved by exporting the secrets to a file and then storing the file in a secure location. You can also periodically create snapshots of your Key Vault to use as a backup in case of disaster or data loss.
Availability:
Azure Key Vault provides a high level of availability through multiple data centers, with a guaranteed 99.9% uptime SLA.
Scalability:
Azure Key Vault scales to meet the changing needs of your organization, allowing you to store an unlimited number of secrets.
Monitoring:
Azure Key Vault provides monitoring and logging capabilities, including activity logs and diagnostic logs, to help you monitor and troubleshoot the usage and availability of your secrets.
Messaging Services
Azure Event Grid
A fully managed event routing service that enables developers to build event-driven applications.
Scenarios:
- Event-driven architectures: Event Grid enables you to build event-driven architectures and react to changes in your applications and services in near real-time.
- Serverless computing: Event Grid can be used to trigger serverless computing resources like Azure Functions or Azure Logic Apps.
- IoT devices: Event Grid can be used to receive and process telemetry from IoT devices.
- Event-based applications: Event Grid can be used for event-based applications that need to react to changes in the system.
Use with:
- Azure Functions: Azure Functions can be triggered by events emitted to Event Grid.
- Azure Logic Apps: Azure Logic Apps can be used to build workflows that are triggered by events emitted to Event Grid.
- Azure Service Bus: Azure Service Bus can be used as an intermediary between Event Grid and other services that do not have direct integration.
Not ideal:
High-volume and high-velocity data processing as Event Grid is not optimized for this use case.
Backup:
Use Azure Event Hubs or other data ingestion services as a backup destination for events that are published to Event Grid.
Availability:
Azure Event Grid is highly available as it is a globally distributed service with built-in redundancy.
Scalability:
Scalability possibilities for Azure Event Grid include scaling up and down the number of events processed per second and adding or removing event domains as required.
Monitoring:
Monitoring for Azure Event Grid can be performed through Azure Monitor, which provides insights into the health and performance of the service, as well as diagnostics and logging.
Azure Event Hubs
A fully managed, real-time data ingestion service for big data streaming and event-processing.
Scenarios:
- Event Hub is ideal for event and telemetry ingestion, such as IoT (Internet of Things) telemetry, log data, and social media data.
- It's a great option for large-scale, real-time data processing, such as real-time analytics, event-driven applications, and batch data processing.
Use with:
- Event Hub works well in combination with other Azure services such as Azure Stream Analytics for real-time data analysis, Azure Functions for serverless event-driven processing, and Azure Notification Hubs for push notifications.
- It can also be used as a source of data for Azure Databricks, Power BI, and Apache Spark for data warehousing and analytics purposes.
Not ideal:
- Event Hub is not meant to be used as a transactional database or a long-term data storage solution.
- It's not recommended to use Event Hub for scenarios where low latency or high throughput is not important.
Backup:
- Event Hub provides built-in data retention and capture policies that enable you to backup your data.
- The backup data can be saved to Azure Blob Storage, Azure Data Lake Storage, or other Azure Event Hubs instances for further analysis.
Availability:
- Event Hub is highly available, with automatic redundancy built into the service.
- It provides multiple levels of data redundancy, ensuring that your data is safe and available even in the event of hardware failures.
Scalability:
- Event Hub is designed to scale horizontally and vertically, allowing you to easily handle increases in data volume.
- It provides features such as partitioning and load balancing, allowing you to handle high-throughput scenarios.
Monitoring:
- Azure Monitor provides built-in monitoring and logging capabilities for Event Hub, allowing you to track events and troubleshoot issues.
- It also provides real-time insights into the health, performance, and usage of the service.
Azure Service Bus
A messaging service that enables you to send and receive messages between different systems in a reliable and secure way.
Scenarios:
Best used for scenarios that require reliable messaging and decoupling of systems. It can be used to implement a message-based communication architecture, where different systems can send and receive messages in a loosely coupled way. It can also be used to implement a publish-subscribe pattern, where messages can be sent to multiple subscribers at once.
Use with:
Can be used in combination with Azure Functions, Azure WebJobs, and Azure Logic Apps to process messages in a decoupled way. It can also be used in combination with Azure Event Grid to route messages to different systems based on their content.
Not ideal:
May not be appropriate for scenarios that require extremely high throughput and low latency, such as high-frequency trading systems.
Backup:
Supports automatic data backup and disaster recovery. You can configure automatic backup for your service bus namespace and configure data replication for high availability.
Availability:
It's a globally available service, meaning that it can be accessed from anywhere in the world. Additionally, it provides built-in high availability and automatic failover, which can help ensure that messages are delivered even in case of failures.
Scalability:
It's a highly scalable service that can handle millions of messages per second. You can scale the number of messaging entities, throughput units, and message size according to your needs.
Monitoring:
Azure Service Bus provides several built-in monitoring and logging features that can help you understand how the service is being used and troubleshoot any issues that may arise. You can use Azure Monitor to collect and analyze data from Azure Service Bus, as well as to set up alerts and notifications. Additionally, you can use Azure Log Analytics to collect and analyze log data from Azure Service Bus.
Monitoring Services
Azure Log Analytics
Provides log collection, search, analysis, and alerting capabilities for your applications and infrastructure.
Scenarios:
Azure Log Analytics is best used for scenarios that require log data analysis and troubleshooting. It can be used to collect and analyze log data from various sources, including Azure services, on-premises systems, and third-party services. With its powerful search capabilities, you can quickly find the information you need to troubleshoot issues and resolve problems.
Use with:
Azure Log Analytics can be used in combination with many other Azure services, including Azure Monitor, Azure Security Center, and Azure Automation, to provide a comprehensive view of your environment and help you monitor and manage your resources.
Not ideal:
Azure Log Analytics may not be appropriate for scenarios that require real-time analysis of log data. The data collection, search, and analysis features of the service are optimized for historical data analysis and troubleshooting.
Backup:
Azure Log Analytics does not require a separate backup solution, as it stores data in a highly durable manner within Azure. The data is stored in multiple locations to protect against failures and data loss. Additionally, you can use the export data feature to export your log data to other storage solutions for backup purposes.
Availability:
Azure Log Analytics is a globally available service that provides built-in redundancy and high availability.
Scalability:
Azure Log Analytics is a highly scalable service that can handle millions of log events per day. You can scale the service to meet your needs by adjusting the number of queries, data ingestion rate, and data retention period.
Monitoring:
Azure Log Analytics provides a wealth of monitoring and alerting features that can help you monitor and manage your environment. You can use the service to set up alerts and notifications based on specific log data patterns, and use the Azure Monitor integration to visualize and analyze log data in real-time. Additionally, you can use the Azure Log Analytics REST API to programmatically access and manage your log data.
Azure Monitor
A comprehensive platform for monitoring, managing, and diagnosing applications, infrastructure, and network performance.
Scenarios:
Best used for monitoring the performance, health, and availability of Azure resources, applications, and services. It provides insights into resource utilization, network traffic, and logs.
Use with:
Azure Monitor integrates well with other Azure services, such as Azure Resource Manager, Azure Storage, and Azure Functions, for comprehensive monitoring and management.
Not ideal:
Not applicable - Azure Monitor is an umbrella of services that cover all your needs (e.g. Azure Monitor for SQL)
Availability:
Azure Monitor provides a high level of availability through multiple data centers, with a guaranteed 99.9% uptime SLA.
Scalability:
Azure Monitor scales to meet the changing needs of your organization, allowing you to monitor an unlimited number of resources, applications, and services.
Storage Services
Azure API Management
A fully managed service for publishing, securing, and managing APIs (Application Programming Interfaces).
Scenarios:
- Exposing internal APIs to external consumers securely.
- Creating a portal for external developers to interact with APIs.
- Implementing rate limiting, security, and logging for APIs.
Use with:
- Azure Functions or Azure Web Apps for building and hosting the APIs.
- Azure Active Directory Authentication for securing access to APIs.
- Azure Monitor for monitoring and logging of APIs.
Not ideal:
- High-performance processing.
- Applications with strict low latency requirements.
Backup:
Azure API Management has built-in disaster recovery mechanisms and Azure Backup can also be used to backup and restore data.
Availability:
Azure API Management provides high availability through multiple instances running in an active-active configuration.
Scalability:
Azure API Management can be easily scaled up and down as per the requirement.
Monitoring:
Azure Monitor can be used for monitoring the performance and availability of APIs. Azure API Management also provides built-in analytics and monitoring capabilities.
Azure Application Gateway
A regional layer 7 load balancer that enables you to manage traffic to your web applications.
Scenarios:
- Load balancing incoming web traffic to multiple back-end servers
- SSL offloading, reducing the load on your back-end servers and improving performance
- URL-based routing and path-based routing to direct traffic to specific back-end servers
Use with:
- Azure Load Balancer: for distributing incoming traffic across multiple VMs.
- Azure Virtual Machines: for hosting the back-end servers that handle incoming traffic.
- Azure Front Door: for global and scalable traffic management.
Not ideal:
- Storing and processing large amounts of data
- Applications that require complex data processing and computation
Backup:
Azure Backup can be used to back up configuration and data stored in an Azure Application Gateway.
Availability:
- Azure Application Gateway provides high availability by distributing incoming traffic across multiple instances.
- The service is highly available in multiple Azure regions and provides automatic failover in the event of an instance failure.
Scalability:
- Azure Application Gateway can scale up and down based on incoming traffic, with auto-scaling capabilities to handle spikes in demand.
Monitoring:
Azure Monitor provides various monitoring options for the Azure Application Gateway, including performance and usage metrics, activity logs, and alerts.
Azure Traffic Manager
A layer-4 global traffic load balancer that enables you to distribute incoming traffic to multiple endpoints based on configurable rules.
Scenarios:
- Layer 4 load balancing
- Routing traffic to multiple regions for high availability and performance
- Routing traffic to multiple cloud service or web apps
- Redirecting traffic to a new version of a service during a deployment
Use with:
Azure Traffic Manager integrates well with various Azure services, including Azure Web Apps, Azure Virtual Machines, Azure API Management, and Azure Functions, allowing you to distribute incoming traffic to multiple endpoints for high availability and performance.
Not ideal:
Applications that require session persistence as DNS Traffic Manager operates at the domain name level and does not support session persistence.
Backup:
Azure DNS Traffic Manager is a highly available service with built-in redundancy and failover capabilities, so a specific backup solution is not required.
Availability:
Azure DNS Traffic Manager provides global availability with a 99.9% SLA.
Scalability:
Azure DNS Traffic Manager can handle millions of queries per minute and is automatically scalable.
Monitoring:
Azure DNS Traffic Manager provides monitoring and diagnostic information through Azure Monitor and Azure Log Analytics.
Azure Front Door
Layer 7 global load balancing across multiple regions to ensure optimal performance for end-users.
Scenarios:
- Layer 7 global load balancing
- Best suited for scenarios that require high-scale, globally distributed and highly available applications. It can be used for scenarios such as load balancing, content delivery, and performance optimization.
- WAF: Front Door includes a Web Application Firewall (WAF) that provides protection against common web-based attacks such as SQL injection and cross-site scripting.
- SSL/TLS Termination: Front Door supports SSL/TLS termination, allowing you to securely encrypt traffic between users and your backends.
- Performance Optimization: Front Door optimizes end-to-end performance by using caching, compression, and health checks to ensure that your applications are highly available and fast for users.
Use with:
Azure Front Door can be used in conjunction with Azure CDN, Azure Load Balancer, and Azure Application Gateway for further optimizations and benefits.
Not ideal:
Azure Front Door should not be used as a sole solution for application security.
Backup:
Azure Front Door does not require a specific backup solution as it has built-in high availability and disaster recovery mechanisms.
Availability:
Azure Front Door provides high availability with multiple points of presence (PoPs) and active-active architectures.
Scalability:
Azure Front Door is highly scalable, providing automatic scaling to meet the demands of your application.
Monitoring:
Azure Front Door provides detailed performance metrics and logging capabilities through Azure Monitor, allowing you to monitor and troubleshoot performance issues.
Azure Load Balancer
A Layer 4 regional load balancer.
Scenarios:
Azure Load Balancer is best suited for distributing incoming traffic across multiple virtual machines or resources, providing high availability and scalability for applications. It can be used for load balancing incoming internet traffic to multiple virtual machines, as well as for internal load balancing for virtual machines in a virtual network.
Use with:
Azure Load Balancer works well in combination with Azure Virtual Machines, Azure Cloud Services, Azure Container Instances and Azure Web Apps.
Not ideal:
Azure Load Balancer is not intended for specific security scenarios such as network security or application-layer protection.
Backup:
Azure Load Balancer does not require a specific backup solution as it is a highly available service within Azure.
Availability:
Azure Load Balancer provides high availability through automatic failover to another instance in case of a failure, ensuring continuity of service.
Scalability:
Azure Load Balancer can automatically scale to accommodate increased traffic and resource needs, providing seamless scalability for applications.
Monitoring:
Azure Load Balancer provides monitoring and diagnostics through Azure Monitor, enabling the tracking of health and performance metrics for the load balancer and the resources it distributes traffic to.
Storage Services
Azure Blob Storage
A fully managed object storage service that enables you to store and retrieve large amounts of unstructured data, such as text and binary data, in its native format.
Scenarios:
- Storing unstructured data, such as images, videos, audio, and documents, for distribution and retrieval over the internet.
- Storing data for backup and disaster recovery, as it provides a durable and cost-effective storage solution.
- Storing data for big data analytics, as it can be easily accessed and processed using Azure Data Factory and Azure HDInsight.
Use with:
- Azure Functions, can be used to process data stored in Azure Blob Storage and take actions based on the data.
- Azure Data Factory, a fully managed data integration service that can be used to transfer data from Azure Blob Storage to other Azure services for further processing and analysis.
- Azure HDInsight, a fully-managed cloud service that makes it easy to process big data using popular open-source frameworks such as Apache Hadoop, Hive, and Spark.
Not ideal:
- Applications that require low latency and high-frequency data access, as Azure Blob Storage is optimized for reliability and durability rather than speed.
- Applications that require strong consistency guarantees, as Azure Blob Storage provides eventual consistency.
Backup:
- Azure Backup, a fully managed backup service that can be used to protect data stored in Azure Blob Storage.
- Azure Site Recovery, a disaster recovery solution that can be used to replicate data stored in Azure Blob Storage to another region.
Availability:
Azure Blob Storage is designed for high availability, with data automatically distributed across multiple storage nodes to ensure reliability and durability.
Scalability:
Azure Blob Storage is highly scalable, and can be easily scaled up or down to meet the changing needs of your application.
Monitoring:
Azure Monitor, a fully managed monitoring service that can be used to monitor the health and performance of Azure Blob Storage, and receive alerts and notifications in case of issues.
Azure Cosmos DB
A fully managed, globally distributed, multi-model database service that supports document, key-value, graph, and column-family data models.
Scenarios:
It's best used for globally distributed, low-latency, and highly available web, mobile, gaming, IoT, and AI applications.
Use with:
- Azure Event Hubs, for event streaming and real-time analytics
- Azure Functions, for serverless compute and event-driven programming
- Azure Search, for full-text search and indexing
Not ideal:
It's not the best option for scenarios that require a traditional relational database with advanced querying capabilities like joins and sub-queries.
Backup:
Azure Data Factory is an appropriate backup solution for Azure Cosmos DB. a href="#azure-data-factory">Azure Data Factory allows you to create data pipelines that can move data from Azure Cosmos DB to Azure Blob Storage, Azure Data Lake Storage, or other data stores. This allows you to create backups of your data in another location, and also allows you to do incremental backups
Availability:
- Built-in high availability and global distribution, allowing you to replicate your data across multiple regions for low-latency access and high availability.
- Built-in disaster recovery options, including point-in-time restore and configurable consistency levels for different use cases.
Scalability:
- Scale up or down the performance level of your database with a few clicks or automatically with the use of Azure Automation.
- Scale out your database by adding more regions or Azure Virtual Network to distribute data across multiple servers.
- Scale out your database by partitioning your data to distribute data across multiple servers.
Monitoring:
- Azure Log Analytics is the best monitoring solution to use with Azure SQL Edge.
- Azure Monitor can be used to monitor Azure Data Factory performance and troubleshoot issues.
- Built-in monitoring capabilities such as Metrics, Alerts, and Diagnostic logs that enables you to track performance, troubleshoot issues, and identify performance bottlenecks.
Azure Data Lake Storage
A highly scalable and secure data lake that enables you to store large amounts of data, including structured and unstructured data, in its native format.
Scenarios:
- Storing and processing large amounts of structured and unstructured data for big data analytics.
- Storing data for machine learning and artificial intelligence applications.
- Storing and processing log and telemetry data.
- Storing and processing data for business intelligence and reporting.
Use with:
- Azure Databricks, a fast, easy, and collaborative Apache Spark-based analytics platform that can be used to process data stored in Azure Data Lake Storage.
- Azure HDInsight, a fully-managed cloud service that makes it easy to process big data using popular open-source frameworks such as Apache Hadoop, Hive, and Spark.
- Azure Stream Analytics, can be used to stream data into Azure Data Lake Storage for real-time analytics and reporting.
Not ideal:
- Applications that require low latency and high-frequency data access, as Azure Data Lake Storage is optimized for large scale batch processing.
- Applications that require strong consistency guarantees, as Azure Data Lake Storage provides eventual consistency.
Backup:
- Azure Backup: A fully managed backup service that can be used to protect data stored in Azure Data Lake Storage.
- Azure Site Recovery: A disaster recovery solution that can be used to replicate data stored in Azure Data Lake Storage to another region.
Availability:
Azure Data Lake Storage is designed for high availability, with data automatically distributed across multiple storage nodes to ensure reliability and durability.
Scalability:
Azure Data Lake Storage is highly scalable, and can be easily scaled up or down to meet the changing needs of your application.
Monitoring:
Azure Monitor, a fully managed monitoring service that can be used to monitor the health and performance of Azure Data Lake Storage, and receive alerts and notifications in case of issues.
Azure Queue Storage
A fully managed message queue that enables you to store and retrieve large numbers of messages, so you can send and receive messages between independent systems.
Scenarios:
- Reliable communication between applications and microservices, especially when the communication involves multiple steps and can be performed asynchronously.
- Processing batch jobs by breaking them into smaller tasks that can be processed by multiple worker roles in parallel.
- Storing messages for later processing, such as emails or push notifications.
Use with:
- Azure Functions, can be used to process messages stored in Azure Queue Storage and take actions based on the messages.
- Azure Service Bus, can be used to provide reliable and secure messaging between applications and services.
Not ideal:
- Applications that require low latency and high-frequency data access, as Azure Queue Storage is optimized for reliability and durability rather than speed.
- Applications that require strong consistency guarantees, as Azure Queue Storage provides eventual consistency.
Backup:
- Azure Backup, a fully managed backup service that can be used to protect data stored in Azure Queue Storage.
- Azure Site Recovery, a disaster recovery solution that can be used to replicate data stored in Azure Queue Storage to another region.
Availability:
Azure Queue Storage is designed for high availability, with data automatically distributed across multiple storage nodes to ensure reliability and durability.
Scalability:
Azure Queue Storage is highly scalable, and can be easily scaled up or down to meet the changing needs of your application.
Monitoring:
Azure Monitor, a fully managed monitoring service that can be used to monitor the health and performance of Azure Queue Storage, and receive alerts and notifications in case of issues.
Azure Table Storage
A scalable, low-cost NoSQL key-value store that can be used to store and query large amounts of unstructured data.
Scenarios:
- Storing large amounts of structured data for applications such as analytics, reporting, or auditing.
- Storing metadata or reference data for applications.
- Storing data that does not need complex transactions or relationships, but still requires fast and efficient access.
Use with:
- Azure Functions can be used to process data stored in Azure Table Storage and take actions based on the data.
- Azure Stream Analytics can be used to stream data from IoT devices into Azure Table Storage for real-time analytics and reporting.
- Azure Data Factory can be used to extract, transform, and load data into Azure Table Storage for reporting and analytics.
Not ideal:
- Applications that require complex transactions or relationships between data entities.
- Applications that require a relational data model.
- Applications that require strong consistency guarantees.
Backup:
- Azure Backup, a fully managed backup service that can be used to protect data stored in Azure Table Storage.
- Azure Site Recovery, a disaster recovery solution that can be used to replicate data stored in Azure Table Storage to another region.
Availability:
Azure Table Storage is designed for high availability, with data automatically distributed across multiple storage nodes to ensure reliability and durability.
Scalability:
Azure Table Storage is highly scalable, and can be easily scaled up or down to meet the changing needs of your application.
Monitoring:
Azure Monitor, a fully managed monitoring service that can be used to monitor the health and performance of Azure Table Storage, and receive alerts and notifications in case of issues.