从 DevOps 到 NoOps,Serverless 技术的落地方式探讨

Serverless 技术正以一种全新的方式,帮助云上客户进一步节省云的使用成本,实践 NoOps 理念,同时,他也正深刻变革着开发者们的编程模式,所谓“Write locally, compile to the cloud”。

本文将介绍 Serverless 技术来降低云的使用成本和提升运维效率的业务背景和由来,并结合 Serverless 应用引擎(SAE)这款产品来呈现 Serverless 技术的落地方式。

云上业务开发和运维现状

目前,很多客户的上云仍处于资源云化的阶段,以降低资源购置成本为主要驱动力,应用运行在到虚拟化环境中,应用的开发和运维还需要消耗大量的人力。

1586216957641_ea75ae4e_2cc9_43cd_b633_f84df0dde3d7

如上图,在这种模式下,客户除了要完成业务逻辑开发外,还需要完成以下工作:

  • 评估系统容量:包括系统总访问量、平均访问量、压测找出单机 QPS、线上冗余情况等等,整个容量评估工作是一个十分复杂的过程;
  • 准备基础设施:包括网络拓扑规划,以及ECS 虚拟机资源、外网访问入口SLB、存储资源RDS、NAT等云产品的购买;
  • 应用部署:对虚拟机资源进行初始化,需要手动或自建自动化部署流程完成应用部署;如果是微服务形态的应用,还需要考虑注册中心和服务之间的依赖关系管理;
  • 系统运维:需要进行系统监控、应用监控,并对异常情况报警,并自建运维体系和运维工具。

痛点分析

系统上线后,随着用户越来越多,系统承载的流量也会越来越大。流量可能会出现规律性的波峰和波谷,也有可能会出现突发大流量的场景,当流量陡增将要或已经超出系统承受能力时,需要系统扩容,而扩容是需要按照容量评估、准备云上资源、应用部署几个流程重新操作一遍,效率较低,可能扩容完成时流量波峰已经过去了,还有可能出现因系统资源不足而造成的系统不可用。当系统流量再正常到正常水位,又会出现资源利用率低的问题,再相应的进行缩容,但缩容的时机很难把握,势必会造成一定的闲置资源的浪费。

1586400081861_af558c0f_e0d9_43b0_9190_730dc7b6a62d

那我们期望的系统反馈是什么样的呢?

如上图,我们期望的是,资源需求和实际的资源使用量走势能有一个很好的拟合,能够从容应对突发流量,并且能够有效降低闲置资源成本。为了达到这个目标,系统需要具备哪些能力呢?

  • 实时监控和数据分析:做到按需弹性,首先需要对把系统运行和应用运行状态监控起来,并具备监控数据的分析能力;
  • 弹性策略设置:提供可配置的弹性策略,并根据应用运行情况设置进行合理的设置;
  • 秒级弹性:基于监控数据分析和弹性策略设置,系统可以实现自动弹性的能力,弹性能力越强越好,能达到秒级弹性;
  • 细粒度计量:上云的目标是降成本、提效率,因此需要配置细颗粒度的计量计费能力,支持小规格的计算资源配置才能真正达到降本的目的;
  • 应用实例能够自动水平扩缩:上面介绍的几种能力都是基于一个前提,应用实例能够自动水平扩缩,这需要应用实例是无状态的或者系统自动维护应用的状态。

上面的几点分析可以提取几个关键词:按需弹性、细粒度计费、实时监控,这正是我们今天需要讨论的 serverless 技术所需要解决的问题,接下来我们看下阿里云现有的4个 serverless 产品形态。

阿里云的 Serverless 产品形态

1586310839202_afab3c6d_6367_46c3_9545_7de4e3d71d35

ECI/Serverless Kubernetes:是面向容器的 Serverless Container,应用的载体是容器镜像,灵活性好,配合调度系统可以支持各种类型应用,无需管理底层基础架构。

