Serverless Kubernetes 落地实践

简介:如何通过原生 Kubernetes 提供 Serverless 能力?如何借力丰富的云原生社区生态?本文将给大家介绍一下我们在 Serverless Kubernetes 上的落地实践。

作者:元毅

导读

Kubernetes 作为当今云原生业界标准,具备良好的生态以及跨云厂商能力。Kubernetes 很好的抽象了 IaaS 资源交付标准,使得云资源交付变的越来越简单,与此同时用户期望更多的聚焦于业务自身,做到面向应用交付,Serverless 理念也因此而生。那么如何通过原生 Kubernetes 提供 Serverless 能力?如何借力丰富的云原生社区生态?这里给大家介绍一下我们在 Serverless Kubernetes 上的落地实践。本文将从以下 3 个方面展开介绍:

  • 为什么要做Serverless Kubernetes
  • 如何实现Serverless Kubernetes
  • Serverless Kubernetes 落地实践

为什么要做 Serverless Kubernetes

Kubernetes

众所周知,Kubernetes 是一款开源容器化编排系统,用户使用 Kubernetes 可以做到降低运维成本、提高运维效率,并且提供标准化 API,某种意义就是避免被云厂商绑定,进而形成了以 Kubernetes 为核心的云原生生态。可以说 Kubernetes 已然成为了云原生业界事实标准。

Serverless 与 Kubernetes

那么我们回到 Serverless 上面来,Serverless 的核心理念在于让开发者更聚焦业务逻辑,减少对基础设施的关注。那么我们如何在云原生业界标准之上做 Serverless,Kubernetes 是否也能做到更专注于应用业务逻辑。

Kubernetes 做 Serverless 有哪些优势

我们来看一下 Kubernetes 做 Serverless 有什么优势。先看一下 Kubernetes 特性包括哪些:

  • 容器化
  • 统一 IaaS 资源交付
  • CI/CD 持续集成部署
  • 跨云厂商
  • 丰富的生态
  • 面向应用管理

而对应于 Serverless 来说

  • 事件驱动:Kubernetes 支持 job 类型、并围绕 Kubernetes 提供丰富的事件源
  • 按需使用:Kubernetes 本身支持 hpa 弹性能力
  • 免运维、高可用:Kubernetes 可以通过容器化、统一资源交付很好的支持。

结合这些来看 Kubernetes 实现 serverless,天然具备优势。

如何实现 Serverless Kubernetes

在 Kubernetes 上实现 Serverless 主要做到一下两点:

第一:向下如何让用户减少对基础设施的关注;

第二:线上如何更聚焦业务应用。

这里我们通过 Serverless Framework ,聚焦业务应用,进一步抽象 Kubernetes 资源,提供按需使用自动弹性的能力。通过 IaaS 资源免运维,减少对基础设施的关注,做到节点免运维。

那么 IaaS 资源免运维,我们是如何做的呢?

减少对基础设置的关注:IaaS 免运维

原生的 Kubernetes 节点资源需要用户自行维护,为了降低用户维护节点成本,我们提供了托管节点池,帮助用户维护节点的生命周期,但用户还是需要对托管节点池策略进行维护,更近一步在 Serverless Kubernetes 中通过虚拟节点结合弹性容器实例 ECI,让用户彻底摆脱对 IaaS 的运维。

Serverless Kubernetes IaaS 资源免运维包括:

  • 基于容器,安全隔离、高移植
  • 无服务器管理:无需容量规划,对服务器免运维
  • 弹性扩容:秒级扩容,无限容器
  • 按需付费,更高资源利用率

向下我们通过虚拟节点结合 ECI 实现了 IaaS 资源免运维,那么向上如何聚焦业务逻辑呢?其实就是以应用为核心。

聚焦业务逻辑:以应用为核心

围绕应用来看,无非我们要解这些问题:

  • 应用部署
  • 灰度发布
  • 流量管理
  • 自动弹性
  • 可观测性以及应用的多版本管理

