快速上手 Serverless | 入门第一课-阿里云开发者社区

开发者社区> 阿里巴巴云原生小助手> 正文

快速上手 Serverless | 入门第一课

简介: 本文从云计算抛砖引玉,详解 Serverless 的典型应用场景和一些产品介绍。
+关注继续查看

一、 从云计算到 Serverless


自世界上第一台通用计算机 ENIAC (图左)诞生以来,计算机科学与技术的发展就从未停止过前进的脚步。2003年-2006年,谷歌先后发表了这三篇非常经典的论文(图右),指明了HDFS(分布式文件系统)、MapReduce(并行计算)和HBase(分布式数据库)的技术基础及未来机会,为云计算发展方向奠定了基础。


image


所以说从。ENIAC 到谷歌的3篇经典论文,计算机科学与技术的发展是在不断的前进。而到了云计算时代,可以说计算机科学与技术的发展是在飞速的前进。


云计算的概念


对于云计算的界定,学术界的和工业界有不同的理解,回顾下云计算的发展历程:

1、2006年,谷歌首席执行官在搜索引擎大会上首次提出云计算的概念;同年亚马逊将其弹性计算能力作为云服务器进行售卖,标志着云计算这种新兴商业模式正式诞生;

2、2008年,微软发布云计算平台 Windows Azure,尝试将技术和服务托管化、线上化;

3、2009年,《伯克利云计算白皮书》发表,文中明确指出云计算的定义:云计算包含互联网上的应用服务以及在数据中心提供这些服务的软硬件设施。


明确定义后,伯克利提出了关于云计算展望,同时也指出云计算所面临的10个问题,如服务的可用性,数据的丢失或者数据安全性和可审计性等。


image


二、Serverless 概念


Serverless 定义


Serverless 翻译成中文是无服务器,所谓的无服务器并非是说不需要依靠服务器等资源,而是说开发者再也不用过多考虑服务器的问题,可以更专注在产品代码上,同时计算资源也开始作为服务出现,而不是作为服务器的概念出现,Serverless是一种构建和管理基于微服务架构的完整流程,允许用户在服务部署级别而不是服务器部署级别来管理用户的应用部署。与传统架构的不同之处在于,它完全由第三方管理,由事件触发,存在于无状态(Stateless),暂存(可能只存在于一次调用的过程中)在计算容器内,Serverless 部署应用无须涉及更多的基础设施建设,就可以基本实现自动构建、部署和启动服务。


Serverless 架构

image


左边是传统意义上来说比较常见的 Web 应用的架构, 它是由客户端、服务端、数据库等元素组成。


以往做此类项目时,开发者需要在服务端做很多操作,如购买服务器、考虑购买数量、宽带、操作系统、部署在哪几个区、环境、软件等等问题。随后还需要人为对这台服务器的健康要实时去监控,不断的去感知。


而在 Serverless 架构下,开发者只需要关心我们的业务代码即可,在项目整个的开发、上线、维护过程中,用户并不需要关注服务器层面的维护,也无需为流量的波峰波谷进行运维资源的投入,这一部分将由云厂商来负责;同时在 Serverless 架构下,用户也无需为闲置资源进行额外支出。


Serverless 优点

image


Serverless 架构拥有零服务器运维和空闲时无计算成本等特点;其交付心智可以体现为将复杂留给云厂商,把便捷带给更多开发者。综上所述 Serverless 的优势可以体现在如下:


1)降本提效

云厂商为使用者提供服务器的管理和运维工作,为使用者提供数据库、对象存储等 Baas 服务,让用户将更多的注意力放在自身的业务逻辑上,提升研发效率,缩小项目的创新周期,同时 Serverless 的使用者不用更多的担心自身的服务器运维,基础设施的运维等工作,更不用为这部分有额外的费用支出,无需承担更多的运维工作成本等;Serverless 架构提供了较为完善、全面的按量付费模型,使用者只需要按照自己实际使用的资源量付费即可;Serverless 架构在这一层面有较为明确的优势。


  • 降低运维成本
  • 降低人力成本
  • 提高研发效率
  • 降低创新周期
  • 按量付费、降低支出成本


2)安全、方便、可靠


