Serverless 一度被追捧为云计算的未来。Gartner 发布报告称,2020 年全球将有 20% 的企业部署 Serverless 架构。

先让我们回顾一下,滚滚历史洪流中,IT 架构是如何演进的?

早期,公司要买机器和带宽,建机房,以及养着一票设备运维人员。早期的云服务商,于是就提供物理机托管服务,来释放客户对硬件的运维。后来,虚拟化的发展使得云服务商开始提供云主机的租用服务,客户通过云上的 IaaS 系统直接管理虚拟机资源。云主机在操作系统层面仍然需要大量的安全补丁和运维工作。

接着,随着容器技术的不断发展和普及,云服务商提供标准的运行环境,客户直接在 PaaS 平台运行应用容器,维护成本进一步得到降低。在大规模的集群中,用户需要考虑容器调度和管理的问题,容器之间网络打通等问题也都是容器平台的基础。

现在,无服务 Serverless 则希望再进一步减少用户运维成本,提供标准的弹性能力、负载均衡方案,应用发布策略等,用户已无需关心服务架构和虚拟机,应用开发者可以更加专注于应用业务逻辑。

01 “无服务器” 真的不需要服务器吗?

所谓 “无服务器”,并不是不再需要服务器硬件。而是用户无须关心底层服务器的状态、资源(比如 CPU、内存、磁盘及网络)及数量。软件所需的资源由底层的云平台动态提供。Serverless 代表的是用户不要关心运营维护问题,解放研发人员,把部署、流量和弹性相关的问题都交给自动化运维。

Serverless 不是具体的一个编程框架,也不是一个类库或者工具。简单来说,Serverless 是一种软件系统架构的思想方法。

在基于云的环境中,Serverless 环境中部署的应用,一般通过外部事件或触发器(比如 HTTP 请求)触发后才真正执行。所以它还具有按使用付费的特点,降低了成本。目不单单云上有 Serverless,在本地私有化环境中,也有许多商业和开源的选择,可以提供不同形式的本地无服务器服务。

02 Serverless 的优势

  • 减少成本:低运维管理,无须关注支撑应用服务底层运行环境的运维
  • 快速创新:业务部署和研发的周期缩短了,可以更聚焦逻辑开发
  • 按需使用:低成本省开支,即开即用
  • 灵活弹性:业务可以根据配置的条件灵活调配资源

03 什么场景适合Serverless

现在 Serverless 多在哪些场景下落地呢?常见以下几种:

  • 各类 Web 后端服务。特别是移动互联网的后端,比如小程序等利用率低的长尾应用。
  • 实时数据流处理:视频转码和图片转格式、处理任务,日志分析压缩
  • 人工智能场景:数据传输和分析
  • IoT 后端服务:告警短信推送、设备状态等
  • CI/CD 场景

如下是一个调查中,关于 Serverless 落地的应用场景的比例:

比例

场景

32%

Web 和 API 服务器

21%

数据处理:比如批量 ETL

17%

集成第三方服务

16%

内部工具链

8%

聊天机器人

6%

IoT 物联网

场景一:人工智能场景(数据传输及分析)

在工业互联网(IoT)、汽车行业(车联网)、金融领域中,当终端设备在进行相互通信时,会产生大量数据。因此,在边缘终端采集数据后,传输到 Serverless 云端进行训练,得出训练结果后进行返回到边缘节点,边缘节点会给训练后的结果,进行快速响应。比如企业的人脸识别系统和设备。摄像头既可以收集人脸识别数据,同时可以根据训练好的模型进行人脸识别判断。收集信息后,摄像头上传人脸图片到 DX- Serverless 服务器上进行训练。服务器训练后得出训练模型,之后同步最新的模型到终端摄像头上,那么边缘摄像头可自动识别新增加的员工,并自动开门。还有一些访客场景,当朋友、面试者来访时,人事可以在访客来之前把访客照片上传到服务器,这样的话访客可以被自动识别,方便地进入访客区域或者指定面试会议室。

如上图所示,各种终端设备负载信息和数据的收集并上传到云端,这些数据会被放入到云端的人工智能训练任务队列中,由 Serverless 服务训练得出训练模型,最后将训练模型分发到终端上更精确的进行智能判断和分析。

场景二:实时数据流处理(视频转码或图片转格式)

