深入探索Azure应用服务与容器管理
立即解锁
发布时间: 2025-08-13 02:39:11 阅读量: 14 订阅数: 15 


Azure云管理与自动化实战指南
### 深入探索 Azure 应用服务与容器管理
在云计算领域,Azure 提供了丰富的服务来支持应用程序的开发、部署和管理。本文将详细介绍 Azure 中的应用服务(App Service)、容器管理相关内容,包括创建应用服务、部署 Web 应用、使用 Docker 容器以及容器实例等方面。
#### 1. 创建应用服务(App Service)
创建应用服务可以通过 Azure 门户手动操作,也可以使用 ARM 模板、PowerShell 或 Azure CLI 进行自动化部署。
##### 1.1 Azure 门户创建
在 Azure 门户中,选择创建新资源并搜索“App Service 计划”,需要填写一些基本参数:
- 资源组(Resource Group):应用服务将部署到的资源组。
- 名称(Name):应用服务的名称。
- 操作系统(Operating System):选择应用服务运行的操作系统。
- 区域(Region):选择应用服务部署的区域。
- 层级(Tier):选择应用服务的层级。
填写完参数后,审查并创建资源。
##### 1.2 ARM 模板、PowerShell 和 Azure CLI
由于部署代码可能较大,所有 ARM 模板、Azure PowerShell 和 Azure CLI 脚本都存储在 Apress GitHub 账户中,可通过以下 URL 访问:
[https://github.com/Apress/pro-azure-admin-and-automation](https://github.com/Apress/pro-azure-admin-and-automation)
#### 2. Web 应用的部署与配置
Web 应用是使用特定语言编写的实际应用程序,部署到 App Service 计划中。部署初始的 Web 应用时,会得到一个基础模板代码,可以根据需要进行修改。
##### 2.1 创建 Web 应用
创建 Web 应用也可以通过 Azure 门户或自动化方式进行。
- **Azure 门户创建**
- 在“创建资源”选项中搜索“Web 应用”。
- 填写多个参数:
- 资源组名称(Resource Group Name)
- Web 应用名称(Name for Web App)
- 发布类型(Publishing Type):可以选择 Docker 容器。
- 运行时堆栈(Runtime Stack)
- 区域(Region)
- 之前创建的计划(Previously Created Plan)
- 可选择启用 Application Insights(用于监控其他服务和应用程序),这里跳过。
- 审查选择并创建 Web 应用。创建完成后,访问 Web 应用页面确认是否部署成功,应看到演示模板。
- **自动化部署**
同样,ARM 模板、PowerShell 和 Azure CLI 脚本可在上述 GitHub 账户中获取。
##### 2.2 发布 Web 应用
成功部署 Web 应用后,需要将代码部署到应用中,有多种方式可供选择:
- **从包运行(Running from the Package)**
- 创建项目的 ZIP 存档,应包含 index.html、index.php 和 app.js 等文件。
- 启用 Web 应用中的特定选项 `WEBSITE_RUN_FROM_PACKAGE`,使用 Azure CLI 命令:
```bash
az webapp config appsettings set --resource-group apress-ch05-rg --name apress --settings WEBSITE_RUN_FROM_PACKAGE="1"
```
- 运行包的命令:
```bash
az webapp deployment source config-zip --resource-group apress-ch05-rg --name apress --src <filename>.zip
```
- **部署 ZIP 文件(Deploying a ZIP)**
- 可以将之前创建的 ZIP 文件部署到 Web 应用中,项目文件将部署到应用的默认文件夹 `/home/site/wwwroot`。
- 可以通过访问 `https://apress.scm.azurewebsites.net/ZipDeployUI` 页面,将 ZIP 文件拖到网页的文件浏览器区域进行部署。
- 也可以使用 Azure CLI 命令:
```bash
az webapp deployment source config-zip --resource-group apress-ch05-rg --name apress --src <filename>.zip
```
- **通过 FTP 部署(Deploying via FTP)**
在 Web 应用的“Deployment”菜单中,选择“Deployment Center”和“FTP”,可以获取部署所需的参数信息,如 FTPS 端点、用户名和密码。
- **云同步(Cloud Sync)**
可以使用 Dropbox 和 OneDrive 等服务同步内容,在“Deployment Center”菜单中可以找到这些选项。
- **持续部署(Continuous Deployment)**
可以与 GitHub、Bitbucket 和 Azure Repos 一起使用。在“Deployment Center”中授权 Web 应用访问存储库。
- **从本地 Git 部署(Deploying from Local Git)**
- 克隆模板存储库:
```bash
git clone https://github.com/Azure-Samples/app-service-web-html-get-started
```
- 配置部署用户:
```bash
az webapp deployment user set --user-name 'apress' --password 'V3ryStr0ngPa55!'
```
- 获取部署 URL:
```bash
$url = az webapp deployment source config-local-git --name apress --resource-group apress-ch05-rg
$url
```
- 部署 Web 应用:
```bash
git remote add azure "https://[email protected]/apress.git"
git push azure
```
- 推送时会要求输入为部署用户创建的密码。
- **通过 GitHub Actions 部署(Deploying via GitHub Actions)**
GitHub Actions 可以直接从 GitHub 使用 CI/CD 轻松自动化软件工作流程。
- **使用 ARM 模板部署(Deploy Using the ARM Template)**
可以参考 Microsoft 提供的示例:[https://github.com/azure-appservice-samples/ToDoApp](https://github.com/azure-appservice-samples/ToDoApp),点击“Deploy to Azure”按钮并填写参数。
#### 3. Web 应用的 CI/CD
可以通过 Azure DevOps 创建 CI/CD 管道,步骤如下:
- 访问 [dev.azure.com](dev.azure.com),使用 Microsoft 账户登录。
- 创建一个组织(Organization),在该组织下可以创建多个项目(Projects)。
- 连接 Azure DevOps 到 Azure 订阅,在“Organization Settings”中选择 Azure Active Directory 并连接目录。
- 回到之前部署的 App Service,选择“Deployment Center” -> “Azure Repos”。
- 选择“Azure Pipelines”并继续,从下拉菜单中选择创建的组织、项目、存储库、分支和应用程序使用的框架。
- 完成上述步骤后,将在 Azure DevOps 项目中创建所需的 CI/CD 管道。每次向存储库推送新代码时,将触发新的构建,构建成功后将触发发布。
#### 4. 蓝绿部署(Blue-Green Deployment)
使用 Standard S1 App Service 计划时,有一个很棒的功能是暂存槽(Staging Slots)。默认情况下,App Service 有一个名为“Production”的部署槽。可以轻松添加额外的槽用于不同的环境(如开发、测试、QA),还可以选择从“Production”槽克隆当前状态。
在发布管道中设置多个阶段,针对 App Service 的不同槽进行部署。测试新功能或更改完成后,可以一键交换槽,实现零停机部署。如果发现新代码有问题,还可以再次交换槽恢复到之前的状态。在交换槽之前,还可以使用流量百分比功能,将特定百分比的流量发送到开发槽,以测试新代码在生产负载下的运行情况。
#### 5. Web 应用的自动缩放(Auto-scaling)
缩放分为两种类型:
- 垂直缩放(Scale-up):增加单个实例的资源。
- 水平缩放(Scale-out):增加实例的数量。
自动缩放基于水平缩放场景实现,第一个支持自动缩放功能的 App Service 计划是 Standard S1。要使用自动缩放功能,需要创建规则来触发实例数量的增加或减少(缩放或缩容),规则基于 App Service 可用的特定指标创建,如:
- CPU 百分比(CPU percentage)
- 内存百分比(Memory percentage)
- 数据进出量(Data in or out)
- 磁盘或 HTTP 队列长度(Disk or HTTP queue length)
同时,设置实例的最小和最大数量非常重要,以避免不可预测的缩放导致潜在的资金损失。
#### 6. Web 应用的监控(Web Apps Monitoring)
有多种选项可用于监控 App Service:
- **警报(Alerts)**:可以创建警报规则,当特定条件满足时触发特定操作,例如监控连接数量,当超过特定值时触发发送电子邮件操作。
- **指标(Me
0
0
复制全文
相关推荐