那么有开箱即用的方案去解吗?答案是 Knative。

Knative 是什么

Knative 是基于 Kubernetes 之上提供的一款开源 Serverless 应用框架,帮助用户部署和管理现代化的 Serverless 工作负载,打造企业级 Serverless 平台。

Knative 具备如下优势:

  • 在几秒钟内建立可扩展、安全、无状态的服务。
  • 具有更高级别 Kubernetes 应用抽象的 API。
  • 可插拔组件,让您可以使用自己的日志记录和监控、网络和服务网格。
  • 在 Kubernetes 运行的任何地方都可以运行 Knative,无需担心供应商锁定。
  • 开发者无缝体验,支持 GitOps、DockerOps、ManualOps 等。
  • 支持常用工具和框架,例如 Django、Ruby on Rails、Spring 等。

Knative 主要包括 2 大核心模块:Serving 和 Eventing

Serving 提供了 Service 应用模型,支持基于流量的灰度发布、版本管理、缩容到 0 以及自动弹性。

Eventing 提供事件驱动能力。支持丰富的事件源,以及用于事件流转、过滤的 Broker/Trigger 模型。

为什么是 Knative

那么我们为什么选择 Knative 呢?

根据 CNCF 2020 中国云原生调查报告,Knative 已经成为 Kubernetes 上最广泛安装的无服务器。

另外 Knative 社区近期也发起了一项统计:当前哪些云厂商或企业在提供或者使用 Knative。我们可以看到,几乎所有的大厂都支持或者集成 Knative, 如阿里云、谷歌云、IBM、Red Hat 等,并且大部分都提供了生产级别能力(Production),这些迹象表明越来越多的用户拥抱 Knative。

此外近期 Knative 已申请成为 CNCF 孵化项目,这无疑让 Knative 开发者为之兴奋。

Knative 落地挑战、应对与效果

从开源到产品化落地,必然会面对一些挑战。Knative 产品化落地主要面对如下挑战:

  • 管控组件多,运维复杂
  • 0 到 1 冷启动问题
  • 流量请求 1 对 1 分发

那么我们如何来应对呢?

我们提供组件托管,帮助用户节省资源及运维成本;当请求为 0 时,缩容到低规格保留实例,实现请求 0 到 1 免冷启动,做到成本可控;提供自研事件网关,做到流量的精准控制。

Serverless Kubernetes 落地实践

落地方案

结合上述介绍,向上通过 Serverless Framewok Knative 更聚焦业务应用,向下通过虚拟节点减少对基础设施的关注。这就是我们Serverless Kubernetes 落地方案:围绕 Kubernetes api, 下线集成云产品的能力,包括消息事件、弹性容器实例以及日志监控等。向上通过 Knative 围绕应用为核心,提供事件驱动、自动弹性等能力。

典型应用场

最后看一下我们有哪些落地场景,典型的应用场景及行业领域如图:

落地实践:异构资源,按需使用

  • 客户痛点

用户希望通过 Serverless 技术按需使用资源,节省资源使用成本,简化运维部署 。另外有 GPU 的业务诉求。希望使用容器化的 Serverless ,支持使用 GPU 资源,同时简化应用运维部署(尽可能少的操作 Kubernetes deployment/svc/ingress/hpa等资源),IaaS 资源免运维。

  • 解决方案

使用 Knative + ASK 作为 Serverless 架构。数据采集之后,通过服务网关访问数据处理服务,数据处理服务根据请求量按需自动扩缩容。

落地实践:事件驱动,精准分发

某客户直播系统支持用户在线互动。消息数据的处理主要有以下技术挑战:

  • 业务弹性波动,消息并发高。
  • 互动实时响应,低延迟。

客户选择阿里云的 Knative 服务进行数据的弹性处理。应用实例数随着业务波峰波谷实时扩容和缩容,真正做到了按需使用,实时弹性的云计算能力。整个过程完全自动化,极大的减少了业务开发人员在基础设施上的心智负担。

小结