在大文件上传和视频上传场景下,网站都需要实时创建缩略图,转换视频成为各种格式方便不同平台播放,建立文件索引方便搜索查询。在国内,通常还会用审核以及鉴定视频内容等操作。越来越多的网站有 AI 训练会对视频进行分类和自动添加标签等。比如用户上传一个视频,网站视频转码需要进行 1080p 转码、720p 转码、 480p 转码、音频转码、封面截图(通常需要 2-3 个尺寸分别用于不同尺寸的缩略图列表,以及初始画面等)。以上操作都是非常适合使用无服务来进行部署,因为这些场景通常都是在用户上传文件后才需要进行的,同时转码等操作可以有一定的时延,此外,这些场景的高峰流量和日常流量都会有很大差距。

04 私有化 Serverless部署的意义

众多公有云已经提供了 Serverless 的功能。为什么很多企业还在规划在内部部署 Serverless ?

  • 避免供应商锁定:常被人担忧的如 AWS 的 Lambda 对代码耦合性所带来的云迁移成本。其实也需要考虑云厂商提供的“易用”的“基础设施”(API 网关、事件触发器、云存储)所带来的“架构锁定”和耦合。还有“数据绑定”:云上比如数据库服务、认证服务、支付服务等,也可能会把用户的业务数据、用户数据、支付数据绑定在云厂商之上。
  • 提高基础架构效率:在本地环境下,可以利用 VM 或者容器/Kubernetes 的方式,进行业务复用,提供底层的物理机利用率。毕竟 Serverless “按需启动”的特点,有时可能造成机器“闲时闲死”的浪费状态。
  • 降低安全风险:对于用户的敏感数据,基于云的解决方案总不是首选。并且在多租户的云环境下,任何可能的漏洞和安全风险,都会让数据有泄漏的可能。
  • 架构可控度:公有云具备节约管理成本的优点,但高级用户自己对技术架构的控制力却被大大弱化。
  • 整合性:对于某些业务,其周围的配合模块都是在私有化部署,这时,单单把 Serverless 的部分放到公有云,反而增加整合的难度。另外,在国内 IT 环境下,私有化环境对传统应用的改造也更容易推行下去。
  • 成本:很多企业在业务初期使用公有云,但是在业务发展中,逐步发现公有云成本慢慢不再是最优。即使在公有云,部署的成本也根据应用程序的复杂性和不同特点而有所不同。

相比之下,在私有环境中构建 Serverless 平台就没有那么多顾虑。归功于成熟度很高的容器技术和容器云平台技术,目前已经能够在私有云环境中实现 Serverless 了。

05 基于容器的 Serverless的好处

目前公有云上主流的 Serverless/FaaS 框架,如 AWS Lambda、IBM OpenWhisk、Iron.io、阿里云函数计算分析来看,其底层的也是多采用容器或类容器的技术来实现的。

以函数为粒度的 Serverless(FaaS)看似非常美好,但是这种函数计算不能解决企业的全部问题。它要求业务以函数为粒度进行拆分、函数之间只通过接口通讯,并且要求高度完成无状态化。对于复杂的业务系统来说,微服务改造、容器化改造都才刚完成,到达函数化改造还道路漫长。而且即便完成了函数化改造,现有的 FaaS 平台对大规模函数协作、编排和管理技术也还不够成熟,很难完全投入生产。

正在容器化道路上的用户,是否需要出门右转、另起炉灶,再一起痛苦地对业务做函数化改造么?能否利用容器的标准、Kubernetes 的编排优势,同时也能 Serverless 带来的低成本和高弹性福利呢?其实这两者并不矛盾。从 PaaS 到 FaaS ,是否需要对应用进行改造?开发语言是否需要变化?移植上 FaaS 成本会不会很大?往往这些是大家会比较顾虑的点。

如 DaoCloud Serverless 平台,就是基于容器的 Serverless。容器性的工作负载不只是 Function, 支持任何编程语言。用户仍然是交付自己熟悉的标准交付件-镜像。

用容器实现的 Serverless,用户可以有如下的好处:

  • 支持任何语言,任何库,任何二进制文件
  • 通过镜像进行封装部署,解决平台锁定问题云原生开发体验,应用容器化部署,统一开发体验
  • 不同于普通的 FaaS,容器化后可以适应各种无服务情况。容器化意味着 可移植,Kubernetes 编排的标准化
  • 日志记录及监控功能
  • 可观测性,丰富的监控指标

06 DX Serverless 发布

目前基于容器的 DX(Daocloud Digital-X) Serverless 已经随着 DCE 4.0 进行发布。并且 DX Serverless 包含有如下特性:

便捷部署

