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

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

云上业务开发和运维现状

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

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

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

痛点分析

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

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

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

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

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

阿里云的 Serverless 产品形态

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

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

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

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

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

如上图,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等,在应用部署时可以选择使用,可以一站式支持流量访问、日志收集、存储等能力。

核心优势-弹性能力

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

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

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

产品数据

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

运维体验

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

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

原文链接

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

从 DevOps 到 NoOps,Serverless 技术的落地方式探讨相关推荐

  1. 【华为云技术分享】玩转云上数据湖,解析Serverless 技术落地

    摘要:本文主要介绍Serverless计算相关技术与其在华为云数据湖探索服务(后文简称DLI)中的技术落地. 导读 本文主要介绍Serverless计算相关技术与其在华为云数据湖探索服务(后文简称DL ...

  2. 企业级 CICD 工具部署 Serverless 应用的落地实践

    作者 | 李鑫(缤智) 阿里云高级技术专家 背景知识 通过以往几节课程的学习,相信大家对于 SAE 平台已经有了一定的了解.SAE 为客户免除了很多复杂的运维工作,开箱即用.按用量付费:与此同时 SA ...

  3. 一次吃透Serverless技术:Serverless的模式+技术前景,终生受益

    Serverless技术 Serverless的模式 回顾软件技术发展的历史,我们会发现"抽象.分解.集成.复用"的主题贯穿始终,行业的每一次更新换代都伴随着更高程度的软件服务模式 ...

  4. 云原生之路:趣谈容器技术从落地到最佳实践

    随着科技的发展,云原生技术正成为数字化转型的重要一环.今天,让我们一起踏上云原生之路,探索容器技术以及实现云原生的最佳实践.容器技术的出现,使得应用的开发部署变得更加快捷.灵活,极大地提高了企业级应用 ...

  5. 4/8 Serverless 技术实践营成都站持续报名中

    延期通知 各位开发者大家好: 感谢大家一路的理解与支持,根据政府疫情防控需要,配合新冠疫情防控,切实考虑到各位人身健康安全,原定于 2022 年 3 月 25 日在 成都-天府长岛 召开,由阿里云 S ...

  6. 芙蓉之约 , Serverless 技术实践营 3.25 成都站邀你来参加

    云原生浪潮下,Serverless 正在全面落地.继「云原生 Serverless 技术实践营」广州站.南京站.顺利举办后,虎兆丰年,阿里云 Serverless 团队把 "沉浸式" ...

  7. 广州站 | 云原生 Serverless 技术实践营精彩回顾

    12月2日,由阿里云 Serverless 团队主办的「云原生 Serverless 技术实践营」在广州顺利举行,本次活动面向所有企业技术人员,主打"沉浸式沙龙体验,6 小时搞定 Serve ...

  8. 如何通过 Serverless 技术降低微服务应用资源成本?

    前言 在大型分布式 IT 架构领域,微服务是一项必不可少的技术.从本质上来讲,微服务是一种架构风格,将一个大型的系统拆分为多个拥有独立生命周期的应用,应用之间采用轻量级的通信机制进行通信.这些应用都是 ...

  9. 从零入门 Serverless | 一文详解 Serverless 技术选型

    作者 | 李国强  阿里云资深产品专家 本文整理自<Serverless 技术公开课>.关注"Serverless"公众号,回复"入门",即可获取 ...

最新文章

  1. Docker官方文档翻译2
  2. 各国家分析(马来西亚,秘鲁)
  3. Java黑皮书课后题第5章:*5.39(金融应用:求销售总额)假设你正在某百货商店开始销售工作。你的工资包括基本工资和提成。基本工资是5000美元。你的目标是一年挣30000美元,编写程序找最小销售额
  4. mysql 事实表 维度表_数据库的事实表与维度表
  5. 180°舵机的使用步骤
  6. String、int、Integer互转的常用方法
  7. 蔚来首座超充站落地苏州蔚来交付中心 已开启试运营
  8. GB-T 15834-2011《标点符号用法》文档的格式问题
  9. ENVI5.3.1使用Landsat 8影像进行监督分类实例操作
  10. omnipeek无线抓包工具 Dlink 160驱动
  11. ssm房屋中介管理系统毕业设计(附源码、运行环境)
  12. matlab 画qpsk眼图,MATLABQPSK在AWGN信道下的仿真
  13. 寻找丢失的LZY(dfs)
  14. 【开源项目】Android 手写记事 App(半成品)
  15. 林轩田机器学习技法(Machine Learning Techniques)笔记(一)
  16. Django报错 ValueError: The view didn‘t return an HttpResponse object. It returned None instead.
  17. 京东android面试题2019,2019京东的面试题(牛客)
  18. 神经网络 深度神经网络,深度神经网络训练
  19. 7.5ElGamal算法
  20. 第一篇博客,写给自己

热门文章

  1. truncate python是删除文件内容吗_在Python中操作文件之truncate()方法的使用教程
  2. postgresql 查询序列_RazorSQL for Mac(数据库工具查询) v9.0.9
  3. python去重语句_Python对列表去重的多种方法(四种方法)
  4. 【LeetCode笔记】20.有效的括号(Java、栈) 21. 合并两个有序链表(Java)
  5. 什么笔记本电脑好用_苹果笔记本好用吗?苹果笔记本怎么样?
  6. element ui 多个子组件_vue前端UI框架,一点都不圆润,盘它!
  7. 华中师范大学本科生计算机课教师,华中师范大学第八届大学生计算机设计大赛的通知...
  8. 如何获取大端中的数据_【软件】ProE中各种获取数据方式的区别
  9. 鸿蒙开发还可以用安卓,华为鸿蒙2.0可以替代安卓吗,华为鸿蒙2.0优势在哪
  10. aws python lambda_python – AWS Lambda发送HTTP请求