开发者社区> 升功> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

基于阿里云构建自己的弹性应用

简介: 阿里云在2015年底推出了一款新的服务,其目标皆在于帮助云计算用户进一步减少在基础设施维护上的成本,提供更加敏捷的云计算资源维护能力。这款服务就是阿里云资源编排服务
+关注继续查看

短短几年,软件、企业信息系统、互联网等行业因为云计算的出现和普及发生了很多的改变。在今天,如果我们计划创建一家新的互联网初创公司的时候,我们不再需要把时间浪费在服务器采购、IDC选择、网络南北互通和服务器硬件故障这些基础设施上面。因为像ECS这类服务的出现,我们需要的服务器资源已经变得唾手可得。同时,RDS、Redis、OSS等服务的出现,我们甚至不需要自己去安装和维护数据库、缓存等软件了。云计算使互联网初创公司能够更关注自己核心业务的快速奔跑。

同时,云计算本身也在快速发展。创业公司对云计算的理解和应用能力,也成为了创业公司最终成败的一个重要因素之一,因为这不仅影响到成本,同时也影响到产品的性能、规模、服务能力、用户体验和迭代速度。成本和迭代速度对于初创公司的重要性不言而喻。

阿里云在2015年底推出了一款新的服务,其目标皆在于帮助云计算用户进一步减少在基础设施维护上的成本,提供更加敏捷的云计算资源维护能力。这款服务就是阿里云资源编排服务

在资源编排服务出现之前,虽然我们已经不需要搬运沉重的服务器到机房去,大部分时候我们只要在阿里云的网站上点点鼠标就能够得到我们想要的服务器资源,但是当管理的资源多起来以后,通过Web界面来维护大量的云产品的创建、配置仍然是颇有挑战的工作,特别是当出于安全需要而引入复杂的网络拓扑结构时,很多管理员不得不借助外部文档来记录资源间的依赖关系、系统整体架构和很多的配置细节。使用阿里云资源编排服务(Resource Orchestration Service),用户仅需要编写一个文本文件,就能很好的解决这些问题。借助这个文件和编排服务提供的能力,我们不仅能够定义我们的资源需求、配置细节和资源间的依赖关系,甚至我们可以在同一个文件中描述整个网络拓扑结构和系统架构。这个文件神奇的定义了整个系统,并且重要的是只有一个文件,而且整个系统可以任意复制、修改。

资源编排的核心概念:

  • 模板:模板是一个JSON格式的文本文件,遵照阿里云资源模板的格式定义。其中定义了用户系统的所有资源细节和整体架构。阿里云资源编排模板定义
  • 资源编排服务:资源编排服务是阿里云提供的开放云产品,提供RESTful风格的API、SDK和Web界面供用户使用。接受用户提交的资源模板,完成用户系统的生命周期维护。
  • 资源栈: 资源栈是一个逻辑上的概念,用户定义的资源模板文件,由资源编排服务执行后得到的资源全体即是资源栈。一个资源栈代表了一个用户的运行时系统。

阿里云资源编排服务

下面用一个网页游戏的例子来说明如何借助资源编排服务的能力来简化整个系统配置。作为一个小的创业团队,我们没有专职的运维工程师,同时我们的游戏很受欢迎,是一个峰值在线人数超过2000人的网页游戏。由于游戏的特点导致用户操作比较频繁,我们大概前期需要2台2核心4GB内存的ECS实例,一个rds.mss1.xlarge规格的SQLServer实例,2台ECS实例运行的是同样的游戏服务端程序,游戏用户通过统一的域名登入游戏,不会感知后面到底有多少机器来提供服务,所以我们还需要一个SLB来做2台ECS的前端负载均衡器。整个游戏系统的架构如下:

基于阿里云的网页游戏架构

为了创建整个游戏系统,我们提前已经把游戏软件做成了一个私有镜像,镜像ID是m-25qoptbjn,然后我们编写了下面的模板:

