移动互联网、物联网和大数据应用的快速发展极大地促进了人们对云计算的需求。但是让应用架构拥有良好的可伸缩性和高可用性并非易事,运维和管控庞大的基础架构更是极大的挑战。

近年来,一个新的架构风格Serverless成了热门话题。本文基于Serverless概念的提出者Martin Fowler对Serverless概念的解读,全面阐述Serverless架构与传统架构的区别,优势及具体应用场景。

1. Serverless的概念


Serverless是一种基于互联网的技术架构理念,应用逻辑并非全部在服务端实现,而是采用FAAS(Function as a Service)架构,通过功能组合来实现应用程序逻辑。同时,Serverless架构能够让开发者在构建应用的过程中无需关注计算资源的获取和运维,由平台来按需分配计算资源并保证应用执行的SLA,按照调用次数进行计费,有效的节省应用成本。

2.Serverless与传统架构的异同

传统的互联网APP主要采用C/S架构,服务器端需长期维持业务进程来处理客户端请求,并调用代码逻辑完成请求响应流程。而在Serverless架构中,应用业务逻辑将基于FAAS架构形成独立为多个相互独立功能组件,并以API服务的形式向外提供服务;同时,不同功能组件间的逻辑组织代码将存储在阿里云Function Compute,Amazon Lambda,Azure Function,Google Cloud Functions等产品上,业务代码仅在调用时才激活运行,当响应结束占用资源便会释放。

3.Serverless的优势


1)节约使用成本

在业务突发性极高的场景下,系统为了应对业务高峰,必须构建能够应对峰值需求的系统,这个系统在大部分时间是空闲的,这就导致了严重的资源浪费和成本上升。在Serverless架构下,服务将根据用户的调用次数进行计费,节省了使用成本,同时,用户能够通过共享网络、硬盘、CPU等计算资源,在业务高峰期通过弹性扩容方式有效的应对业务峰值,在业务波谷期将资源分享给其他用户,有效的节约了成本

2)简化设备运维

在原有的IT体系中,开发团队即需要维护应用程序,同时还要维护硬件基础设施;Serverless架构中,开发人员面对的将是第三方开发或自定义的API 和URL,底层硬件对于开发人员透明化了,技术团队无需再关注运维工作,能够更加专注于应用系统开发

3)提升可维护性

Serverless架构中,应用程序将调用多种第三方功能服务,组成最终的应用逻辑。

目前,例如登陆鉴权服务,云数据库服务等第三方服务在安全性、可用性、性能方面都进行了大量优化,开发团队直接集成第三方的服务,能够有效的降低开发成本,同时使得应用的运维过程变得更加清晰,有效的提升了应用的可维护性

4.Serverless架构的行业场景


移动行业、物联网行业是非常典型的Sreverless架构使用场景

1)低频请求场景

物联网行业中,由于物联网设备传输数据量小,且往往是固定时间间隔进行数据传输,因此经常涉及低频请求场景。例如:物联网应用程序每分钟仅运行一次,每次运行50ms,这意味着CPU的使用率为0.1%/小时,这也意味着其实有1000个相同的应用可以共享计算资源。而Serverless架构下,用户可以购买每分钟100ms的资源来满足计算需求,通过这种方式就能够有效解决效率问题,降低使用成本。

2)流量突发场景

例如:移动互联网应用经常会面对突发流量场景,例如:移动应用的通常流量情况是QPS 20,但每隔五分钟会有一个持续10s的QPS 200流量(10倍于通常流量),传统架构下企业必须扩展QPS 200的硬件能力来应对业务高峰,即使高峰时间仅占整个运行时间的4%;而在Serverless架构下,用户可以利用弹性扩展特性,快速构建新的计算能力来满足当前需求,当业务高峰后,资源能够自动释放,有效节省成本。

5.基于Serverless概念的业内竞品

Serverless领域 AWS Lambda是先行者,随后其他厂商相继推出了自己的函数服务,包括Azure Function,Google Cloud Functions。阿里云的Serverless产品函数服务(Function Compute)现在正在紧张的研发阶段,预计2016年底之前会正式对外发布。

6.阿里云的Serverless规划


阿里云未来会围绕Serverless概念构建完整的生态体系,产品层面将全力打造API Gateway,Docker,Function Compute等为主的Serverless基础产品序列,同时围绕基础框架提升大数据服务能力,推动API经济发展,使阿里云成为中国Serverless的领导者。

7.技术文章推荐


http://martinfowler.com/articles/serverless.html

http://martinfowler.com/bliki/Serverless.html

-END-

欢迎关注“互联网架构师”,我们分享最有价值的互联网技术干货文章,助力您成为有思想的全栈架构师,我们只聊互联网、只聊架构,不聊其他!打造最有价值的架构师圈子和社区。

本公众号覆盖中国主要首席架构师、高级架构师、CTO、技术总监、技术负责人等人 群。分享最有价值的架构思想和内容。打造中国互联网圈最有价值的架构师圈子。

  • 长按下方的二维码可以快速关注我们

  • 如想加群讨论学习,请点击右下角的“加群学习”菜单入群


技术干货 | Serverless技术架构——极简运维 无限扩容相关推荐

  1. 基于SpringBoot+Bootstrap极简运维监控系统

    真正的大师,永远都怀着一颗学徒的心! 一.项目简介 基于SpringBoot+Bootstrap极简运维监控系统 二.实现功能 支持cpu使用率 支持cpu温度 支持内存使用率 支持磁盘容量 支持磁盘 ...

  2. 运维管理:极简运维系统设计

    (首页↑ ) (告警明细↑) (主机详情↑) 1. 背景 软件系统的高可用少不了对系统的常态化运维工作,而运维是一件相当繁琐的事情,需要监控各个主机的在线状态.各种端口的状态.各种服务的状态等等,如果 ...

  3. 从运维技术架构变化初探运维组织转型

    ​​关注嘉为科技,获取运维新知 运维人员的恐慌 最近在微信经常看到"未来XX年,没有什么工作是稳定的"."稳定是最大的不稳定"等等文章,联想到自己所在的运维领域 ...

  4. Serverless 实战 —— 基于 Serverless 的 VuePress 极简静态网站

    基于 Serverless 的 VuePress 极简静态网站 作者: Aceyclee 之前用过 Docsify + Serverless Framework 快速创建个人博客系统,虽然 docsi ...

  5. 容器 PaaS 新技术架构下的运维实践

    2018年11月16-17日,运维&容器技术盛会 CNUTCon 全球运维技术大会在上海·光大会展中心成功举办.时速云联合创始人兼 CTO 王磊受邀参加此次大会,并发表主题演讲. 王磊此次演讲 ...

  6. 架构设计 - 自动化运维之架构设计六要点

    运维自动化是我们所渴望获得的,但是我们在一味强调自动化能力时,却忽略了影响自动化落地的一个关键因素.那便是跟运维朝夕相处,让人又爱又恨的业务架构. 因为业务架构是决定运维效率和质量的关键因素之一,所以 ...

  7. 微服务架构下的运维知识体系

    微服务架构下的运维知识体系 基础设施与应用的标准化 微服务技术体系下的应用指的是以什么呢? 软件架构服务化的过程,就是我们根据业务模型进行细化的过程,在这个过程中切分出一个个具备不同职责的业务逻辑模块 ...

  8. 浅谈SDN架构下的运维工作

    目前国内的网络运维还处于初级阶段,工作人员每天就像救火一样,天天疲于奔命.运维人员只能埋头查找系统运行的日志,耗时耗力,老眼昏花不说,有时候忙了半天还一无所获,作为运维工程师的你,有木有遇到过类似苦逼 ...

  9. MySQL异步复制延迟解决的架构设计与运维架构ppt

    <MySQL异步复制延迟解决的架构设计与运维架构ppt> 下载地址:网盘下载 转载于:https://www.cnblogs.com/long12365/p/9731216.html

  10. 让 Nginx 支持 WAF 防护功能web防火墙 - 沧海一粟 - Web系统架构与服务器运维,php开发...

    让 Nginx 支持 WAF 防护功能web防火墙 - 沧海一粟 - Web系统架构与服务器运维,php开发

最新文章

  1. ORACLE 用户权限管理
  2. matlab“机器学习和深度学习”系列工具箱作用总结
  3. Codeforces 1196C Robot Breakout
  4. 实践 Neutron 前的两个准备工作 - 每天5分钟玩转 OpenStack(78)
  5. EBB-23、DNS服务
  6. Python的Lock对象和Condition对象对比
  7. android simple-xml,使用Maven构建Android项目-dexer在simple-xml依赖项上失败
  8. monkey自动化测试(命令行)
  9. python的软件环境是什么意思_python的虚拟环境详解
  10. 【POJ 3320】【尺取法】Jessica's Reading Problem【暑期 No.2】
  11. 64脚和小于64脚的STM32进行AD时注意,参照电源处理方法(转)
  12. MATLAB常用的滤波函数比较:均值滤波 和 中值滤波
  13. oracle 查询优化
  14. Swift iOS HealthKit 使用案例: 获取体温列表 HKHealthStore
  15. python生成随机字符串包含数字字母_使用python生成一个指定长度的字符串(随机密码),要求包括数字、字母、特殊符号(string库解析)...
  16. 估值指标二把手——市净率
  17. idea最新Activation code
  18. Firefox OS的奇幻漂流——全面解析新一代Open Web移动操作系统
  19. php global $_g;,global.php
  20. 《复旦名师陈果:好的孤独》-陈果读书笔记

热门文章

  1. 使用命令行修改当前gnome终端的名称技术
  2. 如何让自己的email地址永久有效
  3. JDBC数据库通用DAO
  4. 无法上网之NOD32
  5. android 之手机拨号器,以及短信发送器的简单实现
  6. 来点实在的 Community Server 2007 剥离出的模式窗口
  7. Tinderbox for Mac(可视化个人笔记工具)
  8. 使用HDR Efex Pro 2 mac版如何合并图像?
  9. 微软MIX10开幕 支持在线观看
  10. 创建控制文件副本出现错误ORA-00205: error in identifying control file