Bazaar:阿里云Serverless计算服务探秘

本文涉及的产品
简介: Serverless 指用户无需管理服务器情况下构建和运行应用程序的一种方式。可见 Serverless 并不是真的不需要服务器,毕竟程序代码不能靠意念来执行,仍然是需要硬件服务器实体来作为运行代码的基础的。

Bazaar:阿里云Serverless计算服务探秘

 作者:Bazaar项目组

1.     什么是 Serverless

“Serverless computing refers to the concept of building and running applications that do not require server management.”

-- 来自 CNCF 对 Serverless 的定义

Serverless 指用户无需管理服务器情况下构建和运行应用程序的一种方式。可见 Serverless 并不是真的不需要服务器,毕竟程序代码不能靠意念来执行,仍然是需要硬件服务器实体来作为运行代码的基础的。这里的 Serverless 是站在应用开发人员的视角提出的,指服务器的运行、维护对于应用程序的开发人员不可见。将底层基础架构的维护、更新和扩展等任务交给平台提供商来完成。从而将业务开发人员解放出来,让他们更好的关注自身业务。这便是 Serverless 计算背后的核心思想。可见这一思想能够产生的一大基石便是云计算服务。只有凭借云计算构建的强大基础运维平台,才能够适应无服务器计算对于计算、存储和网络资源的需求。

图1展示了 Serverless 计算的发展历程。早在2006年就已经出现了第一个带有 Serverless 性质的计算服务平台 Zimki,该平台会按照代码实际执行时间向用户收取相应的费用。随后的2008年谷歌推出Google App Engine产品,其背后的理念也是 Serverless 计算。但这一时期,Serverless 计算的概念并没有被明确提出。Serverless 概念第一次出现的时间是在2012年,iron.io,一家基于容器提供分布式按需执行服务的提供商提出了这一概念。2014年AWS Lambda这一里程碑式的产品出现。通过将无服务器计算的概念嵌入到整个云计算服务的整体框架中,无服务器计算正式走进了云计算的舞台中央。2016年无服务器计算则迎来了快速发展的阶段,IBM、谷歌、微软相继推出了IBM OpenWhisk on Bluemix、Google Cloud Functions和Azure Functions等相关产品。而到了2018年,随着容器技术的发展,各类 Serverless container 平台更是如雨后春笋般出现在人们的视线中。

 a189f9ad7972b3ee19a1298caea7d0248ba0821a

图1  Serverless 发展历程

对于 Serverless 带来的好处可以归结于以下几点:

·      *降低成本

·      *灵活扩容

·      *按需付费

降低成本:使用 Serverless 服务后,用户不再需要关心采购、运行、维护底层机器资源的相关工作,也不再需要对相关工作投入人力资源。特别是机器运维的成本将大幅下降。

灵活扩容:用户自己购买服务器对外提供服务时,当业务压力突然增加时,很难快速添置大量服务器来满足突增的业务压力的需要。而采用无服务器计算后平台提供商会有大量机器资源供用户动态扩容使用。

按需付费:用户自己购买服务器时,即便业务负载非常低,用户依然要负担相关资源的使用成本。极端情况当用户业务负载压力为零时,用户也要白白花费相应的成本来维持自身服务的运转。在使用无服务器计算后,当用户业务压力降低时,用户需要的资源会被自动减小,因而花费的成本也自然会降低。

总之 Serverless 让开发人员更加聚焦于自己业务的同时,更可以有效帮助企业降低业务运行过程中不必要的开销和成本。

Serverless 中非常重要的一个环节是底层相关计算资源的管理不再需要用户来关心,那么这些资源的管理由谁来完成呢?下面我们就来介绍本系列文章的主角——Bazaar。

2.     Bazaar:阿里云 Serverless 计算服务

