返回 登录
3

【上云实践征文】无服务器计算实施分析

一、无服务器计算的方案调研
近年来,一种新型的云计算开始受到媒体和企业客户越来越多的关注。无服务器计算,即Serverless Computing,也称为功能即服务(FaaS,Function as a Service),允许开发人员在云上运行代码,而无需担心基础设施。开发人员只是上传他们的代码,云平台服务根据执行代码所开销的计算资源向开发人员计费。
一些分析师认为,无服务器计算可能是2017年及以后的一大趋势。因为企业正在拥抱DevOps思想,他们正在寻求新的方法来简化操作和提高效率 - 无服务器计算填补了这个需求。最近国外的分析报告也指出,FaaS的兴起有可能成为云计算的新浪潮。我们已经从基础设施原语转移到平台和容器,到所有基础设施都得到完全管理,开发人员只需要关心他们的代码。
当然,“无服务器计算”标签并不够准确——实际上,客户的代码仍然在云平台的服务器上运行。从开发人员的角度来看,业务本身所需的服务无需自行开发和部署实施,这些服务无“自己的服务器”,因为客户不必部署任何基础设施,甚至开通所需服务的任何云计算实例。相反,云平台提供的各项基础云服务可以直接供业务所用。这种模式使得开发人员可以免于这些开发的烦恼,使他们能够专注于为业务开发最新的应用程序和服务。
无服务器计算常见的实施用例包括视频转码和其他媒体处理、按需ETL(注1)、移动和物联网的后端服务、Web应用程序、流处理和基于定时器的处理等。 注1:ETL是英文Extract-Transform-Load的缩写,用于描述将分散的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后,进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘提供决策支持的数据。
亚马逊是无服务器计算的早期领导者,在2014年年底推出了AWS Lambda服务。它在市场份额上获得了早期领先,但其他一些供应商,包括微软,谷歌和IBM,也进入了无服务器计算领域。Microsoft在2016年推出了Azure Functions无服务器计算服务。尽管与AWS Lambda非常相似,但它确实有一些差异,特别是在编程语言支持和定价方面。
二、阿里云无服务器计算上云分析
阿里云提供了多种无服务器计算服务,这些计算服务可使得开发人员无需预配置或管理服务器即可运行代码。并且只在需要时执行开发人员的代码并自动缩放,响应的请求从每天几个请求到每秒数千个请求。业务方只需按消耗的计算时间付费——代码未运行时不产生费用。借助阿里云的无服务器计算服务,业务方几乎可以为任何类型的应用程序或后端服务运行代码,而且无需执行任何管理。阿里云的无服务器计算服务在可用性高的计算基础设施上运行业务方的代码,执行计算资源的所有管理工作,其中包括服务器和操作系统维护、容量预置和自动扩展、代码监控和记录。
图片描述
而在阿里云上可以选择的无服务器计算服务有:
1. E-MapReduce
构建于阿里云ECS弹性虚拟机之上,利用开源大数据生态系统,包括Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。
2. 块存储
块存储(Block Storage),是阿里云为云服务器ECS提供的低时延、持久性、高可靠的数据块级随机存储。块存储支持在可用区内自动复制您的数据,防止意外的硬件故障导致数据不可用,以保护您的业务免于组件故障的威胁。就像对待硬盘一样,您可以对挂载到ECS实例上的块存储做格式化、创建文件系统等操作,并对数据持久化存储。
3. 对象存储OSS
基于阿里云飞天分布式系统的海量、安全和高可靠的云存储服务,提供RESTful API,按实际容量付费。
4. 业务服务
包括短信服务(Short Message Service)、移动推送服务(Alibaba Cloud Mobile Push)、邮件推送服务(Direct Mail)、语音服务(Voice Messaging Service)、阿里云消息服务(Message Service,原MQS)、日志服务(Log Service,简称Log)、开放搜索(OpenSearch)、消息队列(Message Queue,简称MQ)、视频点播(ApsaraVideo for VOD,简称VOD)、视频直播服务(ApsaraVideo for Live)、媒体转码(ApsaraVideo for Media Transcoding)等。
5. 云数据库RDS
云数据库RDS(ApsaraDB for RDS,简称RDS)是一种稳定可靠、可弹性伸缩的在线数据库服务。基于飞天分布式系统和全SSD盘高性能存储,支持MySQL、SQL Server、PostgreSQL和PPAS(高度兼容Oracle)引擎,默认部署主备架构且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案。 除此之外,还有云数据库Redis版、云数据库PetaData、云数据库HBase版、云数据库MongoDB版、云数据库Memcache版、云数据库HybridDB、云数据库OceanBase等。
6. 数据服务
• 数据传输
数据传输(Data Transmission) 支持以数据库为核心的结构化存储产品之间的数据传输。是一种集数据迁移、数据订阅及数据实时同步于一体的数据传输服务。数据传输致力于在公有云、混合云场景下,解决远距离、毫秒级异步数据传输难题。
• 表格存储
表格存储(Table Store)是构建在阿里云飞天分布式系统之上的NoSQL数据存储服务,提供海量结构化数据的存储和实时访问。表格存储以实例和表的形式组织数据,通过数据分片和负载均衡技术,实现规模上的扩展。
• 数据管理
数据管理(Data Management)支持MySQL、SQL Server、PostgreSQL、MongoDB、Redis等关系型数据库和NoSQL的数据库管理,同时还支持Linux服务器管理。它是一种集数据管理、结构管理、访问安全、BI图表、数据趋势、数据轨迹、性能与优化和服务器管理于一体的数据管理服务。
三、上云后的分析
选择无服务器计算架构模式可以给业务带来如下好处:
• 节省资金
• 减少开发周期
• 加速开发速度
• 有近乎无限的扩容能力
选择无服务器计算提供商需要考虑和比较它们能够提供的各项服务的目录。上面阿里云提供的各项服务完全能够满足构建和部署大多数业务的需求。主要的考虑点包括:
1. 关于无服务器平台的决策不仅应考虑特定无服务器计算(或作为服务功能)平台的功能,还应考虑周围生态系统的功能。真正的价值在于云提供商提供的整个无服务器生态系统的能力。
2. 如果您的组织已经在使用来自一个特定供应商的大量云计算服务,那么继续使用该服务器无需服务器可能是有意义的。选择一个平台比另一个平台最重要的驱动因素是开发商(或公司)是否已经在平台上进行了大量投资。一般来说,构建无服务器系统的公司已经在特定云提供商方面拥有丰富的经验和投资。
3. 优先试用无服务器平台提供商的免费试用服务。
可以看我们的实施案例,如下图所示:
图片描述

购食汇就是无服务器计算架构的一个实践例子,它是一个长美科技有限公司旗下的生鲜电商平台。公司由四川长虹集团合肥美菱股份投资,“购食汇”业务打造生鲜电商的独特优势,全程冷链配送,社区智能保鲜自提柜。

四、最后
基于阿里云无服务器计算服务构建业务的开发和实施难度并不大,开发人员可以按需选择自己所需的服务,专注于业务本身的开发。而且,依靠阿里云提供的性能监测、报警功能,可以及时发现业务系统的异常情况,并及时采取措施。

评论