云服务的演化历程

整个it系统服务的搭建,随着时间有多个层级的演化。从最早的内部部署(On-premises) 到基于云的Iaas,Paas,Saas,Baas, Faas。服务的构建对开发者越来友好,也更低成本。

内部部署(On-premises)

最早的IT系统在部署时,其依赖的所有环节,皆需IT企业自己搞定,成本和门槛都很高。服务器要放置在机房管理,服务器上要装系统,机房需要打通网络,磁盘不够要买硬盘,此外还要考虑多机房灾备等等。这些对大企业来说尚且有难度的种种,对创新企业更是难上加难。

于是以亚马逊AWS为代表的云供应商诞生了,早期他们所提供的Iaas能够很好的解决上述诸多不便

基础设施即服务(Infrastructure as a Service)

云服务商管理机房、服务器、磁盘、网络接入这些硬件问题。而在其上,使用虚拟化的方式供IT公司自主选择资源大小、性能, 自此基础设施物理的繁杂工作被屏蔽。软件开发公司只需要安装操作系统、各种中间件(比如MQ,RPC框架、数据库等),然后构建应用部署,并提供服务

平台即服务 (Platform as a service)

当系统以微服务构建时,服务调用该怎么注册发现、数据量太大时,怎么分布式的存储。日志怎么收集查询,整个系统该如何监控等等依然需要强大的Devops团队,进行运维。为了解决这个问题,云供应商在基于Iaas的基础上提供了Paas平台,它们以平台化的方式提供存储、监控、服务治理等服务,使得软件供应商,只需要专注于具体的应用开发和部署即可。

就拿数据存储来说,阿里有RDS,腾讯有TDSQL。这些Paas级的平台,提供了很好的可靠性和扩展性,使得初创公司可以专注于业务开发交付,而不是一定要请个DBA

软件即服务 (Software as a service)

前三者都是针对的软件供应商本身的开发运维方式。而Saas只的是软件开发好后的服务提供方式。比如一个CRM系统,

  • 本地化部署, 客户出于对数据安全的需求,需要将CRM部署在其公司内部,这可能就牵扯到On-premises模式,需要客户方的IT小组搞定相关的依赖环境
  • 私有云部署,客户购买软件后,将CRM部署在自己私有云,或者在公有云上买相关的Iaas、Paas服务,将CRM系统部署其上。总之这套系统是某个客户独享的
  • Saas话部署,CRM软件供应商,开发初期,就将CRM以租户的概念进行设计研发。这样后期使用CRM系统的客户,只需要付费开通一个账号,即可享有整个系统服务。

所以Saas不是一种开发部署方式,而是一种系统服务提供方式,他不牵扯开发运维的便捷性,而取决于客户需要什么样的软件服务形式。软件供应商开发的Saas服务,完全也可以使用内部部署的方式,暴露到公网。或者使用共有与的Iaas,Paas平台。

Serverless是什么

无服务器计算 (Serverless computing) 。同Iaas、Paas一样,更多的是针对软件供应商在软件开发运维过程中的进一步的封装抽象,降低开发门槛,使其更加拒绝到业务交付

基于函数和事件更细粒度

传统的微服务系统,最小的开发粒度是一个微服务。而 serverless引入的概念是Function,可以理解为一个功能。比如一个用户中心微服务,就可以拆解为用户注册Function,用户登录Function ,用户查询Function等。

这些功能Function之间以事件进行通信。Function的运行、Event的转发都是有云供应商来管理控制

冷启动、按需付费

传统方式构建的微服务系统,无法动态扩容,比如针对双十一大促,一个电商公司可能需要提前基于预估的流量进行资源申请,系统扩容。预估不可能精确,估少了,流量一大,系统容易崩掉。估多了,资源要真金白银的收费,对公司也是一种损失。

Function的功能够单一,够精简使得云供应商的serverles可以按需冷启动部署Function。软件开发人员,可以按需付费。

无服务器和运维

以微服务方式开发系统,我们需要关注服务要部署几台容器。要基于运维时刻关注系统吞吐量,以便在遇到系统瓶颈时进行系统扩容。而使用 Serverless,开发人员再也不用关注服务器和运维这两件事, Serverless云供应商来自动化解决

参考资料

#executive-summary-summing-up-saas-vs-paas-vs-iaas

https://serverless-stack.com/chapters/zh/what-is-serverless.html

https://aws.amazon.com/cn/blogs/china/iaas-faas-serverless/