Bazaar ([bə'zɑːr])是阿里云弹性计算团队为孵化更多的 Serverless 服务推出的基础服务。该服务旨在为终端用户和云上的各类 Serverless 产品提供底层的资源管理、交付服务。无论是终端用户还是阿里云的各类 Serverless 产品亦或是外部的Serverless服务开发商均可以借助Bazaar方便的获得需要的云计算资源。凭借弹性计算团队和容器服务团队在云计算服务领域积累的丰富经验,我们将Bazaar打造成为一款面向不同客户和业务的资源交付服务以便支撑各类无服务器计算业务对底层云计算资源管理、交付的不同诉求 。

Bazaar具备 Serverless 带来的诸多优点。如用户聚焦自身业务,简化底层资源管理,灵活的扩容方式等等。相较于弹性计算ECS,Bazaar在资源占用开销、实例启动时间等方面也着重进行了优化,并从系统整体架构上针对 Serverless 进行了深度的定制优化。

Serverless 通过平台服务商管理底层运行时环境,为用户摆脱底层基础架构运维工作提供了可能。而平台服务商为了向用户提供这样一个统一的计算平台,势必需要一个统一的底层软件运行环境。在这其中的沙箱技术就是最为核心的技术组件,其要为用户程序的运行提供一个安全且与外界隔离的环境。该环境还必须考虑到 Serverless 自身的特点,在应用部署密度,程序启动时间等方面做出相应的优化,来满足无服务器计算高并发,用户负载不稳定的需要。

由于Bazaar要兼容Docker/Kubernetes生态,并提供安全、多租户等公有云需要的特性,对于当前Serverless产品来讲,最为适合的容器技术架构依然是通过硬件虚拟化来作为Bazaar安全容器的底层技术。考虑到Serverless用户的特定场景和需求,我们在传统虚拟机上又进行了进一步的改进和优化。比如禁用了登录服务器,添加/删除用户功能,同时精简了不必要的系统服务。

图2中展示了我们在Bazaar针对 Serverless 场景在底层系统上进行的各类优化。

 35467d7555b2185ec0b8aabba98d26ba689a6d12 

图2  Bazaar底层系统优化

通过上面的各种优化,Bazaar实例的启动时间相较于此前ECS实例有了显著的提升,如图3所示。

1a9307dae9ef247171345001e98e4106b5641b48 

图3  优化前后启动时间对比

3.     展望

可以看到随着容器技术的快速发展和 Serverless 计算产品的普及,以虚拟机为代表的第一代云计算服务(IaaS)正在逐渐让位给以 Serverless 为代表的新一代云计算服务。而这一趋势对底层系统软件的开发也提出了更高的要求。新一代底层系统软件不仅要满足安全、隔离、多租户的需求,更要针对 Serverless 的特点进行整体端到端优化。相信随着 Serverless 的不断发展,会诞生更加优秀的系统来支持 Serverless,为用户提供更好的下一代云计算服务。

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
5天前
|
Cloud Native 关系型数据库 OLAP
高效易用的数据同步:阿里云瑶池 Zero-ETL服务来啦!
在大数据时代,企业有着大量分散在不同系统和平台上的业务数据。OLTP数据库不擅长复杂数据查询,不具备全局分析视角等能力,而OLAP数据仓库擅长多表join,可实现多源汇集,因此需要将TP数据库的数据同步到AP数据仓库进行分析处理。传统的ETL流程面临资源成本高、系统复杂度增加、数据实时性降低等挑战。为了解决这些问题,阿里云瑶池数据库提供了Zero-ETL服务,可以快速构建业务系统(OLTP)和数据仓库(OLAP)之间的数据同步链路,将业务系统的数据自动进行提取并加载到数据仓库,从而一站式完成数据同步和管理,实现事务处理和数据分析一体化,帮助客户专注于数据分析业务。
62 0
|
14天前
|
存储 Cloud Native 大数据
国内独家|阿里云瑶池发布ClickHouse企业版:云原生Serverless新体验
全面升级为云原生架构,支持云原生按需弹性Serverless能力,解决了长期困扰用户的集群扩展效率和平滑性问题。
国内独家|阿里云瑶池发布ClickHouse企业版:云原生Serverless新体验
|
14天前
|
NoSQL 数据管理 MongoDB
数据管理DMS产品使用合集之如何通过阿里云的数据管理服务(DMS)导出MongoDB数据
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
|
14天前
|
运维 Serverless 应用服务中间件
Serverless 应用引擎产品使用之在阿里云Serverless中函数计算FC nginx 部署上去之后放置静态页面如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
219 0
|
14天前
|
弹性计算 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,使数据库和阿里云函数计算位于同一个内网中如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
989 0
Serverless 应用引擎产品使用之在阿里函数计算中,使数据库和阿里云函数计算位于同一个内网中如何解决
|
14天前
|
运维 负载均衡 Java
Serverless 应用引擎产品使用之在阿里函数计算中,创建了个关于 stable diffusion 的函数服务,总是很卡如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
143 0
|
14天前
|
运维 监控 Serverless
Serverless 应用引擎产品使用之在使用阿里云函数计算部署网站时,网站打开不稳定如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
169 0
|
14天前
|
运维 Serverless API
Serverless 应用引擎产品使用之在阿里云函数计算中通过调用函数如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
282 10
|
14天前
|
运维 文字识别 Serverless
Serverless 应用引擎产品使用之在阿里云函数计算中,需要处理的文件大于100MB如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
132 5
|
14天前
|
运维 Serverless API
Serverless 应用引擎产品使用之在阿里云函数计算中,容器运行过程中的最大内存使用量获取如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
35 2

热门文章

最新文章

相关产品

  • 函数计算