首页 > 其他分享 >Azure Terraform(十三)提升 Azure Web App Plan 的性能

Azure Terraform(十三)提升 Azure Web App Plan 的性能

时间:2023-04-04 11:14:01浏览次数:55  
标签:Web service App Terraform Azure app

一,引言  

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

--------------------Azure Terraform 系列--------------------

1,Azure Terraform(一)入门简介

2,Azure Terraform(二)语法详解

3,Azure Terraform(三)部署 Web 应用程序

4,Azure Terraform(四)状态文件存储

5,Azure Terraform(五)利用Azure DevOps 实现自动化部署基础资源

6,Azure Terraform(六)Common Module

7,Azure Terraform(七)利用Azure DevOps 实现自动化部署基础资源(补充)

8,Azure Terraform(八)利用Azure DevOps 实现Infra资源和.NET CORE Web 应用程序的持续集成、持续部署

9,Azure Terraform(九)利用 Azure DevOps Pipeline 的审批来控制流程发布

10,Azure Terraform(十)利用 Azure DevOps 的条件语句选择发布环境

11,Azure Terraform(十一)Azure DevOps Pipeline 内的动态临时变量的使用

12,Azure Terraform(十二)利用 Terraform 将文件上传到 Azure Blob Storage

13,Azure Terraform(十三)提升 Azure  Web App Plan  的性能

二,正文

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 

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

标签:Web,service,App,Terraform,Azure,app
From: https://www.cnblogs.com/AllenMaster/p/17284626.html

相关文章

  • 全面理解WebSocket与Socket、TCP、HTTP的关系及区别
    6.WebSocket和SocketSocket其实并不是一个协议,而是为了方便使用TCP或UDP而抽象出来的一层,是位于应用层和传输控制层之间的一组接口。 Socket本身并不是一个协议,它工作在OSI模型会话层,是一个套接字,TCP/IP网络的API,是为了方便大家直接使用。更底层协议而存在的一个抽象层。S......
  • Java使用IntelliJ IDEA配置Maven并管理一个webapp项目
    1、下载并安装Mavenapache官网地址:http://maven.apache.org/download.cgips:maven的使用是基于JDK的,所以电脑必须有JDK解压到文件夹,并配置环境变量。1、MAVEN_HOME,地址为maven的地址2、path,地址为%MAVEN_HOME%\binwin+r输入cmd进终端,输入mvn-v测试maven是否安装成功修改maven......
  • Java使用IntelliJ IDEA创建JavaWeb应用程序并配置Tomcat
    1、创建JavaWeb程序创建一个JavaEE项目,选择Web应用程序。创建好后结果如下2、添加Tomcat服务器首先在官网下载Tomcat对应的操作系统版本。https://tomcat.apache.org/右上角添加Tomcat服务器在服务器里选择本地的Tomcat地址,其他的默认。在部署里点击加号,选择Artifact工件,增加web......
  • 4.7 app.mount的作用效果
    这里msg的效果,在app.mount('#box')后就被覆盖掉了<!DOCTYPEhtml><html><head><metacharset="utf-8"><title></title></head><body><divid="box">......
  • PentestLab-web安全命令注入-EXP1
    我们打开靶机选择“Commandsinjection”选择“Example1”观察页面是不是跟很多家用路由器的的ping功能很像知识储备跟以前的知识一样,我们需要了解命令拼接符号的作用我们拼接payload为http://192.168.29.148/commandexec/example1.php?ip=127.0.0.1;cat%20/etc/passwd结果我们打......
  • Angular 应用里 server.ts 文件的 APP_BASE_HREF token 的用法?
    Angular应用里server.ts文件,下面这段代码的含义?server.get('*',(req,res)=>{res.render(indexHtml,{req,providers:[{provide:APP_BASE_HREF,useValue:req.baseUrl}],});});在Angular应用中,server.ts文件是用于构建服务器端渲染(S......
  • SAP Commerce Cloud 里的 jsapps 和 jsapps-ssr 容器
    SAPCommerceCloudVersion2,简称SAPCCV2,上面有两种container,jsapps和jsapps-ssr,二者区别是什么?SAPCommerceCloudVersion2(简称SAPCCV2)是SAP提供的一款云端电商解决方案。在SAPCCV2中,"jsapps"和"jsapps-ssr"都是用于部署Web应用程序的容器,但它们之间存在一些区别......
  • Appium移动端UI自动化介绍
    一.appium基本介绍1.搭建移动端自动化环境,具体搭建环境可以百度a.安装jdk并配置环境变量b.安装安装sdk并配置环境变量c.安装node.jsd.安装appiume.安装夜神模拟器 2.查看被测app包信息 1.冷启动时,windows系统输入adb logcat| findstr START  2.通过aapt命......
  • Web 开发中 20 个很有用的 CSS 库
    在过去的几年中,CSS已经成为一大部分开发者和设计者的最爱,因为它提供了一系列功能和特性。每个月都有无数个围绕CSS的工具被开发者发布以简化WEB开发。像CSS库,框架,应用这样的工具能够为开发者做很多事,而且可以使开发者创造出创新立异的WEB应用。 在这篇文件章中我们找到了一系列对......
  • Webgoat学习笔记
    Webgoat学习笔记Webgoat分为简单版和开发版,具体版本及安装方法详见:https://github.com/WebGoat/WebGoat本机环境为:Windows+Tomcat,故下载war包,自动解压缩进行部署。war下载地址:https://github.com/WebGoat/WebGoat/releases/    参考链接:Webgoat学习笔记:http://www.tui......