函数计算:是面向函数的 Function as a Service,提供了事件驱动的编程方式,用户只需实现函数的处理逻辑,开发效率很高;按照调用量计费,可以根据业务流量平滑调整计算资源,采用 FaaS 最大的挑战是需要改变应用架构和开发交付模型。

Serverless 应用引擎(SAE):是面向应用的 Serverless 产品,用户不需要要改变应用架构和开发交付模型,只需提供应用实现,无需管理底层计算资源。SAE 提供了优化的弹性策略、支持秒级计费,并且提供了丰富的服务治理能力,可以方便地实现服务的灰度发布、熔断、降级,并与现有CI/CD系统集成。

什么是阿里云Serverless 应用引擎(SAE)

Serverless 应用引擎(SAE)基于神龙裸金属服务器和 ECI 计算资源构建 Kubernetes 集群平台,并实现了多租户管理,在 Runtime 层实现了应用生命周期管理、发布策略管理、弹性伸缩、微服务管理等能力。简单讲,就是面向微服务和其他在线负载提供 Serverless 技术的落地方案。

1586312057023_07d3daf4_712a_455b_bdac_9694b39d583f

如上图,SAE 为主流的微服务框架的应用提供了 Serverless 应用托管能力,包括 Spring Cloud、Apache Dubbo 或者阿里云 HSF 框架等,支持多种部署渠道,包括UI、云效、插件等,支持多种部署方式,包括WAR、JAR、镜像等。对于单体应用和采用 Spring Cloud、Dubbo、HSF框架开发的 Java 应用,SAE 支持零代码改造,即可完成迁移。

多租户应用托管能力实现

SAE 基于 Kubetnetes 集群对多用户提供应用托管能力,那 SAE 如何实现多租管理的呢?对于租户的隔离,主要有4个方面,包括系统隔离、数据隔离、服务隔离和网络隔离:

  • 系统隔离:基于安全沙箱容器技术的应用运行时环境,拥有独立的内核,能够提供多租户环境下对系统调用、内核的隔离能力;
  • 数据隔离:安全容器启动时,通过 devicemapper 在宿主机上提供一个独占的存储空间作为 rootfs;
  • 服务隔离:SAE 命名空间是逻辑隔离环境,和微服务级别租户信息(例如T1、T2、T3)绑定,与 K8S 中 namesapce 一一对应,微服务租户信息下发到 K8S Secret 中保存;
  • 网络隔离:SAE 命名空间和唯一的 VPC 绑定,底层通过 ENI 网卡打通同一个VPC 网络,实现不同用户的 POD 属于不同网络平台,并且 POD 和宿主机属于不同网络平面,VPC 实现用户专属网络隔离。

核心优势-免IaaS运维

用户只需对网络进行规划,无需管理底层计算资源,完成业务开发后,可以直接通过程序包或者镜像部署应用,极大提高用户开发和运维效率;SAE 对接了多个云产品,如SLB、SLS、NAT等,在应用部署时可以选择使用,可以一站式支持流量访问、日志收集、存储等能力。

核心优势-弹性能力

1586314001296_bfcc2f94_a20f_47a2_8ede_c10e71372dd4

SAE 支持定时弹性和指标弹性功能,定时弹性适用于资源画像有周期性的应用场景,多用于证券、医疗、政府、教育等行业;指标弹性目前支持 CPU 和内存指标弹性,适用于有突发流量或典型脉冲的应用场景,多用于互联网、游戏、社交平台等行业。

核心优势-一键启停开发测试环境

企业开发测试环境一般晚上不使用,但需要长期保有应用实例,闲置资源成本高。使用 SAE 一键启停功能能够高效管理开发测试环境,按需释放闲置资源,做到节省成本。

1586314228334_2b5c2b50_647e_46b2_b036_4b5f62fc59d9

产品数据

_2020_04_09_1_36_34

  • 容器启动时长为20s:支持突发场景快速扩容,启动时长指的是 100M 大小的镜像从Pull image 到容器正常启动的耗时,不含应用启动时间。
  • 最小实例规格为0.5C1G:支持细粒度资源诉求,0.5C1G 建议用在开发测试环境中;
  • 多套环境按需启停,成本可以节省47%~57%:按一套环境 5 台 ECS 每天使用 8 小时,分别针对 ECS 按量付费和包年包月两种情况计算来对比资源成本,方案详情可以查看。

运维体验

ECS 应用部署方案和使用 SAE 进行应用托管方案在运维方面的对比如下:

_2020_04_09_1_41_30

欢迎加入 SAE 的用户交流钉钉群:23198618

原文链接

本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/516307.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uni-app中使用腾讯位置服务实现小程序地图选点功能

文章目录1. 官方文档2. 小程序添加插件3. HBuilder配置4. 配置代码5. 页面代码1. 官方文档 技术选定(地图选点插件) (对应官网:https://lbs.qq.com/miniProgram/plugin/pluginGuide/locationPicker ) 2. 小程序添加…

8000字 | 32 张图 | 一文搞懂事务+隔离级别+阻塞+死锁

来源 | 悟空聊架构(ID:PassJava666)头图 | CSDN下载自视觉中国事务1.1 什么是事务为单个工作单元而执行的一系列操作。如查询、修改数据、修改数据定义。1.2 语法「(1)显示定义事务的开始、提交」BEGIN TRANINSERT IN…

uni-app中使用腾讯地图sdk(解析经纬度)获取用户所在位置信息

前言: 技术选定 https://lbs.qq.com/dev/console/custom/apply 具体步骤: 注册开发者账号、申请密钥、开通webserviceAPI服务、下载小程序SDK、微信后台配置请求request域名。 ( 请按官方完成以上操作:https://lbs.qq.com/mini…

4月数据库流行度排行出炉:MySQL 成事实王者

2020年4月DB-Engines 数据库流行度排行出炉。在本月的排行榜上,Oracle 较上月微涨 4.78 分,MySQL 微涨 8.62 分,甲骨文公司成为最大赢家。而微软的两个产品 Microsoft SQL Server 下降 14.43 分,Microsoft Access 下降 3.22分&…

MySQL 在 Mac 环境下的安装

目录 Mac 系统配置 MySql 数据库1. 安装 MySql 数据库2. 安装 MySql Workbench 可视化工具Mac 系统配置 MySql 数据库 1. 安装 MySql 数据库 1.1 双击打开安装包 mysql-8.0.19-macos10.15-x86_64.dmg: 1.2 双击 mysql-8.0.19-macos10.15-x86_64.pkg 运行安装包,并点击 继续…

微信小程序console.log出来的是object的问题解决方法

在开发微信小程序的时候,从后台传过来的数据没有问题,但是在开发的过程中,console.log出来的结果为object。 解决方案: 把加好改为逗号,即可

超大福利 | 这款免费 Java 在线诊断利器,不用真的会后悔!

线上系统为何经常出错?数据库为何屡遭黑手?业务调用为何频频失败?连环异常堆栈案,究竟是哪次调用所为? 数百台服务器意外雪崩背后又隐藏着什么?是软件的扭曲还是硬件的沦丧? 走进科学带你了解 A…

面试官:因为这个语言,我淘汰了90%的人!!

很多人都有这样的经历:大量重复性工作;日报、周报、各种报,无穷无尽;不计其数的数据提取琐碎繁杂的事务让工作的效率极低。如果可以一键完成就好了。对这些问题来说,最高效的解决途径就是 Python。1991 年,…

MySQL在Windows 环境中的安装

文章目录 MySQL 在 Windows 系统下的安装MySQL 在 Windows 系统下的安装 双击 mysql-installer-community-8.0.19.0.msi,启动 MySQL 安装程序。 如果弹框提示如下的警告信息,证明你的电脑需要安装额外的 .NET Framework 依赖包。此时,先退出 MySQL 的安装程序,然后双击 ND…

灵魂发明家自述:我就是靠这个创业成功的

扫描二维码,了解低代码的高科技 原文链接 本文为云栖社区原创内容,未经允许不得转载。

前端数据解构

案例: 数据如下: {success: true, code: 10000, data: {…}, message: "执行成功"} code: 10000 data:list: Array(7)0: {_id: "608b70ecf9d99a7594662466", id: "0", label: "热榜"}1: {_id: "608b70ec…

7.仿若依后端系统业务实践

目录 概述项目实践mybatis 反向生成代码有覆盖问题解决pom.xmlbootstrap.ymlapplication.ymlmaven测试各种校验问题实践单个属性校验级联属性校验接口实体类测试结果自定义关联属性校验接口

基于云存储网关的Veeam备份归档上云方案

前言 面对数据可靠性和合规性要求的不断增长,只备份一份数据已经不能满足用户对于数据可靠性的需求。传统备份厂商的异地备份方案是将用户生产环境里的数据备份至不同机柜或者异地机房来保护数据,规避单机房存在的机柜或机房断电断网等问题。公共云的出现…

阿里达摩院青橙奖“硬核10人”出炉,钟南山寄语青年科学家

9月9日,2020年阿里巴巴达摩院青橙奖获奖名单公布,梁文华等10位青年科学家获得达摩院的1000万元奖金。这群平均年龄不足32岁的科研后浪收到了中国工程院院士钟南山的鼓励:“你们处在最好的时候,要记得把握机遇。” 青橙奖是阿里巴巴…

Node.js 入门详解(四)

数据库与身份认证 1. 数据库的基本概念1.1 什么是数据库1.2 常见的数据库及分类1.3 传统型数据库的数据组织结构1.3.1 Excel的数据组织结构1.3.2 传统型数据库的数据组织结构1.3.3 实际开发中库、表、行、字段的关系2. 安装并配置MySQL2.1 了解需要安装哪些 MySQL 相关的软件2.…

vue 微信开发工具 Maximum call stack size exceeded

文章目录现象原因解决方案现象 某段代码出现了内存溢出的现象 原因 出现了死循环调用的代码片段 解决方案 仔细检查一下,很容易发现的 案例场景: [Vue warn]: Error in v-on handler: “RangeError: Maximum call stack size exceeded” (found in…

深源恒际上线二代个人信用报告OCR识别服务

1月中旬,央行征信中心启动了二代征信系统切换上线工作,开始面向社会公众和金融机构开放二代格式信用报告查询服务。随后,深源恒际及时跟进信用报告OCR识别产品的升级工作。目前产品迭代已完成,深源恒际将于本周内上线二代个人信用…

直播预告 | 阿里巴巴自研代码管理平台技术解密

4月23日,企业级一站式DevOps平台——阿里云云效正式开启公测,我们特别策划了《为云研发而生,解密云效公测版专场》视频直播活动,邀请了5位阿里巴巴技术专家通过视频直播的方式与大家在线交流,分享云效产品的亮点和技术…

重温前端基础(一) HTML、CSS、H5C3

目录 0. WEB 标准构成1. HTML1.1 HTML概念1.2 超文本含义1.3 页面语言1.4 字符集1.5 标签语义化1.6 常用标签1.7 图像标签 img1.8 链接标签1.9 锚点定位1.10 base 标签1.11 特殊字符1.12 XHTML1.13 HTML和 XHTML之间的区别1.14 表格1.14.1 表格属性1.14.2 表头单元格标签 th1.1…

1024程序员节开源技术英雄会,参会“英雄榜”发榜

10月23-25日,由CSDN等多家单位精心筹划的“长沙 中国1024程序员节”将盛大举行。程序员节活动以开源为主议题,包括2场岳麓尖峰对话;2020开源技术英雄大会;10场热门技术分论坛/峰会;创意集市;体验感超强的科…