在日前的KubeCon 2020中国线上峰会上,VMware中国研发中心架构师、Harbor项目创始人和维护者张海宁,和网易数帆轻舟事业部架构师、Harbor维护者裴明明,共同分享了如何在多云和多集群环境下高效率高质量地交付应用。(点击这里,了解Harbor项目张海宁介绍了应用交付的模型,面临的主要问题,以及如何使用云原生的方法实现应用的定义和交付。裴明明则通过网易轻舟云原生应用交付平台的设计与实践,详细解释了多云和跨集群环境下的应用交付的核心要素、应用场景与业务收益。

问题:云原生应用交付面临四大挑战

根据 CNCF定义的应用交付模型,包括应用定义与封装、应用部署与Rollout、workload 实例自动化与运维和平台等四个层面。这是一个复杂的流程,需要了解 Kubernetes 云原生技术生态体系的各种操作和概念。从整体上看,云原生技术体系下研发人员需要面对应用的定义、应用的简单管理、应用的监控和应用的运维等四个方面的挑战。

裴明明解释说,从应用交付流程来看,创建一个应用的时候,首先需要创建与应用本身相关的和与运维相关的大量资源,其次需要关注一些运维相关的概念,因为 Kubernetes 平台对 Workload 的定义是把研发和运维视为一个整体的,所以交付平台研发人员可能需要考虑如何分离研发和运维两种不同的角色,并将应用周边的资源作为一个整体管理好。

而在资源定义好之后,应用交付实际上也是对资源的操作与分发。这个时候还需要三个方面的保证,首先要保证分发的资源与创建出来的实例是一致的,其次需要资源分发过程有很多可选策略,以保证资源分发的效率和应用交付的可靠性,再次则要保证多云和多集群的环境下的支持——所谓云原生,计算资源应该是没有边界的,不管公有云、私有云还者是混合云资源,都可以使用。

破局:网易轻舟面向交付过程的设计

网易轻舟是基于网易云原生应用实践打造的一个云原生软件生产力平台,该平台主要提供微服务治理、DevOps、云原生中间件等能力,并通过网易数帆开放给行业客户使用,帮助这些客户快速获得云原生软件生产能力,从而为数字化业务推进提质增效。

在应用交付方面,网易轻舟平台基于 Kubernetes、Docker、Harbor 等开源技术打造云原生应用交付能力,借助 Kubernetes 的抽象能力,实现应用资源、应用开发、应用运维的统一管理,让用户可以灵活地操作自己的业务应用。

为了更有效地定义应用资源,网易轻舟基于 Kubernetes 和 Helm Chart 将资源聚合分类为 Deployment、Router、AutoScaling、Config 等,把这些应用相关的资源设计成 Kubernetes 上的 CRD,以便于用户定义资源和交付应用。

裴明明进一步介绍,网易轻舟基于应用交付过程定义资源,Workload 是应用交付的核心,围绕这个核心是路由规则、自动扩缩容等在应用交付过程中易变的资源,也是次核心资源,外围则是一些静态资源,如日志配置、网络配置、存储管理等,一次配置完成之后基本上不会再变更。这是一个面向应用交付过程的设计,把交付过程中需要频繁干预的资源归为一类,不需要频繁干预的资源归为一类,通过这样的归类可以较好地组织交付流程。

网易轻舟的实践,是通过模板(Template)来定义 Workload,把一些需要修改的点抽象出来,交给另外的角色去做——通常 Template 由运维工程师定义,由开发工程师使用,这样可以做到开发和运维的一些概念的分离。

在整个应用交付的过程中,网易轻舟通过一个代理层将应用的定义转换成一些具体的资源,并驱动应用交付流程往后进行。除了资源的实际操作,代理层的另一个功能,是监控和调整应用下面的资源,让实际资源与定义保持一致。

此外,在流量控制方面,网易轻舟实现了应用交付与 Service Mesh 的整合,聚合不同 Service Mesh 集群的服务,统一对外提供服务,使得业务访问更加轻松。

裴明明表示,网易轻舟跨集群应用交付实践中,用户实际上面对的是整个应用的视图,不需要关心应用的具体部署,对用户而言,应用和服务都是一个整体;另外一个好处,在运维的时候,运维工程师可以从应用的视角去管理不同集群上的资源,比较方便的看到这些资源的关联。

收益:多云和跨集群应用交付的四大利好

裴明明最后总结了网易轻舟多云和多集群环境下的应用交付的应用场景和收益。

首先是容灾,利用网易轻舟支持多云部署的能力,实现跨机房部署业务应用,当其中一个机房宕机时,另外一个机房的服务仍然可以继续访问,从而保证服务的可靠性。

其次是资源弹性。在资源比较紧张的时候,用户可以借助网易轻舟把应用弹到任意一个公有云或者是私有云,从而可以利用更多的资源。

再次是区域相关性的访问和服务隔离。通过网易轻舟将应用部署在不同的集群中,再借助一些环境标识之类的信息去访问指定的服务。

第四是降低应用交付的复杂性。因为网易轻舟应用交付整个流程都是自动驱动的,所以可以有效地减少各种复杂的操作,同时应用交付的效率也可以得到提升。

顶级技术盛会KubeCon 2020,网易轻舟布道多云环境云原生应用交付的更多相关文章

  1. ​第3届云原生技术实践峰会(CNBPS 2020)重磅开启,“原”力蓄势待发!

    CNBPS 2020将在11月19-21日全新启动!作为国内最有影响力的云原生盛会之一,云原生技术实践峰会(CNBPS)至今已举办三届. 在2019年的CNBPS上,灵雀云CTO陈恺喊出"云 ...

  2. 规模化落地云原生,阿里云即将重磅亮相 KubeCon China

    2019 年 6 月 24 日至 26 日, 由 Cloud Native Computing Foundation (CNCF) 主办的云原生技术大会 KubeCon + CloudNativeCo ...

  3. DTCC 2020 | 阿里云李飞飞:云原生分布式数据库与数据仓库系统点亮数据上云之路

    简介: 数据库将面临怎样的变革?云原生数据库与数据仓库有哪些独特优势?在日前的 DTCC 2020大会上,阿里巴巴集团副总裁.阿里云数据库产品事业部总裁.ACM杰出科学家李飞飞就<云原生分布式数 ...

  4. 《CNCF × Alibaba云原生技术公开课》知识点自测(一):第一堂“云原生”课

    (单选)1.容器启动后,我会时常 SSH 进入到容器里然后写很多文件.请问这破坏了云原生理念了吗? A. 否   B. 是 (单选)2.云原生架构必须选型 Kubernetes 方案. A. 否  B ...

  5. CNCF 旗下首个为中国开发者量身打造的云原生课程,《CNCF x Alibaba 云原生技术公开课》即将上线

    伴随着以 Kubernetes 为代表的云原生技术体系的日益成熟以及 CNCF 生态的逐渐壮大,“云原生”已然成为了未来云计算时代里一个当仁不让的关键词.但是,到底什么是“云原生”?云原生与 CNCF ...

  6. 云原生技术赋能ISV实现应用现代化

    日前,由BP商业伙伴主办,中国开源云联盟和云原生应用现代化联盟协办的2021-2022云计算生态峰会成功举办.头部ISV代表.最终用户和云原生技术专家等与会各方围绕"云原生技术赋能ISV&q ...

  7. 大会聚焦 | 开源技术盛会LinuxCon首次来到中国,大咖齐聚关注业界动态

    2017年6月19-20日,开源技术盛会LinuxCon + ContainerCon + CloudOpen(LC3)首次在中国举行.两天议程满满,包括 17 个主旨演讲.8 个分会场的 88 场技 ...

  8. MongoDB全球云端技术盛会MongoDB.live

    MongoDB全球云端技术盛会MongoDB.live,将于北京时间6月9日22:00正式开启,大会将以在线直播+按需学习相结合的方式,面向全球开发者.架构师等MongoDB 用户和爱好者免费开放,精 ...

  9. “行业客户云原生最佳实践日” 亮相KubeCon上海

    2018年11月13日至15日,由CNCF主办的KubeCon + CloudNativeCon将首次登陆中国上海,这是全球范围内规模最大的Kubernetes和云原生技术盛会. 唯一聚焦客户实践的分 ...

随机推荐

  1. [并发编程] -- 内存模型(针对JSR-133内存模型)篇

    并发编程模型 1.两个关键问题 1)线程之间如何通信 共享内存程之间共享程序的公共状态,通过写-读内存中的公共状态进行隐式通信 消息传递程之间没有公共状态,线程之间必须通过发送消息来显式进行通信 2) ...

  2. 黎曼函数ζ(2n)的几种求法

    \(\zeta (2n)\)的几种求法 目录 $\zeta (2n)$的几种求法 结论 欧拉的证明 进一步探索,$\zeta$ 函数.余切.伯努利数的关系 傅立叶分析证明 留数法证明 参考资料 结论 ...

  3. 如何消灭飞机的“黑色十分钟”,AI来帮忙

    近年来,“AI的应用和落地”逐渐成了具化的关键词,它和很多事物很多行业结合在一起,形成了奇妙的“化学反应”.例如,在日常生活中,AI可以推送我们喜欢的新闻或视频,可以在拍照的时候识别场景提升照片的美感 ...

  4. 羞羞的Python模块包

    目录 一.pip 二.pip常用命令 三.No module 'xxxxx' 四.写在最后   前言 写Python代码的时候,经常会遇到包的问题,但是都是遇到一次,搜索一次,解决了.下一次还是同样的 ...

  5. 16 . Go之网络编程

    互联网的本质 两台计算机之间的通信与两个人打电话原理是一样的. # 1. 首先要通过各种物理连接介质连接 # 2. 找准确对方计算机(准确到软件)的位置 # 3. 通过统一的标准(一般子协议)进行数据 ...

  6. HTML学习汇总

    HTML学习大汇总 (1)HTML概述 Html(超文本标记语言): 用文字来描述的标签语言,用文字来描述网页的一种语言. HTML是 HyperText Mark-up Language 的首字母简 ...

  7. java基础(五)--基本数据类型、占用字节、数值范围

    一.Java基本数据类型 基本数据类型有8种:byte.short.int.long.float.double.boolean.char 分为4类:整数型.浮点型.布尔型.字符型. 整数型:byte. ...

  8. Day11_基本搜索

    学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"乐优商城"获取视频和教程资料! b站在线视频 0.学习 ...

  9. Python 字典(Dictionary) len()方法

    Python 字典(Dictionary) len()方法 描述 Python 字典(Dictionary) len() 函数计算字典元素个数,即键的总数.高佣联盟 www.cgewang.com 语 ...

  10. PHP uniqid() 函数

    实例 生成一个唯一的 ID: <?phpecho uniqid();?>高佣联盟 www.cgewang.com 定义和用法 uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ...