Exam AZ-300: Microsoft Azure Architect Technologies

从今天开始,准备AZ-300,AZ-301架构师考试,会根据每一条考试大纲整理出要点和心得以及实验。git

一) Deploy and configure infrastructure

(1)  Analyze resource utilization and consumption

  • configure diagnostic settings on resources

  

  • create baseline for resources

  • create and rest alerts

  能够根据特定的性能指标建立警报。 例如,当平均 CPU 使用率超过特定的阈值或者可用磁盘空间低于特定的空间量时,警报可用于发出通知。 警报显示在 Azure 门户中,也能够经过电子邮件发送。 还能够触发 Azure 自动化 Runbook 或 Azure 逻辑应用来响应生成的警报。github

  如下示例针对平均 CPU 使用率建立警报。json

  1. 在 Azure 门户中选择“资源组”,选择“myResourceGroupMonitor”,并在资源列表中选择“myVM”。
  2. 选择“警报(经典)”,而后在警报窗口顶部选择“添加指标警报(经典)”。
  3. 为警报提供名称,例如 myAlertRule
  4. 若要在 CPU 百分比持续 5 分钟超过 1.0 时触发警报,请选中其余全部默认值。
  5. (可选)选中“电子邮件全部者、参与者和读者”对应的框,以便向他们发送电子邮件通知。 默认操做是在门户中显示通知。
  6. 选择“肯定”按钮。
  • analyze alerts across subscription

  • analyze metrics across subscription

  Azure Monitor 收集的全部数据属于如下两种基本类型之一:指标和日志。 指标是数字值,用于描述系统某些方面在特定时间点的状况。 指标是轻型数据,能够支持近实时方案。 日志包含不一样类型的已经整理成记录的数据,每种类型都有不一样的属性集。 与性能数据同样,事件和跟踪等遥测数据也做为日志存储,所以,可将它们合并以进行分析。api

  指标的响应速度快于日志,所以在建立警报时延迟更低,成本也更低。 安全

  

  Azure 中指标的特定特性包括:网络

  • 按一分钟频率收集(除非指标定义中另有规定)。
  • 由指标名称和充当类别的命名空间惟一标识。
  • 存储 93 天。 可将指标复制到日志以了解长期趋势。

  

  • create action groups

  • monitor for unused resources

  设置规则,CPU内存使用率低于多少的定义为未使用资源架构

  • monitor spend

  Portal订阅中能够查看当前花费app

  • report on spend

  能够将消费明细经过邮件等方式发送给用户dom

  • utilize Log Search query functions

  • view alerts in Azure Monitor logs

(2)  Create and configure storage accounts

  • configure network access to the storage account

  • create and configure storage account

  可利用portal,PowerShell,CLI,模板等建立存储帐户ssh

  New-AzStorageAccount -ResourceGroupName $resourceGroup `
     -Name <account-name> `
     -Location $location `
     -SkuName Standard_RAGRS `
     -Kind StorageV2

  SKU有LRS,GRS,ZRS和RA-GRS

  • generate shared access signature

  使用SAS能够避免直接暴露共享密钥,只能写入和读取数据

  能够经过存储资源管理器检索共享访问签名 (SAS)。 右键单击某个存储账户、容器或 Blob,并选择“获取共享访问签名...”。选择开始时间和过时时间以及 SAS URL 的权限,并选择“建立”。 系统会提供包含查询字符串的完整 URL 以及查询字符串自己,在下一个屏幕          中能够复制这些信息。

   

  • install and use Azure Storage Explorer

  下载地址

  使用方法

  • manage access keys

  portal上的key中查看和管理共享密钥,包含主密钥和副密钥,能够手动重置密钥

  • monitor activity log by using Azure Monitor logs

  • implement Azure storage replication

  LRS,副本留在不一样容错域和更新域中

  GRS,副本在不一样区域,采用异步复制