{
    "ROSTemplateFormatVersion": "2015-09-01",

    "Resources": {

        "LoadBalancer": {
            "Description": "创建负载均衡实例,带宽20Mbps,按固定带宽付费",
            "Properties": {
                "AddressType": "internet",
                "Bandwidth": 20,
                "InternetChargeType": "paybybandwidth"
            },
            "Type": "ALIYUN::SLB::LoadBalancer"
        },

        "BackendServer1": {
            "Description": "创建游戏服务器实例,使用装有游戏服务端软件的自定义镜像, 实例规格ecs.s2.large",
            "Properties": {
                "ImageId": "m-25qoptbjn",
                "InstanceType": "ecs.s2.large",
                "InternetChargeType": "PayByTraffic",
                "IoOptimized": "optimized",
                "SecurityGroupId": {
                    "Fn::GetAtt": [
                        "securityGroup",
                        "SecurityGroupId"
                    ]
                },
                "SystemDisk_Category": "cloud"
            },
            "Type": "ALIYUN::ECS::Instance"
        },

        "BackendServer2": {
            "Description": "创建游戏服务器实例,使用装有游戏服务端软件的自定义镜像, 实例规格ecs.s2.large",
            "Properties": {
                "ImageId": "m-25qoptbjn",
                "InstanceType": "ecs.s2.large",
                "InternetChargeType": "PayByTraffic",
                "IoOptimized": "optimized",
                "SecurityGroupId": {
                    "Fn::GetAtt": [
                        "securityGroup",
                        "SecurityGroupId"
                    ]
                },
                "SystemDisk_Category": "cloud"
            },
            "Type": "ALIYUN::ECS::Instance"
        },

        "SLB_Attachment": {
            "Description": "挂载2台ECS实例到SLB",
            "Properties": {
                "BackendServers": [{
                    "ServerId": {
                        "Ref": "BackendServer1"
                    },
                    "Weight": 100
                }, {
                    "ServerId": {
                        "Ref": "BackendServer2"
                    },
                    "Weight": 100
                }],
                "LoadBalancerId": {
                    "Ref": "LoadBalancer"
                }
            },
            "Type": "ALIYUN::SLB::BackendServerAttachment"
        },
        "securityGroup": {
            "Description": "创建经典网络安全组",
            "Properties": {
                "SecurityGroupName": "WebGameSG"
            },
            "Type": "ALIYUN::ECS::SecurityGroup"
        },
        "Database": {
            "Description": "创建SQL Server数据库",
            "Type": "ALIYUN::RDS::DBInstance",
            "Properties": {
                "Engine": "SQLServer",
                "EngineVersion": "2008r2",
                "DBInstanceClass": "rds.mss1.xlarge",
                "DBInstanceStorage": 10,
                "DBInstanceNetType": "Intranet",
                "SecurityIPList": {
                    "Fn::GetAtt": ["BackendServer1", "InnerIp"]
                }
            }
        }
    }
}

模板完整定义了整个系统的资源细节和之间的依赖关系。我们登入阿里云资源编排服务的控制台,输入上面的模板内容,几分钟后网页游戏服务就已经搭建完成了。当然这个例子还是很简陋的,随着游戏运营,可能同时在线人数上升到了5000人,我们需要增加3台机器,我们只要修改模板文件重新交给资源编排服务就可以进行系统扩容。如果我们需要在另一个地域,比如青岛开辟一组新的服务,只要把模板文件复制后,选择在青岛区域运行就同样可以在几分钟内将整个服务复制到青岛。

