Azure: Chapter 2
OBJECTIVES
DESCRIBE CORE AZURE SERVICES
Describe the core Azure architectural components
Describe the benefits and usage of Regions and Region Pairs
Describe the benefits and usage of Availability Zones
Describe the benefits and usage of Resource Groups
Describe the benefits and usage of Subscriptions
Describe the benefits and usage of Management Groups
Describe the benefits and usage of Azure Resource Manager
Explain Azure resources
DESCRIBE CORE AZURE SERVICES
Describe core resources available in Azure
Describe the benefits and usage of Virtual Machines, Azure App Services, Azure Container Instances (ACI), Azure Kubernetes Service (AKS), and Windows Virtual Desktop
Describe the benefits and usage of Container (Blob) Storage, Disk Storage, File Storage, and storage tiers
Describe the benefits and usage of Cosmos DB, Azure SQL Database, Azure Database for MySQL, Azure Database for PostgreSQL, and SQL Managed Instance
Describe the benefits and usage of Azure Marketplace
DESCRIBE CORE SOLUTIONS AND MANAGEMENT TOOLS ON AZURE
Describe Azure management tools
Describe the functionality and usage of Azure Resource Manager (ARM) templates
Geographies
Geographies
The data centers are distributed into various geographies. The Azure geographies generally align to specific countries such as the United States, Canada, Australia, and so on. However, Azure geographies can also be aligned to specific markets, such as Europe and Asia.
Compliance and data residency are key aspects of an Azure geography.
For example, Azure China is a physically isolated instance of Azure located wholly in China. Azure China is operated by Shanghai Blue Cloud Technology Co., Ltd. (21Vianet). Azure China enables Chinese companies and entities to host their data and applications within China and meet strict Chinese regulatory requirements. Azure China is not limited to Chinese government entities.
Regions
Within each geography are Azure regions. A region is a grouping of data centers that interact to provide redundancy and availability for the services hosted within that region.
Each region is paired with another in the same geography to allow for replication of resources across multiple data centers to reduce the effects of natural disasters, outages, or other potential events that would affect a given data center's ability to serve up the services hosted in that data center.
For example, West US and East US are paired regions, North Europe and West Europe are paired, and UK West and UK South are paired.
Microsoft establishes and controls the pairing relationships between regions, which means that you cannot choose a region pair. However, you choose the region in which to deploy a service, which indirectly determines which other region is in the pair.
Availability Zones
There is a nested nature to Azure that provides both fault tolerance and availability. Azure offers another level of availability protection through availability zones.
An availability zone is a physically separate zone within a region, each with its own power, network, and cooling. You might think of an availability zone as a data center, although the separation of power, network, and cooling defines the zone, not the physical data center. An availability zone might encompass more than one data center. There are a minimum of three availability zones per region, although not all regions offer availability zones.
Two Categories of Services that Support Availability Zones
Zonal services: Resources are pinned to a specific zone. To ensure redundancy for zonal services, you must deploy the services across multiple availability zones. Virtual machines are an example of a zonal service. To take advantage of availability zones with VMs, you must deploy them accordingly.
Zone‐redundant services: Azure replicates the service automatically across zones. Storage is a good example. When you deploy a new storage account, choosing ZRS (Zone Redundant Storage) will result in the storage automatically being replicated across availability zones. SQL databases are another example of a zone‐redundant service.
You must use availability zones if you want to achieve certain SLAs. For example, deploying VMs to two or more availability zones results in an SLA of 99.99 percent.
In Summary…
Azure offers multiple levels of availability and fault protection. The following list summarizes each:
Geography: A geography defines a discrete market that preserves data residency and compliance boundaries. Geographies typically contain two or more regions. Although often defined by country, Azure geographies are not constrained to a specific country.
Region: A region is a collection of data centers that interact to provide data redundancy and service availability.
Region pair: A region pair consists of two regions within the same geography. Updates are rolled out to regions serially, meaning only one region is updated at a time. The second region in a pair is updated only after the first is successfully updated. An issue with an update or an outage would then affect only one region in the pair. Some Azure services take advantage of region pairs to guard against data loss, replicating data between regions.
Data center: Individual data centers within a region host the servers and other infrastructure needed to host services within that region.
Availability zones: An availability zone encompasses separate power, networking, and cooling, and it is intended to guard against data loss or outages caused by failures in any of those three categories. Although a single data center generally fits those criteria, a data center is not an availability zone, and vice versa. Conceptually, however, they are much the same. Deploying services across availability zones enables you to achieve higher SLAs for those services.
Azure resources are manageable items in Azure such as virtual machines, databases, virtual networks, and storage accounts.
Resource Groups
Resource Groups provide a means for organizing and managing resources. Think of a resource group as a logical container for one or more resources. You can apply various properties to the resource group, and those properties apply to all the resources in that resource group.
For example, assume you have a group of resources that you want to prevent from being deleted but want resource admins to be able to modify. You can create a resource group, assign the resources to that group, and apply a CanNotDelete lock on the resource group. Any resources that you later apply to the resource group will also be automatically protected from deletion.
Deleting the Resource Group will delete everything in it.
Applying policies on the Resource Group assign those policies to all objects within the group.
Points to Consider
Lifecycle:
All resources in a resource group should share the same lifecycle for deployment, updates, and deletion.
Resource assignment:
A resource can exist in only one group, but you can add or remove a resource to or from the group as needed. You can also move resources from one group to another.
Location:
Resources in a group can reside in various regions (again, resource groups are logical containers that provide a means to apply various properties to resources they contain—it doesn't matter where the resources physically reside). However, resource groups do have an assigned location that determines where the group's metadata is stored. Compliance requirements can therefore dictate where you create your resource groups. Also, if the region where the resource group resides is unavailable, you will be unable to update the resources in the group because the metadata is unavailable. However, the resources can continue to function.
Scope:
Resource groups enable you to apply management scope to resources collectively. You can assign Azure policies, Azure roles, or resource locks to the group, which then apply to the resources contained within it.
Resource interaction:
Resources in different groups can interact with one another. For example, an application server in one resource group might use a database in a different resource group.
Deletion:
When you delete a resource group, all resources in the group are deleted.
Creation:
You can use the Azure portal, PowerShell, Azure CLI, or an Azure Resource Manager template to create a resource group.
Tags:
You can apply tags to a resource group. For example, you might use tags to differentiate production from development or user acceptance testing (UAT) resources. The tag applies only to the resource group and not to the resources inside the group. Think of the tag as a label you add to the box, not to the contents of the box. However, the resources in the resource group can have their own tags.
Azure Resource Manager
Azure Resource Manager (ARM) is the service that enables you to manage resources, serving as the deployment and management service for Azure. ARM is not a tool or interface. It’s s a service that functions as the broker between management tools like the Azure portal and resource providers. For example, when you create a VM in the Azure portal, the portal sends the properties to the ARM application programming interface (API). ARM then communicates with the resource provider to create the VM.
Templates can be used for creating, managing, and monitoring resources. ARM templates are JavaScript Object Notation (JSON) files that define one or more resources and their properties to deploy a tenant, management group, subscription, or resource group. You can automate the deployment of an entire Azure environment by using templates. ARM templates significantly simplify the creation of resources because you only need to declare in the template what you want to create and what its properties will be, and ARM then passes that information to the Azure providers, which then actually create the resources.
Azure Subscriptions
An Azure subscription serves as a logical container for your Azure. Think of a subscription as a big box that contains all your resource group boxes. Also, a resource group can only exist in one subscription. Using the box analogy, imagine you have two subscription boxes side by side. A resource group box could only exist inside one of them; it cannot be in two places at once.
Subscriptions provide several things:
Legal agreement associated with a specific Azure offer, each with its own rate plan, terms and conditions, and benefits.
Payment agreement
Scale boundaries with limits for controlling resources
Administrative boundaries, enabling you to control security, resource administration, and policies. Subscriptions provide a good means for segregating resources and administrative responsibilities between different business units, technical silos, and so forth.
Azure Billing Accounts
A billing account is a mechanism that you use to pay for Azure services. You manage invoices and payments with your billing account, as well as track costs. Azure currently supports the following types of Azure billing accounts:
Microsoft Online Services Program: This type of billing account is added when you sign up for Azure services through the Azure website, such as an Azure Free Account, an account with pay‐as‐you‐go billing, or through a Visual Studio subscription.
Enterprise agreement: An enterprise agreement (EA) enables you to purchase software and services from Microsoft under a (typically) multiyear agreement. For example, your organization might purchase on‐premises licenses, Office 365 licenses, Azure services, and Unified Support services through your organization's EA for a given three‐year period. An annual true‐up reconciles the licenses that you have used and adjusts the next year's cost accordingly.
Microsoft Customer Agreement (MCA): An MCA consolidates monthly Azure, Azure Marketplace, and Microsoft AppSource invoices. In some regions, an MCA is created automatically when you subscribe to pay‐as‐you‐go or Azure free subscriptions.
You can have more than one Azure billing account.
Billing Scope
An Azure billing scope is a node within a billing account that enables you to manage invoices, payments, accounts, and other Azure billing‐related data. As such, billing scope helps you manage Azure costs and billing in a relatively granular way.
Azure Tenants
An Azure tenant is a specific instance of Azure Active Directory (AAD) that contains accounts and groups. In simpler terms, a tenant is a group of users. The tenant provides authentication services for your cloud resources, whether solely or in concert with onsite AD services.
Your Azure implementation is not limited to a single tenant. A multitenancy implementation is one in which more than one tenant share Azure resources.
Core Azure Services
Virtual Machines
Virtual Machine Scale Sets
Availability Sets
Azure App Service
Azure Container Instances
Azure Kubernetes Service
Windows Virtual Desktop
Virtual Machines
virtual machine is an emulation of a computer system that provides the functionality of a physical computer. The VM still runs on a physical device generally referred to as a host. The VM is a guest on that host. Software called a hypervisor manages the VMs running on the host.
Advantages:
Reduce power and physical space requirements because multiple VMs can run on a single host
Flexibility - Because VMs are software based, you can create them very quickly by specifying their parameters and handing the actual creation task over to the hypervisor.
Scalability - You can easily add resources like CPUs, cores, and memory to a VM by modifying its configuration settings
Not limited to a single OS
VMs can be moved easily from one host to another because they are software based. You only need to move the metadata that defines the VM, not a physical server.
Virtual Machine Scale Sets
A virtual machine scale set simplifies creating and managing a group of load‐balanced VMs. A scale set can automatically scale out or scale in to adjust to changes in demand. Load balancing adjusts automatically to ensure that the access to the VMs in the set is balanced across VMs appropriately as VMs are added or removed from the set. Scale sets therefore enable high availability for your VMs and the services that rely on them. Scale sets also make it very simple to manage many VMs.
A scale set supports up to 1,000 standard VM instances, or up to 600 instances if you create and upload your own custom images.
All created from the same Scale Set image
If you need to include applications and other required components in the VMs, you create an instance with the appropriate services and configuration, save the image, and then use that image to create the scale set. All VMs in the set will then have the same components, applications, and configuration.
Scale Sets
Can use Load Balancer or Azure Application Gateway to balance traffic in the Scale Set
Although scale sets offer high availability in themselves, you can also use availability zones to further improve availability by distributing the VMs across multiple data centers. If a data center experiences an outage, the VMs in other data centers can continue to function and service application requests.
Availability Sets
Availability sets are another feature of Azure that help you avoid potential outages caused by hardware issues, updates, or other events. Two elements that enable availability sets are update domains and fault domains.
A fault domain is a logical grouping of hardware that shares a power source and network switch, similar to a physical rack in a data center.
An update domain is a logical group of hardware that undergoes maintenance activities or reboot events at the same time.
An availability set distributes VMs across multiple fault domains and update domains. Distributing the VMs in this way helps guard against outages caused by a power or networking event in a fault domain and also enables the VMs to be updated or otherwise maintained within their respective update domains without causing the set as a whole to be unavailable.
Availability Zones affect SLAs
The following scenarios are currently available:
99.99 percent: All virtual machines with two or more instances deployed across two or more availability zones in the same Azure region will have connectivity to at least one instance 99.99 percent of the time in a specified SLA period.
99.95 percent: All virtual machines with two or more instances deployed in the same availability set will have connectivity to at least one instance 99.95 percent of the time in a specified SLA period.
99.9 percent: Any single instance virtual machine using Premium SSD or Ultra Disk for all operating system and data disks will have connectivity to that instance 99.9 percent of the time in a specified SLA period.
99.5 percent: Any single instance virtual machine using Standard SSD Managed Disks for all operating system and data disks will have connectivity to that instance 99.5 percent of the time in a specified SLA period.
95 percent: Any single instance virtual machine using Standard HDD Managed Disks for operating system and data disks will have connectivity to that instance 99.5 percent of the time in a specified SLA period.
Based on this list, achieving 99.95 percent or higher SLA for your VMs requires the use of availability sets or availability zones. However, you can achieve 99.9 percent SLA on a single VM instance by using premium storage, which uses solid‐state drive (SSD) storage on the same physical device hosting the VM.
Azure App Service
The Azure App Service is a PaaS offering that enables you to quickly develop and deploy web applications. Azure App Service supports many development languages, including .NET, Java, Ruby, and Python, among others. Web apps developed and deployed using Azure App Service run and scale on Windows and Linux environments.
Azure App Service offers much more than just development tools. It encompasses load balancing, autoscaling, automated management, and security features to support not only the development of your web application, but also hosting and scaling to make it easy to deploy and manage your web applications. It also enables your web applications to scale appropriately to respond to demand changes.
Azure App Service offers many benefits to not only simplify web app deployment but also provide a broad range of options. In addition to support for multiple development languages, Azure App Service offers support for both Windows and Linux, patches and updates the operating system and language frameworks for you, supports containers and Docker, supports the scaling and high availability features of Azure, includes access to a number of application templates in the Azure Marketplace, and much more.
Azure Container Instances
Docker is an open source project for automating the deployment of containers, and Docker containers provide a means for packaging and deploying applications virtually. The container serves as a virtual environment that includes the resources necessary for its hosted application to function.
For example, assume you have a simple web application that includes a web front‐end server to handle web requests, an application server to handle app processing, and a database to store and serve the data needed by the other two servers. You could deploy that solution using VMs, but that requires managing the OS environments and other resources within the VMs. Containers abstract much of that and provide only the resources needed by the application so that you only need to deploy an image to the container, rather than build a VM and manage the OS and other resources. Although the container relies on the underlying OS on which it runs, you don't have to configure or manage the VM. Instead, you focus solely on the application.
Azure Container Instances (ACI) is the Azure service that gives you the ability to create and deploy containerized applications. ACI supports both Windows and Linux containers. Containers offer a potentially significant cost savings because you are only paying for consumption of CPU and memory resources used by the container, rather than paying for a VM instance. In addition, containers can easily scale out to accommodate demand changes for the containerized app.
ACI Container Groups
Although ACI supports only single container instances for Windows as of this writing, ACI supports container groups for Linux. A container group is a collection of containers that run on the same host machine and share the same operating system, lifecycle, local network, resources, and storage. The group shares a single IP address and DNS name.
Azure Kubernetes Service
Managing a few container instances is relatively easy, but as the number of containers increases, deployment and management become much more complex. That is where Azure Kubernetes Service (AKS) comes into play.
AKS is a container orchestration service that monitors container health, provides container scalability, and enables resource sharing among containers in a Kubernetes cluster. Each of the containers in the Kubernetes cluster is called a node. AKS simplifies deployment because once you've defined a container image, you can use AKS to easily deploy as many instances of that image as needed within a cluster, as well as deploy multiple clusters.
Hint: Within the context of the AZ‐900 exam, anywhere you see a reference to container orchestration and large‐scale management of containers, it is referencing Kubernetes.
Windows Virtual Desktop
Windows Virtual Desktop (WVD) is an Azure service that enables users to run a Windows client in the cloud. The user accesses the Windows client either through a Virtual Desktop client application on their Windows device or through an HTML 5 browser like Edge or Chrome. The Windows client is available for Windows 64‐bit, Windows 32‐bit, and Windows ARM64 for Windows 10, Windows 10 IoT Enterprise, and Windows 7 client devices. Using a browser enables non‐Windows devices, such as Android and Apple devices, to connect to and use a WVD session.
WVD offers several benefits, not least of which is the capability to run Windows on a broad range of devices running Windows, Linux, iOS, and macOS. This gives users across your organization access to Windows applications from potentially inexpensive devices. It also enables you to easily roll out line‐of‐business applications to your users without deploying them to individual users' devices.
WVD is also beneficial in a distributed work environment, with users often working from home or from remote offices. Rather than provision a new Windows device, install applications on it, and ship the device out to a new user, you can instead simply provision the user in Azure, and the user can then connect to a desktop session and potentially access applications in an hour or so.
Azure Consumption Services
Every transaction is metered
Azure Virtual Machines are billed per Minute
Container Instances are billed per Second
Network is typically billed for egress
Platform as a Service (e.g. Azure Firewall) charges for the aggregate of ingress and egress.
Storage is charged
Per Transaction
Per GB
Per Redundancy Tier
Core Azure Storage
Blob Storage
Blob Storage Tiers
Disk Storage
File Storage
Storage Accounts
Blob Storage – Unstructured Storage
Azure Blob storage is optimized to store very large amounts of unstructured data such as text and binary data. For example, if you need to store many documents of various types, Blob storage is a great solution. Blob storage can be accessed in several ways, including through HTTP or HTTPS, the Azure Storage REST API, Azure PowerShell, Azure CLI, or an Azure Storage client library.
When you think of Blob storage, think of situations where you need to store either many files or large files. Examples include documents, as already discussed; video and audio files; large amounts of data to be analyzed; and backup and recovery data.
Blob Storage Tiers
How you use storage and the type of storage you choose will determine how expensive that storage will be. You should take into account how you will access data to determine which storage solution is right for each situation. For example, you might access some data frequently and other data only seldom, if ever. In this scenario you should choose the least expensive option that meets your overall needs. At the opposite end of the spectrum, you might have data that is accessed frequently and therefore requires a different, more expensive storage option.
Azure Storage provides three access tiers for Blob storage to enable you to not only fine‐tune the type of storage you need but also minimize costs. These tiers are as follows:
Hot access: This tier is optimized for storing frequently accessed data.
Cool access: This tier is optimized for data that you access infrequently and for a relatively limited period of time, and that typically would move to a lower tier of storage when access is no longer likely.
Archive access: This tier is intended for data that you rarely access, if at all. An example is long‐term storage for backups.
Hot and cool access tiers store data online, and the archive access tier stores data offline. The hot access tier has a lower access cost than the cool access tier but also has a slightly higher SLA and higher storage cost. Choosing the cool access tier means lower storage cost but higher access cost. This is generally a sound trade‐off because you should access data stored in the cool access tier less frequently. The archive access tier provides the lowest storage cost of the three but has the highest cost to rehydrate the data from offline to storage. As you begin to develop a storage hierarchy and overall plan, keep these trade‐offs in mind.
Disk Storage
Azure disks are virtualized storage presented as a disk and attached to a virtual machine, much like a physical disk in a server. Azure disks are designed for 99.999 percent availability through replicas, with a disk encompassing three replicas of the data. Even if two replicas fail, the third enables the disk to persist and the data to remain available.
Azure offers three main disk roles:
data disk – persistent (doesn’t go away if you reboot a VM or redeploy it)
OS disk - persistent
temporary disk – not managed and not necessarily persistent – use only for swap files, temp files and other data that you could afford to lose
Azure Disk Upload and Security
Azure Disk Upload
Azure supports direct upload of local virtual hard disks (VHDs) to Azure managed disks, making it relatively easy to move on‐premises VMs to Azure and to move or back up large data disks to Azure.
Security
Azure managed disks support two types of encryption:
server‐side encryption - encryption‐at‐rest to safeguard your data and meet compliance and policy requirements. Server‐side encryption is enabled by default for all managed disks, snapshots, and images
disk encryption - Disk encryption enables you to encrypt OS and data disks.
File Storage
Azure Files is another storage type supported by Azure. Think of Azure Files as files that are available securely from anywhere in the world but not associated with a specific VM or volume letter. Files stored using this service can be accessed by using the Server Message Block (SMB) protocol or Network File System (NFS) protocol. Azure file shares can be concurrently accessed by on‐premises as well as Azure services.
Azure Files support many file sharing scenarios, including replacing your existing on‐premises file servers or NFS file shares, moving data from on‐premises to Azure, and sharing application settings or other files that your applications need to access. You can also use Azure Files to store persistent data that enables you to build stateful containers, where the container instances access the shared file system at startup.
Azure Storage Accounts
Before you can begin using storage in Azure, you must create a storage account. A storage account contains Azure Storage objects and provides a unique namespace through which you can access those storage objects via HTTP and HTTPSa brief overview of each type of storage account:
Types of Storage Accounts
General‐purpose v1: This is a legacy account type intended for blobs, files, queues, and tables.
General‐purpose v2: This storage account type is also intended for blobs, files, queues, and tables, as well as Data Lake Gen2.
BlockBlobStorage: This storage account type is intended for block blobs and append blobs in high‐performance scenarios such as high storage transaction rates, or where storage consists of small objects and/or low latency.
FileStorage: This storage account type is intended for files‐only storage scenarios where premium performance is required.
BlobStorage: This is a legacy blob‐only storage account type.
Creation and use of storage accounts is more complex than what is described here, but for the purposes of the AZ‐900 exam, understand that there are various types of storage accounts suited to specific uses and you must create a storage account before you can create and use Azure storage.
Core Data Services
Structured and Unstructured Data
Azure SQL Database
SQL Managed Instance
Cosmos DB
Azure Database for MySQL
Azure Database for PostgreSQL
Azure Database Migration Service
Structured and Unstructured Data
Structured data is defined by a schema that determines the characteristics and types of data stored in a data set. A table in a relational database like SQL Server is an example of structured data. The table includes columns that define which discrete data items are stored in the table, including the name of the column, its data type (like text, number, date, and so on), allowed length of the data, and other properties. Each row in the table defines a specific record or collection of columns that describe a discrete data item.
Unstructured data does not have a defined structure and is not organized in a predefined way. Unstructured data often encompasses text—potentially large amounts of it—but can also contain other types of data, such as numbers and dates. Studies show that the majority of data owned and managed by most organizations is unstructured data. To illustrate, consider the data that resides in all the emails, documents, spreadsheets, instant messages, and other data items you touch daily. In general, these data items represent unstructured data.
Semi‐structured data is a hybrid of structured and unstructured data. Semi‐structured data is not constrained to a data model like a relational data set containing tables of data, but the data does contain tags or markers that describe and enforce a hierarchy of records and fields within the data.
Azure SQL Database
On Prem
To host your own database in SQL Server on‐premises, you generally must deploy a server (physical or virtual), install Microsoft SQL Server on it, and use that server application to create and manage a SQL database. Standing up and managing that server and application can be time consuming and expensive.
Azure SQL Database
abstracts all the infrastructure needed to host a SQL database. It is a PaaS offering in which Microsoft hosts the SQL platform and manages maintenance like upgrades and patching, monitoring, and all other activities needed to ensure a 99.99 percent uptime for your SQL databases. The only task you focus on is creating the SQL database and managing the tables, views, and other elements within the database. So, if your organization hosts SQL Server today, moving your databases to Azure SQL Database will eliminate a significant amount of management overhead and cost.
Microsoft rolls out new features to Azure SQL Database before rolling those same features out to SQL Server. Azure SQL Database therefore gives you the best means of testing and deploying new SQL features. Best of all, you don't have to deploy servers or applications to do so.
SQL Managed Instance
SQL Managed Instance offers many of the same benefits as the Azure SQL Database service. Like Azure SQL Database, SQL Managed Instance is a PaaS offering that provides a scalable cloud data service without the need to deploy or manage hardware or SQL. Instead, you focus specifically on managing your databases.
Although these two offerings are similar, SQL Managed Instance offers additional features for auditing, authentication, backups, change data capture (CDC), common language runtime (CLR), linked servers, OPENQUERY, and several other features. A key differentiator for SQL Managed Instance is its integration with the Azure Data Migration Service, enabling organizations to easily move existing on‐premises SQL instances into Azure Managed Instance.
Cosmos DB
Azure Cosmos DB is a multimodel database service that enables you to scale data out to multiple Azure regions across the world. Scaling out your data in this way makes it readily available to your users worldwide, with response times in milliseconds. Cosmos DB also provides excellent elasticity in both throughput and storage, adjusting to changes in data storage requirements and high usage during peak hours.
Cosmos DB supports SQL for querying data stored in Cosmos, but also supports other APIs, including Cassandra, MongoDB, Gremlin, and Azure Table Storage, all of which are NoSQL solutions. A NoSQL database provides the mechanism needed to store and retrieve data in nonrelational databases.
A key advantage to using Azure Cosmos DB is its support for the Gremlin API. The Gremlin API enables you to use Azure Cosmos DB to store and query massive graphs at any scale, including those with potentially billions of vertices and edges. For context, a graph database uses a graph data type to store sets of vertices and ordered or unordered pairing of the vertices to model complex relationships. Azure Cosmos DB provides for a highly scalable solution to build and query graph‐based data solutions.
Azure Database for MySQL
MySQL is an open source relational database management system that supports Structured Query Language (SQL). You can think of MySQL as an open source alternative to Microsoft's proprietary implementation of SQL.
Azure Database for MySQL gives you the capability to deploy, manage, and use MySQL databases without deploying MySQL on a server or VM. Instead, as with Azure SQL Database—which enables you to focus specifically on a SQL database rather than its infrastructure—Azure Database for MySQL lets you focus on your MySQL databases without worrying about the underlying infrastructure. Azure Database for MySQL is therefore appropriate in situations where you need to deploy and manage MySQL databases without having to manage the server, application, or other resources.
If you are familiar with web development, you might be familiar with LAMP, which stands for Linux, Apache, MySQL, and PHP. This is a common technology stack that organizations use to create web applications and websites. If you are considering moving from on‐premises servers to Azure for your web applications and websites and use the LAMP stack for development, you should consider Azure Database for MySQL as an option. In the context of the AZ‐900 exam, if you see a reference to LAMP, think MySQL.
Azure Database for PostgreSQL
PostgreSQL is an open source relational database management system with its origins in POSTGRES.
Azure Database for PostgreSQL is an Azure‐based implementation of PostgreSQL that supports the PostgreSQL database engine with the scalability, elasticity, high availability, and other cloud features you would expect from an Azure service. PostgreSQL is appropriate in situations where you want to deploy and manage PostgreSQL databases without worrying about underlying infrastructure.
Azure Database Migration Service
Azure Database Migration Service supports a variety of database migration scenarios for both one‐time (offline) and continuous synchronization (online) migrations.
In an offline migration, the source is offline while the migration takes place, making the application(s) supported by that data unavailable.
In an online migration, the data is synchronized from the live source to the target and then the application is cut over to the new instance of the database.
Azure MarketPlace
Azure Marketplace is an online store that enables you to find and purchase a variety of Azure solutions and managed services. Think of it like Google Play in the Android world or the App Store for Apple devices. You search for apps, content, and so on in those stores on your mobile device, the content that you purchase is downloaded to your device, and you pay for it on your next phone bill.
Azure Marketplace lets you access Azure services that are built on or designed to work with Azure, as well as Azure managed services and consulting services (services delivered by third parties to help you deploy and manage Azure solutions). The resources that you obtain through Azure Marketplace are billed through your Azure account.
Summary
Core Azure Architectural Components: Azure is a global cloud offering deployed to various geographies across the globe. Within those geographies (markets) are multiple regions, with regions paired with other regions for availability, fault tolerance, and redundancy. Availability zones ensure those same characteristics within regions.
Azure Subscriptions and Billing Scope: Azure billing is tied to an Azure account, with three types of billing accounts available, including enterprise agreement, Microsoft Online Services Program, and Microsoft Customer Agreement. Your Azure subscriptions are associated with an Azure billing account. Subscriptions act as containers for Azure resource groups and, along with billing accounts, enable you to control how your Azure services are billed and paid for.
Core Azure Services: Azure includes several core compute services, including virtual machines (VMs), which can leverage virtual machine scale sets and availability sets for scalability and high availability. Azure App Service makes it easy to build and deploy web applications without worrying about the underlying infrastructure needed for development or deployment. Container instances are another example of a core Azure service. Containers enable you to easily roll out and manage VM instances tailored for specific uses. Azure Kubernetes is a container orchestration service that you use to monitor and manage large numbers of container instances.
Core Azure Storage: Supporting most Azure services in some way are the various storage services available in Azure. Blob storage is used for storing large amounts of data for access in various ways, disk storage is used primarily for virtual disks for VMs, and file storage lets you store files independently of a logical disk.
Core Data Services: Azure includes many types of data management services for structured, semi‐structured, and unstructured data. These data services encompass relational database solutions such as SQL Server for storing tabular data and NoSQL solutions such as Cosmos DB for storing and managing unstructured and semi‐structured data.
Exam Essentials
Describe the core Azure architectural components. Geographies align to markets but can generally be considered as aligning to countries or regions. For example, Europe is a geography that encompasses multiple countries. The United States is another geography that represents a single country. Within each geography are regions. Within the regions, availability zones enable services to be distributed across multiple physical data centers to ensure high availability, resiliency, and fault tolerance. An availability zone has its own power, cooling, and network resources, so that if an incident occurs in one availability zone, that incident does not affect resources in other availability zones.
Resource groups are logical containers that you use to group together Azure resources and enable you to control access to the resources and their management, and otherwise manage the resources in the group as a whole. The service that enables management of resources is Azure Resource Manager (ARM). ARM lets you create resources in a declarative way using templates, which it then passes to the target Azure service provider to create the service.
Billing is another key concept in Azure. Azure billing accounts are the mechanism by which you are billed for Azure services. Subscriptions serve as a container for Azure resources, and a resource can exist only in one subscription, although you can move resources between subscriptions. Subscriptions serve as a billing boundary, enabling you to charge different groups within your organization for various Azure resources.
Describe some of the core products available in Azure. Although certainly not the only Azure service, virtual machines (VMs) are in some ways one of the most easily understood and certainly one of the most common Azure products. A VM is a virtual instance of a computer running as a guest operating system on a physical host device. A given host can run both Windows and Linux guests.
Virtual machine scale sets enable you to easily scale VMs out or in as needed to accommodate demand changes. The scale set includes load balancing to distribute load among the VMs in the set. Because all of the VMs in a scale set are based on the same image, scale sets also make it easy to roll out many VMs at once.
An availability set distributes VMs across multiple fault domains and update domains. Distributing the VMs in this way helps guard against outages caused by power or networking events in a fault domain, and it also enables the VMs to be updated or otherwise maintained within their respective update domains without causing the set as a whole to be unavailable.
Azure App Service is a PaaS offering that simplifies developing and deploying web applications. The Azure App Service takes care of the underlying infrastructure so that you can focus on developing the app, and the service also provides for deployment, load balancing, and other resources necessary to deploy and manage your app.
The Azure Container Instance service supports the creation and management of containers, which is a virtualized environment that includes the resources necessary for its hosted application to function