(3)  Create and configure a Virtual Machine (VM) for Windows and Linux

  • configure high availability

  虚拟机高可用

  虚拟机高可用通常是配置可用性集。可用性集是数据中心内的 VM 的逻辑分组,可以让 Azure 了解应用程序的构建方式,以便提供冗余和可用性。 建议在可用性集内建立两个或多个 VM,提供高度可用的应用程序,并知足 99.95% Azure SLA 的要求。 可用性集自己是免费的,只需为建立的每一个 VM 实例付费。 当单个 VM 使用 Azure 高级 SSD 时,有 99.9%的 SLA 要求。

  容错域

  容错域是共享公用电源和网络交换机的基础硬件逻辑组,相似于本地数据中心内的机架。 在可用性集内建立 VM 时,Azure 平台会将 VM 自动分布到这些容错域。 此方法可限制潜在物理硬件故障、网络中断或断电的影响。

  更新域

  更新域是能够同时维护或从新启动的基础硬件逻辑组。 在可用性集内建立 VM 时,Azure 平台会自动将 VM 分布到这些更新域。 Azure 平台进行按期维护时,此方法可确保至少有一个应用程序实例始终保持运行状态。 在计划内维护期间,更新域的重启顺序可能不会按序进行,但一次只重启一个更新域。

  

  存储高可用

  Azure 托管磁盘

  • 本地冗余存储 (LRS)
    • 在建立存储账户时所在的区域复制数据三次。

  基于存储账户的磁盘

  • 本地冗余存储 (LRS)
    • 在建立存储账户时所在的区域复制数据三次。
  • 区域冗余存储 (ZRS)
    • 在两到三个设施之间复制数据三次(在单个区域内或两个区域之间)。
  • 异地冗余存储 (GRS)
    • 将数据复制到距主要区域数百千米之外的次要区域。
  • 读取访问异地冗余存储 (RA-GRS)
    • 与 GRS 同样,可将数据复制到次要区域,但此外还提供对次要位置中数据的只读访问权限。

  

  对于使用 Azure 托管磁盘的 VM,在使用托管可用性集时,VM 与托管磁盘容错域一致。 该一致性可确保附加到 VM 的全部托管磁盘都在同一托管磁盘容错域内。 在托管可用性集中,只能建立带托管磁盘的 VM。 托管磁盘容错域的数目因区域而异 - 每一个区域两个或三个托管磁盘容错域。

  实际操做

  首先建立资源组

  az group create --name myResourceGroupAvailability --location chinaeast

  再建立可用性集

  az vm availability-set create \
  --resource-group myResourceGroupAvailability \
  --name myAvailabilitySet \
  --platform-fault-domain-count 2 \
  --platform-update-domain-count 2

  再在可用性集内建立VM

for i in `seq 1 2`; do
az vm create \
--resource-group myResourceGroupAvailability \
--name myVM$i \
--availability-set myAvailabilitySet \
--size Standard_DS1_v2 \
--vnet-name myVnet \
--subnet mySubnet \
--image UbuntuLTS \
--admin-username azureuser \
--generate-ssh-keys
done

  • configure monitoring, networking, storage, and virtual machine size

  monitoring

  能够经过portal上VM的“监视”选项卡,增长相应规则,经过这里能够查找全部相应监视纸指标。

  经过CLI,创建一个cpu利用率大于90%的警报

  az monitor metrics alert create -n {nameofthealert} -g {ResourceGroup} --scopes {VirtualMachineResourceID} --condition "avg Percentage CPU > 90" --description {descriptionofthealert}

  建立网络

  az network vnet create \

--resource-group myResourceGroup \
--name myVnet \
--address-prefix 192.168.0.0/16 \
--subnet-name mySubnet \
--subnet-prefix 192.168.1.0/24

建立公共IP地址

az network public-ip create \
--resource-group myResourceGroup \
--name myPublicIP \
--dns-name mypublicdns

建立网络安全组及规则

az network nsg create \
--resource-group myResourceGroup \
--name myNetworkSecurityGroup

 

az network nsg rule create \
--resource-group myResourceGroup \
--nsg-name myNetworkSecurityGroup \
--name myNetworkSecurityGroupRuleSSH \
--protocol tcp \
--priority 1000 \
--destination-port-range 22 \
--access allow

建立虚拟网卡

az network nic create \
--resource-group myResourceGroup \
--name myNic \
--vnet-name myVnet \
--subnet mySubnet \
--public-ip-address myPublicIP \
--network-security-group myNetworkSecurityGroup

存储

  包含高级SSD,标准SSD和HDD,其中标准SSD比HDD有着更低的延迟和更稳定的性能,高级SSD则有着更好的性能和更高的IOPS等

az vm disk attach \
--resource-group myResourceGroupDisk \
--vm-name myVM \
--disk myDataDisk \
--size-gb 128 \
--sku Premium_LRS \
--new

VM size

  

 

  • deploy and configure scale sets

  利用虚拟机规模集,能够部署和管理一组相同的、自动缩放的虚拟机。 能够手动缩放规模集中的 VM 数,也能够定义规则,以便根据资源使用状况(如 CPU 使用率、内存需求或网络流量)进行自动缩放。

  代码

az vmss create \
--resource-group myResourceGroupScaleSet \
--name myScaleSet \
--image UbuntuLTS \
--upgrade-policy-mode automatic \
--admin-username azureuser \
--generate-ssh-keys

