解读Serverless架构的前世今生

一、Serverless简介

Serverless架构的出现,带来了跨越式的变革。Serverless下主机管理、操作系统管理、基础软件的部署运维、资源分配和扩缩容能力全部由云厂商提供,把计算能力做成像水电煤一样的公共服务,这就意味着基于Serverless服务构建应用,开发者只需要专注在产品代码上,而无需管理和操作云端服务运行环境,计算资源从过去购买“服务器”转向购买对应的“服务”。

Serverless = Faas (Function as a service) + Baas (Backend as a service)

Serverless处理模型:

Serverless的典型工作流程:

二、Serverless开发模式

Serverless真正做到了部署应用无需涉及基础设施的建设,自动构建、部署和启动服务。以大数据应用开发举例:

在传统开发流程中,我们需要先根据大数据实际应用从采集,存储,清洗,关联,到分析挖掘全链路所涉及的组件列表,完成后端大数据平台一系列组件的安装部署,再等到大数据应用完成后,进行应用功能调试、应用+平台性能调优,最终测试、上线后,还需要大数据平台运维工程师对整个大数据平台进行维护。整个过程涉及多个角色,而本身大数据平台的运维和调优具备一定的技术门槛,调优效果完全取决于自有员工的能力,而一个好的调优人员,就像一个好的数据库DBA一样,需要长期项目实践积累,属于关键稀缺人才。

基于Serverless,所有事情变得非常简单了,云厂商以服务的形式对外提供大数据组件能力,以往复杂的平台搭建过程得到完全解放,只需要写完大数据应用程序后部署到Serverless服务即可,后续也不需要关心任何服务器以及大数据平台组件的运维、调优操作。云厂商在对外提供服务的同时,背后都有一个完备的团队7*24提供专业的支撑。因此只需要大数据应用开发工程师即可完成所有工作。当然,如果具备一定的大数据平台能力,对大数据应用侧的性能调优也是非常有利的,往往可以事半功倍。

三、Serverless带来的价值

1、降低运营复杂度

Serverless架构使软件应用和服务器实现了解耦,服务器不再是用户开发和运营应用的焦点。在应用上线前,用户无须再提前规划服务器的数量和规格。在运维过程中,用户无须再持续监控和维护具体服务器的状态,只需要关心应用的整体状态。应用运营的整体复杂度下降,用户的关注点可以更多地放在软件应用的体验、改进以及其他能带来更高业务价值的地方。

2、降低运营成本

服务器不再是用户关注的受管资源,运营的复杂度下降,应用运营所需要投入的时间和人力大大降低。在最好的情况下,可以做到少数几个应用管理员即可管理一个处理海量请求的应用系统。

3、缩短产品的上市时间

在Serverless架构下,应用的功能被解构成若干个细颗粒度的无状态函数,功能与功能之间的边界变得更加清晰,功能模块之间的耦合度大大减小。这使得软件应用的开发效率更高,应用开发的迭代周期更短。

四、Serverless现存问题

对于企业来说,支持Serverless计算的平台可以节省大量时间和成本,释放基础设施相关员工,转移到开展更有价值的工作,而不是管理基础设施。另一方面可以提高敏捷度,更快速地推出新应用和新服务,进而提高客户满意度。但是任何事情都有两面性,Serverless并不是完美的,它也存在一些问题:

1、完全依赖于第三方服务

当我们采用某云服务厂商的 Serverless 架构时,理论上我们就和该服务供应商绑定了,那么我们再将服务迁到别的云服务商上就没有那么容易了。但如果云厂商本身兼容开源,甚至应用代码可以“0”改动迁移,这个问题就迎刃而解了,也就不存在绑定一说了。选择云厂商Serverless服务的时候,从产品演进的角度,这也是一个重点需要考虑的点。

2、缺乏调试和开发工具

现阶段基于Serverless架构服务开发时,相对比较痛苦的就是功能开发阶段,每次你调试的时候,你需要一遍又一遍地上传代码。而每次上传的时候,你就好像是在部署服务器,虽然应用部署非常简单,但并不能总是快速地定位出问题在哪。不过这应该也是一个阶段性的问题,后续Serverless周边工具生态逐步完善后,相信Serverless下的开发也会拥有跟本地开发一致的体验。

3、语言版本

一般Serverless服务内部针对单组件都是维护一个或几个主流版本,这个策略完全由云厂商决定,并不会严格紧跟社区版本。站在我的角度,也并不是版本越高越好,还是对外提供一个长期稳定的版本,比如原本是Spark 2.3,当Spark 2.4刚面世的时候,就没有必要马上跟风,服务对外的稳定可用才是最关键的。另外,现在基于K8S的自定义镜像也能很好的解决组件多版本和周边依赖问题。

五、总结

