云服务的演化历程

整个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. UDP&串口调试助手用法(5)

    note 提供安装包 基于win10开发 已通过win10测试,windows其他平台,没有测试 日志 2021-09-18 1.修复计算校验和错误的现象 2.屏蔽不计算校验和位置的REG验证(后期更 ...

  2. c++指针常量和常量指针概述

    个人理解,欢迎指正 这个简单,简单,简单(不要有心里压力:认为很难) 本文将会解决:  A.变与不变 B.判断指针常量和常量指针. C.常量指针指针常量.本文不涉及. 1.概述 A.指针: 说到底,还 ...

  3. libevent之学习文档

    1.官方文档 2.中文版 3.gitbook

  4. P4081 [USACO17DEC]Standing Out from the Herd P

    知识点: 广义 SAM 原题面 Luogu 「扯」 随便「口胡」一下居然「过」了. 比较考验「代码能力」,第一次感觉「大模拟」没有白写((( 还有这个「符号」实在是太「上头」了. 前置知识 在线构造广 ...

  5. MySQL数据操作与查询笔记 • 【第7章 连接查询】

    全部章节   >>>> 本章目录 7.1 内连接查询 7.1.1 交叉连接(笛卡尔积) 7.1.2 内连接查询概要 7.1.3 内连接案例 7.1.4 自然连接 7.2 多表连 ...

  6. 物联网大赛 - Android学习笔记(二)Andriod 应用界面编程

    学习目标: Android的程序界面和View组件 View组件和ViewGroup组件 常见的布局管理器 文本框组件TextView和EditView 按钮组件Button 和ImageButton ...

  7. 分布式链路追踪自从用了SkyWalking,睡得真香!

    本篇文章介绍链路追踪的另外一种解决方案Skywalking,文章目录如下: 什么是Skywalking? 上一篇文章介绍了分布式链路追踪的一种方式:Spring Cloud Sleuth+ZipKin ...

  8. Swoole 协程使用示例及协程优先级

    示例一: Co::set(['hook_flags'=> SWOOLE_HOOK_ALL]); Co\run(function () { go(function() { var_dump(fil ...

  9. js 关于 data.xuNum = xuNum++; 赋值写法 的探讨

    1 .源码 let xuNum = 0; let data = []; data.xuNum = xuNum++; console.log(data.xuNum) 2.打印结果 //  0 3.原因 ...

  10. Centos 7.6关闭selinux

    查看selinux状态 [root@localhost ~]# sestatus SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SE ...