upgrade-policy-mode能够设置为  {Automatic, Manual, Rolling},完整参数可参考  https://docs.azure.cn/zh-cn/cli/vmss?view=azure-cli-latest#commands

能够在portal上设置缩放规则,同时VMSS也能够与数据磁盘结合使用

(4)  Automate deployment of Virtual Machines (VMs)

  • Modify Azure Resource Manager template

{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",     #必须存在,描述模板语言版本的 JSON 架构文件所在的位置。
"contentVersion": "",    #必须存在,模板的版本(例如 1.0.0.0)。 可为此元素提供任意值。 使用此值记录模板中的重要更改。 使用模板部署资源时,此值可用于确保使用正确的模板。
"apiProfile": "",     #用做资源类型 API 版本集合的 API 版本。 使用此值能够避免为模板中的每一个资源指定 API 版本。 若是你指定 API 配置文件版本但不指定资源类型的 API 版本,则资源管理器将使用配置文件中为该资源类型定义的 API 版本。
"parameters": { },    #执行部署以自定义资源部署时提供的值。
"variables": { },     #在模板中用做 JSON 片断以简化模板语言表达式的值。
"functions": [ ],    #定义函数
"resources": [ ],   #必须存在
"outputs": { }     #部署后返回的值
}

整体为JSON语法,可是,可使用表达式来扩展模板中可用的 JSON 值。 表达式分别以方括号 [ 与 ] 开头和结尾。

 

  • configure location of new VMs

  在 'resources'中定义位置信息

  "location": "[resourceGroup().lication]"

  • configure VHD template

  • deploy from template

  部署本地模板

  New-AzResourceGroup -Name $resourceGroupName -Location $location
       New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName `
-TemplateFile c:\MyTemplates\azuredeploy.json

  部署远程模板

  New-AzResourceGroup -Name $resourceGroupName -Location $location
New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName `
-TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-storage-account-create/azuredeploy.json

  • save a deployment as an Azure Resource Manager template

  • deploy Windows and Linux VMs

(5)  Implement solutions that use virtual machines (VM)

  • provision VMs

  • create Azure Resource Manager templates

  • configure Azure Disk Encryption for VMs

  包含加密密钥和关联的计算资源(例如存储和 VM 自己)的 Azure 密钥保管库必须位于同一区域。只容许镜像市场里的VM镜像磁盘加密,自定义镜像无。 

  加密 VM 的过程以下:

  1. 在 Azure 密钥保管库中建立加密密钥。
  2. 配置可用于加密磁盘的加密密钥。
  3. 为虚拟磁盘启用磁盘加密。
  4. 从 Azure Key Vault 请求所需的加密密钥。
  5. 使用提供的加密密钥加密虚拟磁盘。

  代码实现

az provider register -n Microsoft.KeyVault
resourcegroup="myResourceGroup"
az group create --name $resourcegroup --location chinaeast

keyvault_name=myvaultname$RANDOM
az keyvault create \
--name $keyvault_name \
--resource-group $resourcegroup \
--location chinaeast \
--enabled-for-disk-encryption True

建立秘钥

az keyvault key create \
--vault-name $keyvault_name \
--name myKey \
--protection software

az vm create \
--resource-group $resourcegroup \
--name myVM \
--image UbuntuLTS \
--admin-username azureuser \
--generate-ssh-keys \
--data-disk-sizes-gb 10

获取加密ID和密码

az ad sp create-for-rbac --query [appId,password] -o tsv

az keyvault set-policy --name $keyvault_name `
--spn <sp_id> --key-permissions wrapKey `
--secret-permissions set

az vm encryption enable \
--resource-group $resourcegroup \
--name myVM \
--aad-client-id <sp_id> \
--aad-client-secret <sp_password> \
--disk-encryption-keyvault $keyvault_name \
--key-encryption-key myKey \
--volume-type all

(6)  Create connectivity between virtual networks

  • create and configure VNET peering

  • create and configure VNET to VNET

  • verify virtual network connectivity

  控制台使用ping,能ping通则成功链接

  • create virtual network gateway

(7)  Implement and manage virtual networking

  • configure private and public IP addresses, network routes, network interface, subnets, and virtual network

(8)  Manage Azure Active Directory (AD)

  • add custom domains

  • configure Azure AD Identity Protection, Azure AD Join, and Enterprise State Roaming

  • configure self-service password reset

  • implement conditional access policies

  • manage multiple directories

  • perform an access review

(9)  Implement and manage hybrid identities

  • install and configure Azure AD Connect

  • configure federation and single sign-on

  • manage Azure AD Connect

  • manage password sync and writeback

相关文章
相关标签/搜索