顶级技术盛会KubeCon 2020,网易轻舟布道多云环境云原生应用交付
在日前的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,网易轻舟布道多云环境云原生应用交付的更多相关文章
- 第3届云原生技术实践峰会(CNBPS 2020)重磅开启,“原”力蓄势待发!
CNBPS 2020将在11月19-21日全新启动!作为国内最有影响力的云原生盛会之一,云原生技术实践峰会(CNBPS)至今已举办三届. 在2019年的CNBPS上,灵雀云CTO陈恺喊出"云 ...
- 规模化落地云原生,阿里云即将重磅亮相 KubeCon China
2019 年 6 月 24 日至 26 日, 由 Cloud Native Computing Foundation (CNCF) 主办的云原生技术大会 KubeCon + CloudNativeCo ...
- DTCC 2020 | 阿里云李飞飞:云原生分布式数据库与数据仓库系统点亮数据上云之路
简介: 数据库将面临怎样的变革?云原生数据库与数据仓库有哪些独特优势?在日前的 DTCC 2020大会上,阿里巴巴集团副总裁.阿里云数据库产品事业部总裁.ACM杰出科学家李飞飞就<云原生分布式数 ...
- 《CNCF × Alibaba云原生技术公开课》知识点自测(一):第一堂“云原生”课
(单选)1.容器启动后,我会时常 SSH 进入到容器里然后写很多文件.请问这破坏了云原生理念了吗? A. 否 B. 是 (单选)2.云原生架构必须选型 Kubernetes 方案. A. 否 B ...
- CNCF 旗下首个为中国开发者量身打造的云原生课程,《CNCF x Alibaba 云原生技术公开课》即将上线
伴随着以 Kubernetes 为代表的云原生技术体系的日益成熟以及 CNCF 生态的逐渐壮大,“云原生”已然成为了未来云计算时代里一个当仁不让的关键词.但是,到底什么是“云原生”?云原生与 CNCF ...
- 云原生技术赋能ISV实现应用现代化
日前,由BP商业伙伴主办,中国开源云联盟和云原生应用现代化联盟协办的2021-2022云计算生态峰会成功举办.头部ISV代表.最终用户和云原生技术专家等与会各方围绕"云原生技术赋能ISV&q ...
- 大会聚焦 | 开源技术盛会LinuxCon首次来到中国,大咖齐聚关注业界动态
2017年6月19-20日,开源技术盛会LinuxCon + ContainerCon + CloudOpen(LC3)首次在中国举行.两天议程满满,包括 17 个主旨演讲.8 个分会场的 88 场技 ...
- MongoDB全球云端技术盛会MongoDB.live
MongoDB全球云端技术盛会MongoDB.live,将于北京时间6月9日22:00正式开启,大会将以在线直播+按需学习相结合的方式,面向全球开发者.架构师等MongoDB 用户和爱好者免费开放,精 ...
- “行业客户云原生最佳实践日” 亮相KubeCon上海
2018年11月13日至15日,由CNCF主办的KubeCon + CloudNativeCon将首次登陆中国上海,这是全球范围内规模最大的Kubernetes和云原生技术盛会. 唯一聚焦客户实践的分 ...
随机推荐
- 题解 洛谷 P4632 【[APIO2018] New Home 新家】
首先考虑可以用二分答案来解决询问,可以二分一个长度\(len\),若在区间\([x-len,x+len]\)内包含了所有\(k\)种的商店,那么这个\(len\)就是合法的,可以通过二分来求其最小值. ...
- Problem C: 计算机类
Description 定义一个Computer类,有两个属性: 1. 字符串属性name,用于表示计算机的名字. 2. 静态整型属性cnt,用于记录产生的计算机对象的个数. 至少有如下成员函数: 1 ...
- Day15_用户注册
学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"乐优商城"获取视频和教程资料! b站在线视频 0.学习 ...
- Python os.tcgetpgrp() 方法
概述 os.tcgetpgrp() 方法用于回与终端fd(一个由os.open()返回的打开的文件描述符)关联的进程组.高佣联盟 www.cgewang.com 语法 tcgetpgrp()方法语法格 ...
- PHP localeconv() 函数
实例 查找美国本地的数字格式化信息: <?php setlocale(LC_ALL,"US"); $locale_info = localeconv(); print_r($ ...
- JDBC(3)-数据库事务
一.环境搭建(复习) 首先建立lib目录然后要把对应的jar包导进来 然后就是jdbc.properties文件 user=root password=123456 url=jdbc:mysql:// ...
- 【HNOI2010】弹飞绵羊 题解(分块)
前言:其实这个题是用LCT做的,但蒟蒻因为太弱了,只会分块QAQ. ----------------------------- 题目链接 题目大意:给定$n$个装置,每个装置有弹力系数$k_i$,即在 ...
- 【HDU5869】 Different GCD Subarray Query 题解 (线段树维护区间GCD)
题目大意:求区间$[L,R]$中所有子区间产生的最大公因数的个数. ------------------------- 对于$gcd$,我们知道$gcd(a,b,c)=gcd(gcd(a,b),c)$ ...
- 用MPI进行分布式内存编程(1)
<并行程序设计导论>第三章部分程序 程序3.1运行实例 #include<stdio.h> #include<string.h> #include<mpi.h ...
- 用 Python 下载抖音无水印视频
说起抖音,大家或多或少应该都接触过,如果大家在上面下载过视频,一定知道我们下载的视频是带有水印的,那么我们有什么方式下载不带水印的视频呢?其实用 Python 就可以做到,下面我们来看一下. 很多人学 ...