閱讀531 返回首頁    go 技術社區[雲棲]


不寫代碼也可以駕馭阿裏雲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

  上一篇:go 第1期:校園頭條
  下一篇:go Python爬蟲實戰