另一个例子,我们是一家为客户提供基因分析服务的初创公司。我们通过采集客户的唾液来提取基因数据,然后采用大规模机器学习的方法来对基因数据进行分析,并最终给客户提供某些疾病的发病风险的可能性报告。人的基因数据一般都需要若干GB的文件来存储,分析这些数据需要大量的计算资源。作为初创公司,维护几百台服务器是无法接受的成本。通过阿里云的资源编排服务,我们把整个分析所依赖的软件和资源用一个模板文件来定义,当接到分析任务的时候,我们把模板文件交给阿里云的资源编排服务构建整个系统,可能是几十台ECS,上面运行我们的分析软件。当整个计算完成后,我们立即释放所有资源。这样,我们即有能力调度大量的计算资源来完成我们的业务,同时又不必为资源闲置买单。借助阿里云资源编排的能力,我们可以用同样的模板来同时构建多个一模一样的系统,来并行处理。同时,阿里云资源编排服务提供API和SDK,使我们可以把整个流程和我们的业务系统进行集成,我们可以像写代码一样的来操作云计算资源。

上面的例子虽然很简单,但是已经能够构建出很多有用的系统。其他一些系统要更复杂,但是通过阿里云资源编排服务提供的能力,整体的运维复杂度依然可以控制在很低的程度。

阿里云资源编排服务是免费的,更多信息请访问: https://www.aliyun.com/product/ros/

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
海信聚好看矫恒浩:构建异地双活混合云,利用公共云应对流量突增
通过构建异地双活混合云,聚好看为用户提供就近访问能力,提升电视用户使用体验~
237 0
基于阿里云云平台构建安全攻防靶场演练系统
我们将在“现有的阿里云云平台上”去使用Pikachu去构建安全攻防靶场,Pikachu是使用世界上最好的语言PHP进行开发,数据库使用的是mysql,因此运行Pikachu需要提前安装好"PHP+MYSQL+中间件(如apache,nginx等)"的基础环境,这样的话,才能在去搭建Pikachu哦,那么请大家跟随我一起学习基于云平台的安全攻防靶场系统构建吧~
521 0
小打卡基于阿里云构建企业级数仓的实践及总结
本次分享主要有4块内容,小打卡介绍,小打卡数仓场景简介,小打卡数仓选型思路以及代表性案例分享。
5963 0
阿里云:构建全球企业内外安全网络最佳实践
近年来,随着全球形势复杂,以及5G等新型网络技术商用,网络安全议题越加被关注,管理者和IT运维持续面临新的网络安全威胁,数据泄露等问题突出,时常需要调整系统应对新的挑战。阿里云作为全球领先的云网络服务提供商,其洛神云网络平台在网络安全领域持续深耕,是阿里云100多个云产品背后的基础设施,面向政、企、个人等百万用户提供连接全球的云网一体安全网络。
976 0
阿里云:构建全球企业内外安全网络最佳实践
近年来,随着全球形势复杂,以及5G等新型网络技术商用,网络安全议题越加被关注,管理者和IT运维持续面临新的网络安全威胁,数据泄露等问题突出,时常需要调整系统应对新的挑战。阿里云作为全球领先的云网络服务提供商,其洛神云网络平台在网络安全领域持续深耕,是阿里云100多个云产品背后的基础设施,面向政、企、个人等百万用户提供连接全球的云网一体安全网络。
746 0
停课不停学,阿里云“神龙+容器”帮助在线教育企业构建高质量课堂
各大学校与教育机构响应号召,使得近期在线教育需求激增。在线教育学生的学习时间较为集中,高峰时段呈现出大流量、高并发的特点,对在线教育机构的业务弹性和稳定性提出极大挑战。
2741 0
基于阿里云搭建的适合初创企业的轻量级架构--架构总结
在项目的初期往往存在很多变数,业务逻辑时刻在变,而且还要保证快速及时,所以,一个灵活多变、快速部署、持续集成并可以适应多种情况的架构便显得尤为重要。本文主要介绍基于阿里云搭建适合项目初期的后端架构
3162 0
云加数商业地产转型——基于阿里云构建云+中台
本文的整理自2017云栖大会-上海峰会正佳金控集团CIO宋亦皇的分享讲义,讲义主要介绍了数据和云计算催生了那些新的商业模式。并且在介绍了云计算和数据在其中的地位。
2288 0
+关注
升功
阿里云计算
7
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载