练习 - 在应用服务中部署整体应用程序
我们探讨了一些有关整体式体系结构和微服务体系结构的内容。 现在,让我们部署一个整体应用程序,并深入研究如何将其发展为微服务体系结构。
Fabrikam 最近将无人机服务添加到了其现有应用程序中。
在此练习中,我们将在 Azure 应用服务上部署整体应用程序,并启用 Azure Monitor 来了解遥测和应用程序性能。
在 Azure 应用服务上部署整体应用程序
我们从部署应用程序开始。 首先,我们需要创建 Azure 资源来托管应用程序。
运行以下命令,部署此应用程序所需的资源。 此部署需要几分钟时间。
az deployment group create \ --resource-group "<rgn>[sandbox resource group]</rgn>" \ --template-uri https://raw.githubusercontent.com/MicrosoftDocs/mslearn-microservices-architecture/master/deployment/azuredeploy.json
现已创建资源,接下来我们来部署应用程序。 首先,运行以下命令,从示例存储库中拉取源代码。
git clone https://github.com/MicrosoftDocs/mslearn-microservices-architecture.git ~/mslearn-microservices-architecture cd ~/mslearn-microservices-architecture/src/before
运行以下命令,压缩应用程序代码,我们将该代码用于部署到应用服务。
zip -r DroneDelivery-before.zip .
运行以下命令,将变量设置为应用服务的名称。
APPSERVICENAME="$(az webapp list \ --resource-group "<rgn>[sandbox resource group]</rgn>" \ --query '[].name' \ --output tsv)"
运行以下命令,将应用服务配置为在部署过程中运行生成。
az webapp config appsettings set \ --resource-group "<rgn>[sandbox resource group]</rgn>" \ --name $APPSERVICENAME \ --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
现在,运行以下命令,将应用程序部署到应用服务。 此部署需要几分钟时间才能完成。
az webapp deploy \ --resource-group "<rgn>[sandbox resource group]</rgn>" \ --name $APPSERVICENAME \ --src-path DroneDelivery-before.zip
部署完成后,通过访问应用服务的网站来确认部署是否成功。 运行以下命令,获取 URL,选中它以打开页面。
echo https://$(az webapp config hostname list \ --resource-group "<rgn>[sandbox resource group]</rgn>" \ --webapp-name $APPSERVICENAME \ --query [].name \ --output tsv)
针对应用程序执行负载测试
现在,测试应用程序在其整体体系结构中的性能。
在已部署应用程序的主页上,选择“发送请求”。 此操作会模拟通过应用程序提交 100 个请求。
对于第一个请求,会看到这样的结果:大约需要 8-12 秒来处理 100 个消息。 如果刷新页面并在提示时重新提交,这个数字可能会减少大约一半。 每个请求仍然需要 5 秒左右。
Fabrikam 怀疑整体体系结构会阻止使用频繁的服务进行缩放,导致出现性能不佳的情况。