531
技術社區[雲棲]
不寫代碼也可以駕馭阿裏雲OpenAPI
眾所周知,阿裏雲提供了一百多款雲產品,通過這些雲產品的組合,可以架構非常豐富的應用。但是,如何能夠用好這些雲產品,並不是個簡單的事情,特別的,當我們需要深入整合多款產品時,必然需要使用各雲產品的OpenAPI。
比如,根據業務流量動態擴容,就需要使用OpenAPI來創建按量付費的ECS實例,再把這些ECS初始化、安裝部署應用、掛在SLB等。這其中,就需要調用大量ECS、VPC、SLB的OpenAPI。
寫代碼調用OpenAPI聽起來簡單,但是其中涉及到的細節卻非常複雜。比如,要能夠熟練使用特定編程語言,要熟悉雲產品的SDK,特別是,還要處理網絡超時、一致性、回滾等等非常瑣碎又高度影響應用可用性和穩定性的細節。
有沒有辦法讓我們操作雲資源時,既有OpenAPI一樣的靈活性,又不需要關注調用細節呢?答案就是阿裏雲資源編排服務(ROS)。
ROS如何做到這一點呢?這依賴於ROS獨特的模板能力。ROS的模板是個JSON格式的文件,我們隻要在這個JSON中說明我們需要的資源即可,ROS服務會解析JSON文件,並自動為我們創建資源。所有繁瑣的細節都被ROS服務隱藏了。我們來看一下,創建一個ECS實例到底有多簡單:
{
"ROSTemplateFormatVersion": "2015-09-01",
"Resources": {
"my_ecs_instance": {
"Type": "ALIYUN::ECS::Instance",
"Properties": {
"ImageId": "centos_7_2_64_40G_base_20170222.vhd",
"InstanceType": "ecs.n1.medium",
"SecurityGroupId": "<my-sg-id>",
"VpcId": "<my-vpc-id>",
"VSwitchId": "my-vswitch-id",
"Password": "<my-login-password>",
"IoOptimized": "optimized",
"SystemDiskCategory": "cloud_ssd"
}
}
}
}
把這個模板通過ROS控製台提交後就能夠自動創建一台ECS實例。
上麵的過程看上去確實比寫代碼調用OpenAPI簡單的多,可是僅此而已嗎?其實ROS可以完成非常複雜的事情,模板中不僅可以定義雲資源,也能夠定義運資源的部署、配置細節。比如如何在ECS裏安裝軟件,如何把多個ECS掛在到SLB,如何規劃、創建非常複雜的VPC子網等等。比如下麵這些用法:
當然還有很多很多,可以翻翻資源編排服務官方博客和ROS使用文檔。
最後更新:2017-04-21 12:30:29