天天看點

企業應用如何解決Multi-Cloud的基礎設施管理及應用部署問題

“multi-cloud”即企業将多個應用部署在多個雲平台上,比如阿裡雲、aws、azure、openstack或其他雲平台。通過下面的模形我們可以看到企業選擇multi-cloud的因素及應用部署政策,包括7個主要因素:雲計算平台資料中心的通路速度/雲服務的性能/可用性、雲計算平台的成本、雲計算平台的安全性、客戶服務品質、本地化、雲計算平台的提供商、以及企業自有的資料中心地點。

rightscale的調查資料顯示目前有越來越多的企業選擇multi-cloud模式(2015年58%, 2016年增長到71%)。

雖然越來越多的企業選擇multi-cloud模式,但其也有很多挑戰,例如各個雲服務平台采用不同的技術、不同的使用者操作界面、提供不同的雲服務、不同的專業術語。即便是相同的服務(如雲伺服器),由于是來自多家雲計算平台,其api的定義不同,sdk也不同,各自提供的小工具也不能适用于其他雲平台。同時對于企業的運維人員要求也較高,運維人員要知道怎樣建構各個雲計算平台的基礎設施,以及部署、運維、監控等,以及各個應用對于雲計算平台的最佳選擇。

本文章将講述針對于multi-cloud模式的基礎設施管理及應用部署的解決方案。

阿裡雲針對于 terraform provider的官方倉庫位址:

<a href="https://github.com/alibaba/terraform-provider">https://github.com/alibaba/terraform-provider</a>

其中example包括雲伺服器ecs、負載均衡slb、安全組securitygroup、專有網絡vpc、路由器vswitch、nat網關natgateway的模闆,利用這些模闆可以做資源的建立/更新/銷毀的管理,如建立多台ecs後,再統一修改tag;或挂載、解除安裝slb的後端伺服器等等。

terraform的指令比較簡單,最重要的隻需要記住4條指令

運作 terraform apply指令後會在本地生成 terraform.tfstate 檔案,此檔案做為更新、銷毀資源的依據。

某企業的應用采用terraform+ansible的架構将其應用從openstack遷移至阿裡雲,隻用了1.5天的時間,而使用傳統的手工模式需要一周多的時間。

下面以建立雲伺服器ecs及磁盤,更新其數量,然後部署nginx為例詳細講解操作過程。

設定環境變量時,需要指向terraform所在的父目錄,如:terraform的路徑是"~/work/terraform_0.7.10",則指定環境變量時設定為export path=$path:~/work/terraform_0.7.10

下載下傳[terraform-alicloud-provider](

編寫雲伺服器ecs的模闆

module "alicloud-ecs" {

source = "github.com/alibaba/terraform-provider/terraform/examples/alicloud-ecs"

count = "1"

count_format = "%03d"

role = "worker" //這個作用是打标簽,此ecs的tag值将是role:worker

datacenter = "beijing"

ecs_type = "ecs.n1.small"

ecs_password = "alicloudtest1"

availability_zones = "cn-beijing-b"

security_group_id = "*" //這裡輸入securitygroupid

}

依次運作指令(注意一定要先修改security_group_id參數的值,指向真實的id):

terraform get //第一次連接配接時會有些慢

terraform plan //按照提示輸入您的ak資訊

terraform apply //按照提示輸入您的ak資訊

此時登入ecs控制台可以看到建立的雲伺服器。

修改第5步中的模闆”count”參數,将其修改為2,再次運作:

terraform plan //可以看到變更的資源,即新增加一台ecs以及磁盤

terraform apply

此時登入ecs控制台可以看到又建立一台雲伺服器

編寫ansible的playbook安裝nginx,playbook如下:

hosts: instance

tasks:

name: install nginx

apt: pkg=nginx state=installed update_cache=true

notify:

handlers:

執行指令:

nginx即安裝在以上2台ecs上,可以ssh登入ecs雲伺服器檢視或修改nginx的配置。

如果想釋放兩台ecs及磁盤,執行 terraform destroy即可

至此建立ecs雲伺服器、修改數量、安裝nginx完成。通過terraform+ansible的方式可以把基礎資源的管理和應用部署分開,terraform的模闆依照一緻的模闆形态實作對multi-cloud的基礎設施管理,ansible的playbook可以被重複執行将應用部署在不同的雲平台上。

阿裡雲會持續提供更多的與流行開源工具的內建為企業的雲上部署及運維提供便利。

繼續閱讀