一般来说,社会越发达、越成熟,社会分工就越明确,技术亦是如此。云计算经过这么多年的发展,逐渐进化到用户仅需关注核心业务和业务运行所需的资源,基础设施及平台统一由云厂商来负责看护。Serverless架构让我们不需要再操心服务端的运维,不需要关心我们不熟悉的领域,只需要专注于业务的开发、专注于产品的实现。我们需要关心的事情变少了,也意味着我们能做的事情更多了。可以说,随着Serverless架构的兴起,真正的云计算时代才算到来了。相信随着技术的飞速发展,Serverless在未来还有无限可能!

以上就是解读Serverless架构的前世今生的详细内容,更多关于Serverless架构的前世今生的资料请关注我们其它相关文章!

(0)

相关推荐

  • Serverless 架构如何演进详细介绍

    Serverless 架构演进 Serverless架构风格挑战了软件设计和软件部署基础的现状,以实现最佳开发.最优运营和最优的管理开销.虽然它继承了微服务架构MSA的基本概念,但它已被赋予了新的架构模式,尽可能实现最高效的硬件利用. 尽管Serverless架构有显著的进步,但适应这种架构需要一个周全的过程,把企业解决方案精确映射到Serverless架构上. 部署在物理服务器上的软件系统,其初始实现不能最佳地利用底层硬件的计算能力,因为在给定时间内只能有一个操作系统实例运行.随后的改造中,在

  • 基于 Serverless +企业微信打造 nCoV 疫情监控小助手

    最近的一些疫情信息很让人揪心,为了方便大家掌握疫情信息,在空闲之余做了一个关于 nCoV 的疫情监控小助手.主要的功能是通过企业微信的 WebHook 来推送疫情信息.这里将使用 Serverless 的整体代码思路和架构方式分享给大家.本文作者:tabor 实现效果 我们想要实现的大致的效果是这样的: 首先,我们需要解决的是数据来源问题,这里我们可以使用 python 爬虫来做这件事情,但是由于个人比较懒所以直接用的 2019-nCoV-Crawler  ,这个项目已经集成了现有的 API,所

  • CentOS 6.4下安装部署OpenStack云计算平台的方法

    前言 OpenStack 是一个开源的 IaaS(基础设施及服务)云计算平台,让任何人都可以自行建立和提供云端运算服务. OpenStack 由一系列相互关联的项目提供云基础设施解决方案的各个组件,核心项目(9 个): 1.计算 (Compute) - Nova: 2.网络和地址管理 - Neutron: 3.对象存储 (Object) - Swift: 4.块存储 (Block) - Cinder: 5.身份 (Identity) - keystone: 6.镜像 (Image) - Glan

  • 什么是OpenStack 开源的云计算管理平台项目

    OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目. OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作.OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单.可大规模扩展.丰富.标准统一的云计算管理平台.OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成. OpenStack是一个旨在为公共及私

  • OpenStack云计算快速入门教程(1)之OpenStack及其构成简介

    该教程基于Ubuntu12.04版,它将帮助读者建立起一份OpenStack最小化安装.我是五岳之巅,翻译中多采用意译法,所以个别词与原版有出入,请大家谅解.我不是英语专业,我觉着搞技术最重要的就是理解,而不是四级和考研中那烦人的英译汉,所以我的目标是忠于原意.通俗表达,Over.英文原文在这里(http://docs.openstack.org/es@***/openstack-compute/starter/content/ ,请将ex@***中的@去掉,CU屏蔽的F词),下面步入正题: 第

  • 虚拟化和云计算的区别分析

    本文实例讲述了虚拟化和云计算的区别.分享给大家供大家参考,具体如下: 经常有人讨论这两者的区别,在这个行业时间长,听到的也自然很多,这里做一个总结.下面的观点,我想没有对和错,只是理解不同. 所谓虚拟化,虚拟机,vps,其实是差不多一个意思 所谓云计算,广义上肯定是包括一切,不过狭义一点,基本就是指IaaS 其实就是虚拟机和IaaS的联系和区别. ① 虚拟化就是云计算 这个说法很早就有,尤其商业厂商, vmware,微软,都是把以前叫虚拟化的产品,改名为云计算. 其实某种意义上,也对,虚拟化是云

  • 解读Serverless架构的前世今生

    一.Serverless简介 Serverless架构的出现,带来了跨越式的变革.Serverless下主机管理.操作系统管理.基础软件的部署运维.资源分配和扩缩容能力全部由云厂商提供,把计算能力做成像水电煤一样的公共服务,这就意味着基于Serverless服务构建应用,开发者只需要专注在产品代码上,而无需管理和操作云端服务运行环境,计算资源从过去购买"服务器"转向购买对应的"服务". Serverless = Faas (Function as a service

  • 详解基于 Node.js 的轻量级云函数功能实现

    导语 在万物皆可云的时代,你的应用甚至不需要服务器.云函数功能在各大云服务中均有提供,那么,如何用"无所不能"的 node.js 实现呢? 一.什么是云函数? 云函数是诞生于云服务的一个新名词,顾名思义,云函数就是在云端(即服务端)执行的函数.各个云函数相互独立,简单且目的单一,执行环境相互隔离.使用云函数时,开发者只需要关注业务代码本身,其它的诸如环境变量.计算资源等,均由云服务提供. 二.为什么需要云函数? 程序员说不想买服务器,于是便有了云服务: 程序员又说连 server 都不

  • 云开发 VSCode 插件 Cloudbase Toolkit 的正确打开方式及应用场景分析

    什么是 Cloudbase Toolkit Tencent CloudBase Toolkit 是云开发的 VS Code(Visual Studio Code)插件.该插件可以让您更好地在本地进行云开发项目开发和代码调试,并且轻松将项目部署到云端. Cloudbase Toolkit 将项目创建.函数上传.函数更新.函数本地调试等功能集成在 VSCode 的本地调试环境中,开发者可以通过简单的点击,完成云函数的更新.上传.同步等功能. 和 Cloudbase Cli 相比,Cloudbase

  • Java Springboot之Spring家族的技术体系

    一.Why Spring Boot 在传统 Spring 框架的基础上做了创新和优化,将开发人员从以往烦琐的配置工作中解放出来,并提供了大量即插即用的集成化组件,从而解决了各种组件之间复杂的整合过程,大大提高了开发效率,降低了维护成本. 比如, 原本使用的是 Spring MVC 框架, 在整个开发过程中,除了需要编写一大堆配置文件.针对每个层次引入专门的开发组件外,还需要独立部署和管理应用服务器.最后,为了对系统的运行状态进行有效监控,还需要引入一些并不好用的外部框架. 而使用了 Spring

  • 关于spring5的那些事:@Indexed 解密

    目录 哪些资源会被索引? 如何使用? 原理 随着云原生的发展,很多技术会被重新掂量,重新定义,历来技术的发展也是遵循天时地利,以其势尽享其利.再云原生下,jdk的最大的问题在于笨重(几百mb),启动慢,而像Serverless架构,NodeJS技术栈可谓更完美. 其实在jdk9中倡导模块化本质在于减少JVM的体积,不需要资源(Jar)不用再加载,而启动慢的问题其实也有解决方案GraalVM (一款类似于HotSpot VM),它的先进之处在于缩短运行的成本将.java文件直接编译成native

  • Vue极简生成器 Vuepress的实现

    目录 为什么要使用Vuepress create-vuepress-site 生成器 快速搭建项目 一.搭建本地开发环境 二.创建新的初始应用 三.启动应用服务器 云开发平台一键部署vuepress 一.创建环境 二.创建vuepress应用 创建前端应用. 三.在日常环境部署 阿里云开发平台多端应用 为什么要使用Vuepress VuePress由两部分组成:一个极简的静态站点生成器,带有一个vue支持的主题系统和Plugin API,以及一个为编写技术文档而优化的默认主题.创建它是为了支持V

  • java开发主流定时任务解决方案全横评详解

    目录 引言 Crontab 目标定位 使用方式 实现原理 方案分析 Spring Task 目标定位 使用方式 实现原理 方案分析 ElasticJob 目标定位 使用方式 实现原理 方案分析 XXLJob 目标定位 使用方式 实现原理 方案分析 Serverless Job 目标定位 使用方式 实现原理 方案分析 总结 引言 定时任务作为一种按照约定时间执行预期逻辑的通用模式,在企业级开发中承载着丰富的业务场景,诸如后台定时同步数据生成报表,定时清理磁盘日志文件,定时扫描超时订单进行补偿回调等

  • ahooks整体架构及React工具库源码解读

    目录 引言 React hooks utils 库 ahooks 简介 特点 hooks 种类 ahooks 整体架构 项目启动 整体结构 hooks 总结 引言 本文是深入浅出 ahooks 源码系列文章的第一篇,这个系列的目标主要有以下几点: 加深对 React hooks 的理解. 学习如何抽象自定义 hooks.构建属于自己的 React hooks 工具库. 培养阅读学习源码的习惯,工具库是一个对源码阅读不错的选择. 注:本系列对 ahooks 的源码解析是基于 v3.3.13.自己

  • 浅谈Android官方MVP架构解读

    综述 对于MVP (Model View Presenter)架构是从著名的MVC(Model View Controller)架构演变而来的.而对于Android应用的开发中本身可视为一种MVC架构.通常在开发中将XML文件视为MVC中的View角色,而将Activity则视为MVC中的Controller角色.不过更多情况下在实际应用开发中Activity不能够完全充当Controller,而是Controller和View的合体.于是Activity既要负责视图的显示,又要负责对业务逻辑的

随机推荐