做者 | 徐进茂(罗离) JAVA 开发工程师 编程
导读:近年来,Serverless 一词愈来愈热,它已经逐渐成为了一种新型的软件设计架构。和 DevOps 概念提倡的是经过一系列工具和自动化的技术来下降运维的难度,促进研发运维一体化不一样, Serverless 更像是一种 NoOps,即经过“不用作”的方式来解决“如何更高效作”的问题。
DevOps 是一组用于促进开发和运维人员之间协做的过程、方法和系统的统称。安全
DevOps 提倡经过一系列的技术和工具下降开发和运维人员之间的隔阂,实现从开发到最终部署的全流程自动化,从而达到开发运维一体化。经过将 DevOps 的理念引入到整个系统的开发过程当中,可以显著提高软件的开发效率,缩短软件交付的周期,更加适应当今快速发展的互联网时代。服务器
说到 DevOps ,就必然会提到持续集成。持续集成指的是在软件开发过程当中,软件开发人员持续不断地将开发出来的代码和其余的开发人员的代码进行合并,每次合并后自动地进行编译、构建,并运行自动化测试进行验证,而不是等到最后各自开发完成后才合并在一块儿。微信
持续集成能从根本上提升一个团队的软件开发效率。在软件开发过程当中引入持续集成,能够帮助团队及时的发现系统中的问题,并快速作出修复,不只能够缩短软件开发的时间,并且能够交付更具质量的系统。架构
一个 DevOps 开发环境须要知足如下 8 点需求。app
为了知足以上 8 点要求,设计出的 DevOps 开发环境以下图所示。框架
整个环境主要由 6 部分组成:less
整个环境的运行流程主要分为如下 6 步:运维
经过上述几步,咱们就能够简单实现一个 DevOps 开发环境,实现代码从提交到最终部署的全流程自动化。函数
可是自从 2014 年 AWS 发布 ASW Lambda 以来, Serverless 的概念开始逐渐火热起来。各大云厂商开始纷纷开始推出各自的 Serverless 产品,如 Google 的 Cloud Functions ,阿里云的函数计算、Serverless应用引擎(SAE)等等。究竟什么是Serverless 无服务计算呢?
什么是 Serverless?
根据 CNCF (云原生计算基金会)发布的 Serverless 白皮书里的定义:
Serverless computing refers to the concept of building and running applications that do not require server management. It describes a finer-grained deployment model where applications, bundled as one or more functions, are uploaded to a platform and then executed, scaled, and billed in response to the exact demand needed at the moment.
首先须要强调一点的是无服务器计算并不意味着咱们再也不须要使用服务器来运行代码,代码仍须要运行在服务器上对外提供服务。
在无服务计算时代,研发人员无需对服务器进行监控、配置、更新、扩容等运维操做。只须要将代码上传到云厂商提供的无服务器计算平台上便可,云厂商会保证代码能正常运行,当流量突增时,自动对服务器进行扩容,流量减小时,对服务器进行缩容。
这些运维操做对研发人员来讲都是黑盒的,会将开发人员从繁琐的运维工做中解放出来,只须要按运行时长对资源进行付费便可。
和 DevOps 概念提倡的是经过一系列工具和自动化的技术来下降运维的难度,促进研发运维一体化不一样, Serverless 更像是一种 NoOps,即经过“不用作”的方式来解决“如何更高效作”的问题。
Serverless 应用引擎是面向应用的 Serverless PaaS 平台,它向上抽象了应用的概念,支持 Spring Cloud、Apache Dubbo、HSF 等流行的开发框架,并经过 WAR 包、JAR 包和镜像等多种方式部署应用。它的使用能够经过下面这张图来了解。
伯克利对 Serverless 将来的预测
尽管 Serverless 仍存在诸多的挑战,可是咱们相信随着市场规模的不断扩大,这些挑战会逐渐被解决。UC 伯克利对 Serverless 将来十年的发展趋势作了如下几点预测。
当前数据中心的资源利用率仍处于一个较低水平,特别是对于在线业务而言,日均资源使用率仅在 10% 左右,主要是因为当今资源都是属于独享型的,无论你用不用,这些资源都须要保留。
一旦大规模使用 Serverless 以后,资源的使用由平台统一调度,按需使用,总体的资源利用率会大幅提高,整个云计算资源的使用成本无疑也会大幅下降。
随着 Serverless 的不断发展,将来编程方式将会有很大的不一样。不管是从成本的角度仍是使用的角度,咱们有理由相信下一个时代是 Serverless 的时代,并应该朝着这个方向不断探索。
做者简介:徐进茂(罗离) Java 开发工程师。现就任于阿里云智能基础设施事业部,主要负责阿里巴巴数据中心运营平台的研发工做。
“ 阿里巴巴云原生微信公众号(ID:Alicloudnative)关注微服务、Serverless、容器、Service Mesh等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,作最懂云原生开发者的技术公众号。”