在日前的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. 关于IDEA的一些快捷键操作

    shift+F6修改实体类中的属性会重构代码

  2. 完美解决pycharm 不显示代码提示问题

    pycharm 不显示代码提示 1.检查IDE省电模式是否关闭状态!!! file → power save mode 取消掉 2.检查代码提示是否成功开启. setting → Inspection ...

  3. git上传本地项目到gitlab

    <1>输入git config --global user.name "你的用户名" <2>输入git config --global user.email ...

  4. jQuery中常用网页效果应用

    一.常用网页效果应用 1.表单应用 表单由表单标签.表单域和表单按钮组成. 1.1单行文本框应用 例:获取和失去焦点改变样式 首先,在网页中创建一个表单,HTML代码如下 <form actio ...

  5. SQL 更新删除

    -- 插入数据 INSERT INTO [ Salary ] VALUES(25451,4545,45 ) INSERT INTO [ Salary ] (编号,收入,支出) VALUES(25451 ...

  6. ~~网络编程(四):socket套接字~~

    进击のpython ***** 网络编程--socket socket的中文意思叫做套接字,socket方法其实也叫套接字方法 我们研究过TCP/UDP协议,但是要是让我们自己搭建,就十分困难了 而这 ...

  7. springboot+quartz以持久化的方式实现定时任务

    springboot+queue以持久化的方式实现定时任务 篇幅较长,耐心的人总能得到最后的答案 小生第一次用quartz做定时任务,不足之处多多谅解. 首先 在springboot项目里做定时任务是 ...

  8. 关于调用三方平台接口与推送接口的总结<二>(2020.7.27)

    前言:本篇博客是接着上篇总结写的,想了解怎么对接第三方平台接口的同学可以看我上一篇博客,地址是  https://www.cnblogs.com/alanturingson/p/13377500.ht ...

  9. Java容器学习之List

    List接口继承了Collcetion接口,Collection接口又继承了超级接口Iterable,List是有序列表,实现类有ArrayList.LinkedList.Vector.Stack等. ...

  10. ubuntu18.04安装opencv+CUDA10.2+cuDNN+YOLOv3

    安装顺序: Opencv 显卡驱动 CUDA10.2 cuDnn YOLOv3 1.Opencv3.2.0安装 搭建依赖环境 sudo apt-get install build-essential ...