如上文所述,Serverless 旨在帮助开发人员无需关心底层服务器,只需专注于业务应用开发及构建,提供无运维、无服务器体验。DX Serverless 提供简单的命令行和图形界面快速部署并管理服务,进一步提升开发者体验,降低部署管理成本。

自动扩缩容

在 Web 后端服务对外提供访问时,需要应对偶发大流量访问场景,但在 PaaS 平台上,弹性伸缩规则需要手动配置,并且配置规则较复杂。DX Serverless 服务可根据流量自动扩缩容,无需手动配置策略及干预,当访问流量激增时,快速扩容;当流量为 0 时,支持自动将容器数量缩减为 0 ,极大节省资源。

流量切分

业务应用在发布新版本时,需要规避新业务应用版本不可用带来的风险,需要在不停用老版本的前提下,部署新版本并进行测试,当测试无风险后,切换全部流量。DX Serverless 天然具备流量切分能力,可对同一 Serverless 服务设置不同的流量比例,操作便捷易用。并且可以结合指标监控进行版本流量监控。

计量能力

DX Serverless 为您提供计费的计量接口,可基于计量数据进行收费。在 PaaS 到 FaaS 转变过程中,往往客户会有所考虑:1 )移植的成本和代价 ; 2 )是否上了 FaaS 平台后会存在平台锁定情况。目前 DX Serverless 实现云原生化:

  1. 应用容器化实现,统一云原生平台开发体验,适配各种无服务化场景。
  2. 搭建在 DaoCloud 云原生 PaaS 平台上(DCE)
  3. 支持 Kubernetes 标准 OpenAPI
  4. 无需管理及配置 HPA,实现自动扩缩容
  5. 无需管理及配置 Istio,实现流量切分

应用无服务器化后无需担心应用改造和移植成本,以及平台锁定问题。

07 Serverless 会终结Kubernetes 吗?

以前常有用户问,想享受 Kubernetes 的技术红利,但是苦恼于 Kubernetes 的学习成本:容器化、部署 YAML、配置负载均衡和灰度发布策略、弹性策略,健康检查容器化、部署 YAML、配置负载均衡和灰度发布策略、弹性策略,健康检查. 对于一个应用开发来说,这些问题看似和应用开发本身毫不相关,他们不得不去学习 Kubernetes 并去探索应用的部署最佳实践。应用开发者一定要成为 Kubernetes 专家才能在 Kubernetes 上部署应用吗?当然不是,Serverless 可以弥补这里的差距。应用开发提供应用容器,完成业务逻辑;Serverless 提供发布和弹性策略配置,以及标准的健康检查。

但是 Serverless 能够取代 Kubernetes 吗?答案又是否定的,无服务框架依然需要一个调度平台,而 Kubernetes 无疑是最佳选择。Serverless 并不会取代 Kubernetes,而是站在 Kubernetes 肩膀上, 为应用提供更简洁的部署方式和自动化运维能力。由于 Serverless 技术目前还处于起步阶段,就像目前 DX Serverless 平台是基于 Kubernetes 的实现的。技术上是延续的,一脉相承。

  • 目前 Serverless 更适合面向简单场景的开放,简单应用的上云在 Serverless 场景会更加方便,甚至可以做到 0 成本,无需改造的地步。Kubernetes 在私有化部署中,通过更多灵活性的强大的功能,带来更多的可能性。
  • 对于没有 Kubernetes 基础的用户来说,Serverless 可以帮助你成为应用运维专家,为您的应用提供天然的流量管理和弹性能力。Serverless 的目标是解放开发和运维复杂度,把流量和弹性相关的问题都交给自动化运维。直接使用 Kubernetes 的研发需要了解和学习相当一部分的运维知识。
  • 在复杂的业务逻辑中,架构师需要借助 Serverless 的事件驱动框架设计更加云原生的应用,对于现有复杂架构的应用的改造仍然是难点。

Serverless 确实是未来几年的技术趋势,它所带来的价值是开发者能够更关注业务逻辑本身,而不是过多的被底层资源和运维工作所困扰。但 Serverless 的前路也不会一路顺风。快跟着 DaoCloud 一起开拓探索吧。

Less is More—Serverless相关推荐

  1. 一键部署dns服务_OpenShift : 通往云原生、DevOps、微服务和Serverless的大门

    新书速递 查尔斯·狄更斯的<双城记>中有句耳熟能详的名言:"这是一个最好的时代,也是一个最坏的时代."作为技术从业者,在这个数字化浪潮和技术变革接连发生的时代,我对这句 ...

  2. 二:serverless网站数据库操作

    操作数据库API文档 第一篇,搭建一套免费的serverless网站 一,创建集合,进入控制台 登录腾讯云后台 打开云开发控制台 可以新建集合,新建集合后点击集合名称即可批量导入导出数据库集合的数据, ...

  3. 一:搭建一套免费的serverless网站

    因为公司需求,需要快速搭建一个公司内部能够访问的资源查看管理的 PC网站,因为没有服务器,没有后端开发,又要快速上线使用,那么 serverless 就成了我的首选方案,下面从零开始搭建. 步骤一. ...

  4. 现在,Serverless 真的已经成熟了吗?

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者 | Justin Etheredge 策划 | Ti ...

  5. 图解 Serverless!秒懂!

    作者 | 江昱(阿里云 Serverless 产品经理) 抛砖引玉:从云计算到 Serverless 2009 年,UC Berkeley发表了:Above the Clouds: A Berkele ...

  6. Serverless 下的微服务实践

    作者 | 弈川 微服务架构介绍 微服务架构诞生背景 在互联网早期即 Web 1.0 的时代,当时流行的是单体应用,研发团队比较小,主要是外部网页,然后新闻门户等:到了新世纪的互联网时期 Web 2.0 ...

  7. Serverless 在大厂都怎么用?

    点击可观看精彩演讲视频 主持嘉宾: 中国信息通信研究院 云计算部副主任.腾讯云TVP,陈屹力 圆桌嘉宾: - Amazon Web Services 首席开发者布道师,费良宏 - 阿里集团 Serve ...

  8. Serverless:微服务架构的终极模式(文末赠书)

    微服务的生态和实践已经比较成熟,其设计方法.开发框架.CI/CD工具.基础设施管理工具等,都可以帮助企业顺利实施微服务.然而,微服务远没有达到完美,它在架构.开发.基础设施方面仍然面临新的挑战. 微服 ...

  9. 微服务和 Serverless 如何强强联合?

    导语 |  微服务与 Serverless 被不少开发者称为"天作之合",在当前的微服务体系中,Serverless 的定位是什么?Serverless 在微服务分布式应用中又是如 ...

  10. Serverless 时代下大规模微服务应用运维的最佳实践

    微服务架构的优点和痛点 Aliware 1 微服务架构的诞生背景 回到互联网早期时代,也就是web1.0时代,当时主要是一些门户网站,单体应用是当时的主流应用,研发团队相对较小,这时候的挑战在于技术的 ...

最新文章

  1. Toast 自定义位置和带图
  2. ubuntu MNN编译安装
  3. ArcGis For Flex 之 QueryTask地理坐标展现【原创】
  4. Intellij Idea非常6的10个姿势!
  5. SQL注入攻击再度肆虐殃及大量网站
  6. 程序员40岁之后怎么办
  7. 在python中下列代码的运行结果是print abc_python与数学
  8. kvm虚拟机不通网关_linux ssh 虚拟机下CentOS7开启SSH连接
  9. Opencv--图像处理之一阶和二阶偏导数
  10. “不怕的人的面前才有路”!一名双非硕士的985攻博历程
  11. SprinMVC解决URL多个参数
  12. w ndows10怎么没体验指数,Win10没有“Windows体验指数”功能怎么进行系统评分【图文】...
  13. 【MATLAB统计分析与应用100例】案例010:matlab调用normrnd函数生成正态分布随机数
  14. Linux内核配置和编译过程详解
  15. 字体图标的设置(阿里巴巴矢量图库的使用)
  16. C++ Primer 第五版 课后章节练习答案 第九章
  17. BZOJ 3717: [PA2014]Pakowanie 状压dp
  18. vue2.0模板的三种写法
  19. 随机权重的PSO算法
  20. 【读者来信】你所认识的世界不一定是真实的

热门文章

  1. 市场调研-全球与中国K型热电偶市场现状及未来发展趋势
  2. 下载 DropBox 离线安装包的方法
  3. 【区块链 | DAPP】Dapp应该怎么开发?分享一篇Dapp开发的逻辑(分享) 更新中~
  4. springsecurity03-springsecurity oauth2实现单点登录之-资源服务器(Resource Service)
  5. 转贴:Friends 第一季英文学习整理:102
  6. hadoop的概念及特点
  7. assetbundle能不能删除_关于AssetBundle的卸载
  8. 智能电子指路牌、智慧路牌、智能指路牌、导航立柱、多功能指示牌有哪些功能?
  9. 避开QQ聊天时遭受攻击的安全技巧(转)
  10. 仿美团app产品列表,用weui(bootstrap可去掉)写成