我们回顾一下本文介绍的主要内容:首先介绍了为什么在 Kubernetes 提供 Serverless:

  • Kubernetes 已成为云原生业界标准
  • 面向标准 Kubernetes API 进行 Serverless 编程

然后我们如何实现 Serverless  Kubernetes:

  • IaaS 节点免运维
  • Serverless Framework (Knative)

最后介绍了 2 个落地实践场景:

  • 异构资源,按需使用
  • 事件驱动,精准分发

一句话:Serverless Kubernetes 基于 Kubernetes 之上,提供按需使用、节点免运维的 Serverless 能力,让开发者真正实现通过 Kubernetes 标准化 API 进行 Serverless 应用编程,值得关注。

原文链接

本文为阿里云原创内容,未经允许不得转载。 

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

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

相关文章

如何在零停机的情况下迁移 Kubernetes 集群

简介:本文将通过集群迁移的需求、场景以及实践方式,介绍如何基于阿里云容器服务 ACK,在零停机的情况下迁移 Kubernetes 集群。 作者:顾静(子白)|阿里云高级研发工程师;谢瑶瑶&#…

轻松理解 Docker 网络虚拟化基础之 veth 设备!

作者 | 张彦飞allen来源 | 开发内功修炼最近我又对网络虚拟化技术产生了浓厚的兴趣,迫切想搞明白在 Docker 等虚拟技术下,网络底层是如何运行的。不得不说,网络虚拟化技术是我给自己抛的又一个大坑。虽然我自认为把原生 Linux 网络实现过程理…

如何做好数字化体验管理,了解一下?

简介:本文主要分为三部分,第一部分是数字化体验的必要性,从数字化体验管理对业务的影响和数字化体验管理对企业的价值两个方面来介绍其必要性;第二部分,ARMS 在数字化体验管理上的产品能力介绍;第三部分&am…

深信服智能边缘计算平台与 OpenYurt 落地方案探索与实践

简介:本文将介绍边缘计算落地的机遇与挑战,以及边缘容器开源项目 OpenYurt 在企业生产环境下的实践方案。 作者:赵震,深信服云计算开发工程师,OpenYurt 社区 Member 编者案:在 5G、物联网等新技术的持续推…

云原生的本手、妙手和俗手

作者 | 步尔斯特来源 | 步尔斯特刚刚看到一个话题:Java大军,真的开始把目光从Spring Cloud转向云原生系的k8s Istio了么?乍一看,有一丝不解,Java大军?Spring Cloud?Kubernetes?Serv…

云原生背景下故障演练体系建设的思考与实践—云原生混沌工程系列之指南篇

