Exam AZ-300: Microsoft Azure Architect Technologies

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

一) 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 逻辑应用来响应生成的警报。

  以下示例针对平均 CPU 使用率创建警报。

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

  • analyze metrics across subscription

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

  指标的响应速度快于日志,因此在创建警报时延迟更低,成本也更低。 

  

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

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

  

  • create action groups

  • monitor for unused resources

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

  • monitor spend

  Portal订阅中可以查看当前花费

  • report on spend

  可以将消费明细通过邮件等方式发送给用户

  • 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,模板等创建存储账户

  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

posted @ 2019-06-14 09:33  Ansel_Xu  阅读(505)  评论(0编辑  收藏  举报