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

一,引言

一,引言  

  我們是否正在爲部署在雲主機上的應用程序性能緩慢和停機問題而苦惱?我們是否正在因爲雲主機上僅僅部署了應用程序,在流量平緩的時候而浪費大量的計算資源而心疼荷包。那麼讓我們來一起看看 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 

版權:轉載請在文章明顯位置註明作者及出處。如發現錯誤,歡迎批評指正。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章