简介:生产环境的突袭演练是我们迈出的艰难但有力的一步,锻炼了研发运维人员的应急响应能力,在真实用户场景下锤炼系统,推进了产品的轮班制度,提升了云原生底座的稳定性和竞争力。 作者:智妍(郑…

Spring Boot Serverless 实战系列“部署篇” | Mall 应用

简介:本篇中为各位讲述如何将 Mall 应用部署到函数计算平台上。为了让分析更有代表性,我选择了 Github 上 star 数超过 50k 的电商应用 mall 作为示例。 作者:西流 导读:Spring Boot 是基于 Java Spring 框架的套件,它…

押宝云原生,Ampere Computing打响服务器芯片变革关键一枪

“闯龙潭,越虎穴”这句话用来形容在服务器领域披荆斩棘的Arm架构服务器器芯片似乎最为合适不过。所谓“龙潭”“虎穴”指的便是雄霸服务器芯片市场数载的intel与AMD,而他们所属的x86架构,更是数据中心芯片领域的绝对主流。然而云原生时代的到…

阿里云实时数仓Hologres年度发布,解读数仓新趋势

简介:阿里云实时数仓Hologres年度发布,解读数仓新趋势。 1月7日,阿里云实时数仓Hologres发布最新版本,在成本、可用性、在线高可用等多方面进行了能力升级,行存吞吐提升100%,列存吞吐提升30%,支…

服务发现与配置管理高可用实践

简介:本篇是微服务高可用最佳实践系列分享的开篇,系列内容持续更新中,期待大家的关注。 作者:三辰|阿里云云原生微服务基础架构团队技术专家,负责 MSE 引擎高可用架构 本篇是微服务高可用最佳实践系列分享…

联想首次详解混合云Lenovo xCloud五大优势,如何打造智能化数字底座

多年积累之后,联想混合云品牌Lenovo xCloud主打云原生、智能运维、私有云、多云管理4大产品家族,9款通用解决方案,覆盖客户“建云、上云、用云和管云”的全部场景 6月10日,联想举办“弹性韧性悟性——多云混合时代Lenovo xCloud提…

阿里云何川:开放兼容的云,计算巢帮助合作伙伴云化升级

简介:保障业务稳定性,提供安全的云上互联网,助力合作伙伴实现规模化,打通多渠道分发。 12月21日,在阿里云弹性计算年度峰会上,阿里云弹性计算高级产品专家何川发表了题为《开放兼容的云,计算巢…

只用两个自定义 Hooks 就能替代 React-Redux ?

作者 | 👽来源 | 前端Sharing前言之前有朋友问我,React Hooks 能否解决 React 项目状态管理的问题。这个问题让我思索了很久,最后得出的结论是:能,不过需要两个自定义 hooks 去实现。那么具体如何实现的呢?…

java queue源码_Java高并发系列之ArrayBlockingQueue源码解析

JUC包下定义了一个接口:BlockingQueue。其实现类有ArrayBlockingQueue等。本文先来介绍一下ArrayBlockingQueue。从字面可以看出,ArrayBlockingQueue是一种基于数组的阻塞队列,阻塞队列在线程池中会经常使用到。首先来看看ArrayBlockingQueue…

圆桌对话:云时代下,企业运维面临的挑战与机遇

简介:四位企业运维大咖展开对话,讨论“云时代下,企业运维面临的挑战与机遇”。 编者按:上云,已经成为了企业势不可挡的选择。云计算所拥有的“软件定义一切”的特性,推动了敏捷弹性、DevOps、智能运维和基…

揭晓阿里云神龙团队拿下TPCx-BB排名第一的背后技术

简介:近日,TPC Benchmark Express-BigBench(简称TPCx-BB)公布了最新的世界排名,阿里云自主研发的神龙大数据加速引擎获得了TPCx-BB SF3000排名第一的成绩。TPCx-BB测试分为性能与性价比两个维度。其中,在性能维度,在本…

聊聊分布式一致性算法协议 Paxos

作者 | 码哥字节来源 | 码哥字节Google的粗粒度锁服务Chubby的设计开发者Burrows曾经说过:所有一致性协议本质上要么是Paxos要么是其变体。网上有很多讲解Paxos算法的文章,但是质量层次不齐。今天笔者带大家深入聊一下PaxosPaxos是什么?Paxos…

java jdk myeclipse_java初体验(JDK+myeclipse)

前一段时间突击了C语言,主要是针对文件的操作,学习C的目的就是利用C处理oracle数据文件,在脱离oracle软件的情况下,提取出特定表的数据。行链接和行迁移再加上cluster表搞的头大,暂且一放,学习下java,了解下…

专访阿里云王伟民:一站式全链路,阿里云向云原生数据库2.0跃迁

简介:阿里云连续第二年进入Gartner《全球云数据库魔力象限》领导者象限,意味着国产数据库正在迅速崛起。 数据库与操作系统、中间件并称为基础软件,“核高基”中的“基”指的就是这三类基础软件产品,它们在软件产业中有举足轻重的…

媒体声音 | 云数据库,谁才是领导者?

简介:你们从2021年Gartner云数据库管理系统魔力象限中看到了什么…… 2021年新冠疫情进入第二年,对全球的社会、经济而言是不平凡之年,这句话也可用于概括云数据库的发展。随着中国厂商逐步进入全球云数据库市场重要舞台,我们也看…