把更专业的事情交给更专业的人去做,Serverless 架构将更多服务器运维、安全相关的事情交给云厂商来做,大规模提升项目整体的安全性;同时,Serverless 架构明显比其它架构更简单,因为更多的 Baas 服务都是云厂商提供的,使用者将会管理更少的组件,这意味着 Serverless 的使用者可以更简单更方便的管理项目;同时 Serverless 架构拥有着弹性能力,即自动伸缩的能力,该能力可以让项目在流量增加的时候,自动进行扩容,在流量降低的时候,自动进行缩容,进而保证整个业务的安全、稳定。专业团队为用户保障安全,保障性能,这使得 Serverless 架构:


  • 安全风险更低
  • 资源开销更小
  • 符合“绿色”计算思想
  • 更加方便管理
  • 弹性伸缩,服务更可靠


总体来说,托管给云厂商之后呢,不仅可以大规模的提升项目整体的安全性和稳定性,Serverless 架构也是明显比其他架构更为简单的。


面临的挑战


Serverless架构虽然出现多年但是真正步入“元年”并得以快速发展的时间其实很短暂;因此Serverless架构拥虽有诸多优点,但是也面临一些困难和挑战,包括但不限于冷启动问题严重、开发工具不完善、厂商锁定等现象。但是近些年 Serverless 架构热度持续上升,人们对它寄予厚望,各个厂商也加大投入,相信目前的问题都是暂时的,Serverless 架构会朝着更好用、更易用的方向不断演进。


Serverless 架构为使用者提供全新的编程范式的同时,当用户在享受 Serverless 带来的第一波技术红利的时候, Serverless 的缺点也逐渐地暴露了出来,例如函数的冷启动问题,就是如今颇为严峻且备受关注的问题。由于 Serverless 架构具有弹性伸缩的能力, Serverless 服务的供应商会根据用户服务的流量波动进行实例的增加或缩减,其示意图如图所示。


image


以阿里云函数计算为例,当系统接收到第一个触发函数的事件时,它将启动一个容器来运行代码。如果此时收到了新的事件,而第一个容器仍在处理上一个事件,平台将启动第二个代码实例来处理第二个事件, Serverless 架构的这种自动的零管理水平缩放,将持续到有足够的代码实例来处理所有的工作负载为止。当然,不仅仅是并发情况下会比较容易触发函数冷启动,在函数的前后两次触发时间间隔超过了实例释放时间的阈值时,也会触发函数的冷启动,如下图所示。


image


然而这里就涉及一个问题,当新的请求或者说是事件到来时,在广义上可能出现以下两种情况:


  1. 存在空闲且可以直接复用的实例:热启动。
  2. 不存在空闲且可以直接复用的实例:冷启动。


在本地执行一个函数,通常情况下是环境都已经准备妥当,每次执行只需要执行函数对应的方法即可,但是 Serverless 架构下并不是,本地与 FaaS 的函数调用区别示意图如图所示。


image


三、典型应用场景


Serverless 架构自提出到现在经过若干年的发展,已经在很多领域中有着非常多的最佳实践,CNCF 总结出一些 Serverless 架构所适合的场景。

image


实时文件处理


视频应用、社交应用等场景下,用户上传的图片、音视频往往总量大、频率高,对处理系统的实时性和并发能力都有较高的要求。例如,对于用户上传的图片,可以使用多个函数对其分别处理,包括图片的压缩、格式转换等,以满足不同场景下的需求。


image

数据ETL处理


通常要对大数据进行处理,需要搭建 Hadoop 或者 Spark 等相关大数据的框架,同时要有一个处理数据的集群。通过 Serverless 技术,只需要将获得到的数据不断的存储到对象存储,并且通过对象存储相关触发器触发数据拆分函数进行相关数据或者任务的拆分,然后再调用相关处理函数,处理完成之后,存储到云数据库中。


函数计算近乎无限扩容的能力可以使用户轻松地进行大容量数据的计算。利用Serverless架构可以对源数据并发执行多个 mapper 和 reducer 函数,在短时间内完成工作,整个流程可以简化为以下图中所示;相比传统工作方式,使用 Serverless 架构更能避免资源的闲置浪费,从而节省成本。

image

实时数据处理


通过 Serverless 架构所支持的丰富的事件源,通过事件触发机制,可以通过几行代码和简单的配置对数据进行实时处理,例如:对对象存储压缩包进行解压、对日志或数据库中的数据进行清洗、对 MNS 消息进行自定义消费等。


image

机器学习(AI推理预测)


在AI模型完成训练后,对外提供推理服务时,可以使用 Serverless 架构,通过将数据模型包装在调用函数中,在实际用户请求到达时再运行代码。相对于传统的推理预测,这样做的好处是无论是函数模块还是后端的 GPU 服务器,以及对接的其他相关的机器学习服务,都是可以进行按量付费以及自动伸缩,从而保证性能的同时也确保了服务的稳定。

image

Web 应用/移动应用后端


Serverless 架构和云厂商所提供的其他云产品进行结合,开发者能够构建可弹性扩展的移动或 Web 应用程序,轻松创建丰富的无服务器后端,而且这些程序可在多个数据中心高可用运行,无需在可扩展性、备份冗余方面执行任何管理工作。


image

音视频转码


在视频应用、社交应用等场景下,用户会上传一些视频,通常上传的视频会进行一些转码,包括转换为不同的清晰度。 Serverless 技术与对象存储相关产品组合后,可利用对象存储相关触发器,即上传者将视频上传到对象存储中,触发 Serverless 架构的计算平台(FaaS 平台)对其进行处理,处理之后将其重新存储到对象存储中,这个时候其他用户就可以选择编码后的视频进行播放,还可以选择不同的清晰度,如图所示。

image


综上所述, Serverless 架构的典型应用场景更多是由 Serverless 架构的特点决定的。当然,随着时间的不断推移, Serverless 架构也在不断演进,特点会更加突出,劣势会被弥补。


四、Serverless 产品介绍


公有云产品


自 Serverless 概念被提出,其从不为人知到引人注目经历了数年,Serverless 架构也在飞速发展,在 Serverless 架构中,计算机服务通常由 Faas 平台提供。AWS Lanmbda、Google Cloud Functions、阿里云函数计算等都是有代表性的工业化产品。


image

CNCF 列出的 Faas 平台


阿里云 Serverless


Serverless 架构对底层的技术基础要求很高,而从图中可以看出阿里云关于 Serverless 架构的整体形态是十分完善的,并且一直在自建自研的路上不断精进。阿里云 Serverless 产品在阿里巴巴经济体内部已经实现落地,在淘宝、支付宝、闲鱼、飞猪、钉钉,包括在语雀都有很好的体现。


image


函数计算是国内生态最完整、功能最丰富的 Serverless 产品,开发者一步上云、一键 Serverless 化将成为现实。上图是阿里云 Serverless 从产品维度的一些分析,下图则表达了 Serverless 从功能或者架构,底层基础设施,和在计算层面所展现出来的典型业务能力。例如说弹性伸缩、负载均衡、流量控制、高可用部署、版本灰度故障恢复等。像在运行时的容器镜像服务,阿里云在去年便已推出,随后AWS 、腾讯等,也都相继推出容器镜像。图中诠释了阿里云 Serverless 是如何通过底层,逐渐的向上层建设,让开发者可以更简单、更方便的使用 Serverless 的全过程。

image


开源产品


不仅仅在工业界有诸多厂商不断为 Serverless 架构努力,在开源领域也有诸多优秀的 Serverless 项目。包括 OpenWhisk、Fission、Knative 以及 Kubeless 等在内的众多优秀的开源 FaaS 平台都已得到 CNCF 的认可。


image



讲师简介:刘宇(江昱)国防科技大学电子信息专业在读博士,阿里云 Serverless 产品经理,阿里云 Serverless 云布道师,CIO 学院特聘讲师。

本文整理自【ServerlessLive 系列直播】9 月 22 日场

直播回放链接:https://developer.aliyun.com/learning/topic/serverless?

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

相关文章
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
2842 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4479 0
从零入门 Serverless | 教你 7 步快速构建 GitLab 持续集成环境
本节课程为您介绍如何基于阿里云 Serverless Kubernetes(简称 ASK)服务,来快速构建 GitLab 持续集成环境。
5449 0
快速上手 Serverless | 入门第一课
本文从云计算抛砖引玉,详解 Serverless 的典型应用场景和一些产品介绍。
170 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
7751 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
9425 0
0基础快速入门运维-EDAS Serverless(FAAS) 产品评测
    【阿里云技术共创】因热爱,而编码 一、前言:          前段时间,在做大企业采购寻源业务的整体上云项目的过程中,对普通企业上云的技术要点有了一些初步的认知,同时,对VPC,CSB,EDAS等优秀的产品印象深刻。在帮客户搭建VPC系统及运维的过程中,对EDAS也有着自己
1642 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
16820 0
1218
文章
0
问答
来源圈子
更多
专注Serverless、微服务、函数计算等
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载