Serverless计算的更多相关文章

  1. 利用Azure Functions和k8s构建Serverless计算平台

    题记:昨晚在一个技术社区直播分享了"利用Azure Functions和k8s构建Serverless计算平台"这一话题.整个分享分为4个部分:Serverless概念的介绍.Az ...

  2. 从函数计算架构看 Serverless 的演进与思考

    作者 | 杨皓然  阿里巴巴高级技术专家 导读:云计算之所以能够成为 DT 时代颠覆性力量,是因为其本质是打破传统架构模式.降低成本并简化体系结构,用全新的思维更好的满足了用户需求.而无服务器计算(S ...

  3. 函数计算: 让小程序开发进入 Serverless 时代

    点击下载<不一样的 双11 技术:阿里巴巴经济体云原生实践> 本文节选自<不一样的 双11 技术:阿里巴巴经济体云原生实践>一书,点击上方图片即可下载! 作者 | 吴天龙(木吴 ...

  4. Serverless的概念&定义-无服务计算详解

    过去几年间,Serverless 发展迅猛,与其相伴的还有从小程序.移动端等到前后端一体化的演进与实践,也正因如此,从云计算到前端,众多开发者都极为关注 Serverless到底是什么? 在国内,Se ...

  5. 独家对话阿里云函数计算负责人不瞋:你所不知道的 Serverless

    作者 | 杨丽 出品 | 雷锋网产业组 "Serverless 其实离我们并没有那么遥远". 如果你是一名互联网研发人员,那么极有可能了解并应用过 Serverless 这套技术体 ...

  6. 阿里云函数计算发布新功能,支持容器镜像,加速应用 Serverless 进程

    我们先通过一段视频来看看函数计算和容器相结合后,在视频转码场景下的优秀表现.点击观看视频 >> FaaS 的门槛 Serverless 形态的云服务帮助开发者承担了大量复杂的扩缩容.运维. ...

  7. 发评测赢好礼 | Serverless 函数计算征集令

    随着云计算发展,云原生热度攀升,Serverless 架构崭露头角且发展势头迅猛.不仅被更多开发者所关注,市场占有率也逐年提高.阿里云函数计算(Function Compute)是一个事件驱动的全托管 ...

  8. 从函数计算到 Serverless 架构

    前言 随着 Serverless 架构的不断发展,各云厂商和开源社区都已经在布局 Serverless 领域,一方面表现在云厂商推出传统服务/业务的 Serverless 化版本,或者 Serverl ...

  9. 热度3年猛增20倍,Serverless&云开发的技术架构全解析

    『 作为一个不断发展的新兴技术, Serverless 热度的制高点已然到来.』 或许,Google Trends 所显示的 3 年猛增 20 倍的" Serverless " 搜 ...

随机推荐

  1. 【九度OJ】题目1173:查找 解题报告

    [九度OJ]题目1173:查找 解题报告 标签(空格分隔): 九度OJ [LeetCode] http://ac.jobdu.com/problem.php?pid=1173 题目描述: 输入数组长度 ...

  2. 【LeetCode】67. Add Binary 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 BigInteger类 模拟加法 日期 题目地址:h ...

  3. 【LeetCode】363. Max Sum of Rectangle No Larger Than K 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/max-sum- ...

  4. spoj-SUBSUMS - Subset Sums

    SUBSUMS - Subset Sums Given a sequence of N (1 ≤ N ≤ 34) numbers S1, ..., SN (-20,000,000 ≤ Si ≤ 20, ...

  5. 【C++】关于new分配空间

    1如果不使用new,则在函数结束时内存被回收,指针变成野指针 #include <iostream> using namespace std; struct Node { int val; ...

  6. Ranger-Sqoop2插件实现详解

    1.组件和插件介绍 1.1.Ranger介绍 Apache Ranger能够监控和管理整个Hadoop平台的综合数据安全, 目前作为Apache Top Level Project(TLP顶级项目), ...

  7. Kafka集群安装Version2.10

    Kafka集群安装,基于版本2.10, 使用kafka_2.10-0.10.1.0.tgz安装包. 1.安装规划 Storm集群模式,安装到下面三台机器 IP Hostname 10.43.159.2 ...

  8. .net core获取本地Ip地址的方法

    笔记: /// <summary> /// 获取本地Ip地址 /// </summary> /// <returns></returns> public ...

  9. 【优雅代码】07-spring下的优秀工具类

    [优雅代码]07-spring下的优秀工具类 欢迎关注b站账号/公众号[六边形战士夏宁],一个要把各项指标拉满的男人.该文章已在github目录收录. 屏幕前的大帅比和大漂亮如果有帮助到你的话请顺手点 ...

  10. 利用pyinstaller给工程打包生成python可执行文件

    step1.下载pyinstaller: step2.将pyinstaller的路径加入系统环境变量PATH中:(关键) step3.进入工程的根目录下(即可执行文件.py)所在目录下,cmd,输入命 ...