不写代码也可以驾驭阿里云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使用文档

上一篇:10分钟自动部署Kubernetes1.6.1集群


下一篇:如何通过ACK 纳管Nvidia A100 GPU实例,实现资源池化