一,引言

一,引言  

  我们是否正在为部署在云主机上的应用程序性能缓慢和停机问题而苦恼?我们是否正在因为云主机上仅仅部署了应用程序,在流量平缓的时候而浪费大量的计算资源而心疼荷包。那么让我们来一起看看 Azure Web App Plan 吧!今天我们以 IAC 的方式来控制资源的创建,通过使用 Terraform 配置我们的 Azure Web App Plan,可以让我们可以轻松优化应用程序的性能和可扩展性以满足不断增长的用户群的需求。借助 Azure Web App Plan,我们可以轻松创建和管理在完全托管环境中运行的可缩放 Web 应用。我们可以使用 Terraform 对其进行配置,从而比以往更轻松地自动化部署我们的基础设施。

二,正文

1,创建 Azure 应用服务计划资源

首先,您需要创建一个 Azure 应用服务计划资源。这是执行此操作的 Terraform 代码:

resource "azurerm_app_service_plan" "app_service_plan" {
name = "cnbateblogweb-app-service-plan"
location = "East Asia"
resource_group_name = "Web_Test_TF_RG"
kind = "Linux"
reserved = true sku {
tier = "Standard"
size = "S1"
}
}

此代码在 "East Asia"(东亚)的 位置创建一个叫做 "cnbateblogweb-app-service-plan" Azure App Service Plan 资源 ,SKU 为 "Standard" 大小为“S1”。它还将 "reserved" 属性设置为 true。

2,创建 Azure Web 应用资源

上一步我们已经创建了 Azure 应用服务计划资源,接下来可以创建 Azure Web App。以下是执行此操作的 Terraform 代码:

resource "azurerm_app_service" "app_service" {
name = "cnbateblogweb-web-app"
location = "${azurerm_app_service_plan.app_service_plan.location}"
resource_group_name = "${azurerm_app_service_plan.app_service_plan.resource_group_name}"
app_service_plan_id = "${azurerm_app_service_plan.app_service_plan.id}" site_config {
linux_fx_version = "DOCKER|xxx:tag"
}
}

此代码创建一个 Azure Web App 资源,该资源依赖与步骤 1 中创建的 Azure App Service Plan 资源。它还设置 “linux_fx_version” 属性以指定要用于 Azure Web App 的 Docker 映像和标记。

3,使用 azurerm_monitor_autoscale_setting 配置自动缩放

现在,让我们使用 azurerm_monitor_autoscale_setting,以下是执行此操作的 Terraform 代码:

resource "azurerm_monitor_autoscale_setting" "app_service_autoscale" {
name = "cnbateblogweb-autoscale"
resource_group_name = "${azurerm_app_service_plan.app_service_plan.resource_group_name}"
target_resource_id = "${azurerm_app_service_plan.app_service_paln.id}" profile {
default_capacity {
minimum = 1
maximum = 10
default = 1
} rule {
metric_trigger {
metric_name = "CpuPercentage"
metric_resource_id = "${azurerm_app_service_plan.example.id}"
time_grain = "PT1M"
statistic = "Average"
time_window = "PT5M"
operator = "GreaterThan"
threshold = 70
} scale_action {
direction = "Increase"
type = "ChangeCount"
value = 1
cooldown = "PT5M"
}

此 Terraform 代码创建一个 Azure Web App Plan 的自动缩放设置,用于监视 Azure Web App Plan 资源的 CPU 使用率,并在 CPU 使用率超过 70% 时自动扩展容量。同时还将设置最小和最大容量分别设置为 1 和 10,并将默认容量设置为 1。使用此自动缩放设置,可以确保我们的 Web 应用程序拥有处理高流量所需的资源,同时在流量减少时通过缩减来节省资金。

三,结尾

  通过执行这些简单的步骤,我们可以使用 Terraform 轻松配置 Azure App Service Plan 资源,并利用  azurerm_monitor_autoscale_setting。借助 Azure Web App Plan,可以确保 Azure Web App 的最佳性能,同时节省资源成本。对于企业/个人的云上资源的成本是个不错的选择!!!

参考链接:https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/app_service

作者:Allen

版权:转载请在文章明显位置注明作者及出处。如发现错误,欢迎批评指正。

Azure Terraform(十三)提升 Azure Web App Plan 的性能的更多相关文章

  1. 提升现代web app中页面性能

    提升现代web app的中的页面性能 前言,本文翻译自https://docs.google.com/presentation/d/1hBIb0CshY9DlM1fkxSLXVSW3Srg3CxaxA ...

  2. memcache 与 redis 为web app 带来的性能提升

    memcache 与 redis 为web app 带来的性能提升 参考: 1. http://www.cnblogs.com/ToDoToTry/p/3513688.html

  3. Azure 部署 Asp.NET Core Web App

    在云计算大行其道的时代,当你在部署一个网站时,第一选择肯定是各式各样的云端服务.那么究竟使用什么样的云端服务才能够以最快捷的方式部署一个 ASP.NET Core 的网站呢?Azure 的 Web A ...

  4. Azure DevOps (十三) 通过Azure Devops部署一个Go的Web应用

    前几篇文章中,我们分别实现通过azure来部署.NET和Springboot的应用,今天我们来研究一下如何部署一套Go的Web应用上去. 文章配套视频专栏: https://space.bilibil ...

  5. 从几篇文字得到关于web app开发的性能问题的答案

    1. http://blogs.adobe.com/creativecloud/are-mobile-web-apps-slow/ 2. http://software.intel.com/zh-cn ...

  6. Azure Web App (一)发布你的Net Core Web 项目

    一,引言 今天我们看一下Azure上的一个服务-----Web 应用,我们都知道云计算的三大模式:Iaas(基础设施即服务),Paas(平台即服务),Saas(软件即服务). Iass,其实就是虚拟主 ...

  7. Azure Application Gateway(一)对后端 Web App 进行负载均衡

    一,引言 今天,我们学习一个新的知识点-----Azure Application Gateway,通过Azure 应用程序网关为我么后端的服务提供负载均衡的功能.我们再文章头中大概先了解一下什么是应 ...

  8. 触摸屏网站开发系列(一)-ios web App应用程序(ios meta)

    触摸屏网站的开发其实现在来讲比前几年移动端网站开发好多了,触摸屏设备IOS.Android.BBOS6等系统自带浏览器均为WEBKIT核心,这就说明PC上面尚未立行的HTML5 CSS3能够运用在这里 ...

  9. HTML5-IOS WEB APP应用程序(IOS META)

    触摸屏网站的开发其实现在来讲比前几年移动端网站开发好多了,触摸屏设备IOS.Android.BBOS6等系统自带浏览器均为WEBKIT核心,这就说明PC上面尚未立行的HTML5 CSS3能够运用在这里 ...

  10. Azure Terraform(三)部署 Web 应用程序

    一,引言 上一节关于 Terraform 的文章讲到 Terraform 使用到的一些语法,以及通过演示使用 Terraform 在Azure 上部署资源组,极大的方便了基础设施实施人员,也提高了基础 ...

随机推荐

  1. anaconda的环境变量

    参考: (40条消息) Anaconda 环境变量手动设置(详细)_一夜星尘的博客-CSDN博客_anaconda环境变量手动设置

  2. node后台项目所需中间件梳理

    0.nodemon 全局工具,监听项目文件变动,并自动重启项目 一.node内置模块 1.fs fs.readFile()  读取指定文件中的内容fs.writeFile()  向指定的文件中写入内容 ...

  3. [读书笔记]FDTD与YEE晶胞

    截图选自Understanding the Finite-Difference Time-Domain Metho  作者是John B. Schneider 有限差分时域(FDTD)方法使用有限差分 ...

  4. Lenovo Vantage 完全卸载

    Lenovo Vantage 完全卸载 我的T480,最近因为在休眠状态下断电导致不开机,按开机键所有灯闪烁.翻阅百度发现居然是通病,自从 type-c 供电方案以来就有,无奈只有被奸商坑了350,只 ...

  5. MAC完整的地址

    作者:匿名用户 链接:https://www.zhihu.com/question/22883229/answer/71280098 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...

  6. Cross Site Scripting DOM (XSS) 攻击jQuery append() 的处理方法

    做安全红线使用Fortify工具进行扫描时,jquery append会报Cross Site Scripting DOM风险.解决该问题有两种办法. 一.原生dom方式 使用JavaScript原生 ...

  7. docker安装pgsql

    aliyun环境docker安装并使用postgres121.拉取postgres镜像docker pull postgres:12 2.检查现有镜像docker images 3.启动postgre ...

  8. jmeter之阶段式压测

    一.bzm - Concurrency Thread Group 1.什么是阶梯式压测 阶梯式压测,就是对系统的压力呈现阶梯性增加的过程,每个阶段压力值都要增加一个数量值,最终达到一个预期值.然后保持 ...

  9. bug单建单规范

      bug提单保证,清晰.简单.明了. 标题: [版本][服务器][模块][必现/偶现]bug标题(最短的话描述bug) 例:[0.9.0][dev][系统][必现]点击商店,跳转到仓库页面 bug模 ...

  10. go设置http代理

    打算把之前python写的程序切换到golang, 结果调试时发现fiddler无法正常捕获go的http请求 需要设置代理才可以正常捕获 const HttpProxyUrl = "htt ...