Linus 本尊也来了!为什么 KubeCon 越来越火了?

Stella981
• 阅读 606

2015 年 11 月,第一届 KubeCon 在美国旧金山开始的时候,还只是个 200 人的小会议,2019 年的 7 月,KubeCon 第二次在中国举办,就有 3500 多位云原生、开源领域工程师齐聚一堂。 连 Linux 及 Git 创始人 Linus Torvalds 本人都来到 KubeCon China 上海现场。Linux 基金会执行董事 Jim Zemlin 说道:我鉴证了开源圈子的两大事件:一个是 Linux 的成功,一个就是 Kubernetes 和云原生的大爆发。开源是历史上最成功的全球创新推动者之一,Linux 已经成长为世界上最重要的软件平台,而云原生正以势不可挡之势爆发。

中国在整个云原生运动中贡献巨大,中国的 K8s contributors 已经在全球所有贡献者中排名第二,超过 10% 的 CNCF 会员来自中国,26%的 Kubernetes 的认证供应商来自中国。

阿里云作为最早成为 CNCF member 的中国公司之一,一直在云原生技术领域不停地实践和探索。在阿里云已经是铂金会员的基础上,蚂蚁金服也最新加入 CNCF 成为黄金会员。

本次 KubeCon China,阿里云又发布了什么黑科技呢?

亮点1:拥抱社区,服务最广泛开发者-云原生应用管理与交付体系发布

整个云原生应用管理与交付体系包含五大项目,本次 KubeCon 两大项目率先亮相:国内首个开放云原生应用中心 - Cloud Native App Hub;云原生应用自动化引擎 – OpenKruise。

开放云原生应用中心 - Cloud Native App Hub

Cloud Native App Hub希望成为云原生“高速公路”上的托管和分发应用的集散地。为了能够让中国的开发者更好的使用 Helm Hub 的能力,阿里云开发者中心与 Helm 社区达成了一系列技术合作,在开放云原生应用中心提供了国内首个 Helm Hub 北美官方站的同步镜像仓库与 Hub 站点。
 
开放云原生应用中心,是云原生“高速公路”上的托管和分发应用的集散地,同时也是国内开发者使用云原生应用的重要基础仓库。在 Kubernetes 生态中,“应用”是一组 YAML 格式的描述文件,而云原生应用中心,则为搜索、使用和分享这些应用描述文件提供了一个完全开源与开放的交互平台。
 
在当前的 Kubernetes 应用生态当中,Helm 是目前最被广泛使用的应用定义标准之一。所以在本次云原生应用中心的发布当中,对 Helm 格式应用的托管、搜索和分发能力成为了中心首次上线的能力。
 
而为了能够让中国的开发者更好的使用 Helm Hub 的能力,阿里云开发者中心与 Helm 社区达成了一系列技术合作,在开放云原生应用中心提供了国内首个 Helm Hub 北美官方站的同步镜像仓库与 Hub 站点。与此同时,Helm Hub 官方也在其核心 Charts 仓库中推荐了“开放云原生应用中心”作为中国开发者使用 Helm Charts 的首选。
 
在开放云原生应用中心当中,所有默认的 Helm Charts(Helm 格式的应用),都定时同步自 Helm Hub 北美官方站并托管在 Github 上。在这个过程中, 云原生应用中心会自动对同步过来的所有 Charts 进行“本地化”操作,包括将 gcr.io,qury.io 等访问不畅的镜像 URL 替换成国内镜像源;将托管在 Google Cloud 存储中的应用制品 URL 替换为国内镜像地址,并且不间断的通过后台 CI 系统在阿里云 Kubernetes 服务中验证这些 Charts。
 
这些技术工作,都将使得中国的开发者终于可以随心所欲的搜索云原生应用,然后直接使用 helm install 命令将这些应用安装在全世界任何一个 Kubernetes 集群当中。

特别值得一提的是,开放云原生应用中心使用的后端存储服务,正是阿里云用以支撑“双十一”峰值交易所使用的阿里云企业级容器镜像服务。这个服务背后,是托管阿里巴巴集团 10万镜像、支撑共计 2 亿次的容器镜像下载量的核心技术积累。
 
除此之外,云原生应用中心还提供了“一键安装”体验功能,用户只需要提供远端 Kubernetes 集群的接入信息即可一键将应用部署过去。

OpenKruise-云原生应用自动化引擎

在阿里巴巴经济体的整体云原生化过程当中,阿里的技术团队逐渐沉淀出了一套紧贴上游社区标准、适应互联网规模化场景的技术理念与最佳实践。这其中,最重要的无疑是如何对应用进行自动化的发布、运行和管理。

Kruise 是 cruise的谐音,'k' for Kubernetes. 字面意义巡航,豪华游艇。寓意Kubernetes上应用的自动巡航,满载阿里巴巴多年应用部署管理经验。Kruise 的目标是automate everything on Kubernetes !  Kruise 项目源自于阿里巴巴经济体应用过去多年的大规模应用部署、发布与管理的最佳实践,源于容器平台团队对集团应用规模化运维,规模化建站的能力,源于阿里云Kubernetes服务数千客户的需求沉淀。Kruise 借力于云原生社区,集成阿里巴巴云原生实践之精华,反哺社区,指引业界云原生化最佳实践,少走弯路。
 
Kruise 核心在于自动化,我们将从不同维度解决 Kubernetes 之上应用的自动化,包括,部署,升级,弹性扩缩容,Qos 调节,健康检查,迁移修复等等。此次 Kruise 开源的内容主要在应用部署,升级方面,即一套增强版 controller 组件用于应用的部署和级和运维。后续,Kruise 会依次开源智能化的弹性扩缩容组件,以及应用 Qos 自调节能力的组件等。
 
以下内容主要介绍 Kruise Controllers - 一套用于 Kubernetes 之上应用自动化部署管理的 controller 组件。
 
众所周知,Kubernetes 项目的核心原理,就是“控制器模式”。

目前,Kubernetes 项目默认已经提供了一套 Controller 组件,例如 Deployment, Statefulset, DaemonSet 等,这些 Controller 提供了比较丰富的应用部署和管理功能。但是,随着 Kubernetes 的使用范围越来越广,真实的企业与规模性场景中的业务诉求与上游 Controller 功能不匹配的情况也越来越常见。以阿里巴巴为例:阿里巴巴内部的Kubernetes 集群需要服务涵盖几个 BU,上万种应用。这个体量非常庞大,对规模性和高可用性带来了巨大的挑战。与此同时,阿里云上的 Kubernetes 服务也接入了上千家企业客户,收集并支撑了各种各样的客户需求。这些诉求与最后阿里经济体的实践经验,最终促成了 Kruise 开源项目的诞生。

亮点2:托管边缘容器(ACK@Edge)发布

随着互联网智能终端设备数量的急剧增加,以及 5G 和物联网时代的到来,传统云计算中心集中存储、计算的模式已经无法满足终端设备对于时效、容量、算力的需求,将云计算的能力下沉到边缘侧、设备侧,并通过中心进行统一交付、运维、管控,将是云计算的重要发展趋势。IDC 预计,到 2020 年全球将有超过 500 亿的终端与设备联网,超过40%的数据要在网络边缘侧进行分析、处理与存储,这对边缘计算提供了充分的场景和想象空间。

边缘计算按功能角色主要分为三个部分:
云 – 传统云计算的中心节点,有丰富的云计算产品形态和资源,是边缘计算的管控端,负责全网算力和数据的统一管理、调度、存储。
边 – 云计算的边缘侧,又分为基础设施边缘(Infrastructure Edge)和设备边缘(Device Edge)。基础设施边缘通常位于IDC内,拥有充足的算力和存储容量,和中心有专线或骨干网连接,如 CDN 节点等;设备边缘通常指非传统IT基础设施的边缘节点,这类资源更靠近设备和数据源,比较常见的一般是数据网关。
端 – 终端设备,如手机、智能家电、各类传感器、摄像头等。

边缘计算目前面临的主要挑战有:

  • 云边端协同:缺少统一的交付、运维、管控标准。
  • 安全:边缘服务和边缘数据的安全风险控制难度较高。
  • 网络:边缘网络的可靠性和带宽限制。
  • 异构资源:对不同硬件架构、硬件规格、通信协议的支持,以及基于异构资源、网络、规模等差异化提供标准统一的服务能力的挑战。

另一方面,以 Kubernetes 为代表的云原生技术(Cloud native)是最近几年云计算领域发展最快的方向之一,K8s 也已经成为容器应用编排的事实标准,并以非常快的发展速度扩大在云计算领域的覆盖范围,云原生技术和边缘计算相结合,可以大大提升云技术向边缘拓展的效率。

以 Kubernetes 为基础的云原生技术,核心价值之一是通过统一的标准实现在任何基础设施上提供和云上一致的功能和体验,借助云原生技术,可以实现云-边-端一体化的应用分发,解决在海量边、端设备上统一完成大规模应用交付、运维、管控的诉求;在安全方面,云原生技术可以提供容器等更加安全的工作负载运行环境,以及流量控制、网络策略等能力,能够有效提升边缘服务和边缘数据的安全性;在边缘网络环境下,基于云原生技术的边缘容器能力,能保证弱网、断网的自治性,提供有效的自恢复能力,同时对复杂的网络接入环境有良好的兼容性;依托云原生领域强大的社区和厂商支持,云原生技术对异构资源的适用性逐步提升,在物联网领域,云原生技术已经能够很好的支持多种 CPU 架构(x86-64/arm/arm64)和通信协议,并实现较低的资源占用。

在这样的背景下,阿里云发布 ACK@Edge, 致力于实现云-边-端一体化协同,通过非侵入增强方式,完美拓展云原生的边界。

随着 5G 和物联网时代的到来,云计算的边界也不断扩展。阿里云 ACK@Edge 依托阿里云 Kubernetes 托管服务构建,打造通用的边缘容器云原生基础设施,适用场景广泛。基于主流云原生非侵入式设计原则,实现云边一致体验。同时,原生 +addons 的组合非常有利于业务快速集成及扩展。在构建 IoT 和 CDN 领域的 PaaS 时,不会增加额外的边缘资源成本和维护成本。

ACK@Edge 是致力于云边端一体的云原生边缘容器产品。边缘集群托管服务助力构建云原生边缘计算基础设施,推动云产品云边一体化;向上作为底座支撑边缘计算领域 PaaS 构建;向下支持 ENS、IoT 自有节点等边缘算力资源接入,并支持边缘自治、边缘安全容器、边缘智能等;同时也致力打造云端AI、流计算等能力向边缘下沉的通道和平台,拓宽云产品边界。随着边缘计算的需求爆发,以及 IoT、CDN 等边缘场景规模的逐步壮大,ACK@Edge 将持续在规模性、稳定性方面发力,助力提升边缘计算业务创新效率。

亮点3:9 年技术沉淀:打造世界规模最大的云原生应用实践

阿里巴巴是国内最早布局云原生技术的公司。早在 2011 年,在业界提出云原生概念之前,阿里巴巴就开始了容器技术的探索,目前集团内部电商、城市大脑等核心业务已经大规模使用云原生技术。
 
其中双11 被认为是世界上最大规模的云原生应用实践。去年双11 在线服务完成了全部容器化,10 分钟内 1000+台服务器的快速部署,容器部署规模达到百万级,成功应对 32.5万笔/秒的交易峰值。截至目前,阿里巴巴集团内部容器镜像服务负责托管 10 万镜像,并累积了 2 亿次镜像下载量。
 
与此同时,这一技术能力正在不断向外输出,阿里云正在将内部积累的全链路压测、极速弹性扩缩容经验服务。拥有国内最大公共云容器集群,国内最大公有镜像仓库,最丰富的场景最佳实践。
 
以电商领域为例,企业可以通过云原生架构简化云上预演及实战,提升应对流量高峰的效率及可靠性。通过 ACK 在容器应用层面实现业务高弹性,还可以通过 PolarDB 实现数据库的横向纵向扩缩容,通过 PTS 性能测试服务模拟真实业务流量进行全链路压力测试。
 
阿里巴巴 All in Cloud,沉淀并实现了云原生能力全面升级。更值得一提的是,阿里云拥有业界领先的云原生能力技术栈,是国内唯一进入 2019 年 Gartner《公有云容器服务竞争格局》的企业。

阿里云致力深耕开源社区,将经验精华提炼并形成开源代码回馈生态。此前,阿里云容器平台团队提供过涵盖Kubernetes、Networking、Logs、应用容器化、Serverless、AI 等多个方向的开源组件 20 余项,如高性能网络插件 Terway、深度学习加速器Arena、共享 GPU 调度 GPU Sharing 等。
 
如今,越来越多的企业都开始向“云原生”演进,阿里云不断打磨、沉淀和升级云原生技术能力,期望通过标准、高效、和易用的方式,助力广大开发者和用户带以实现更大的业务价值。

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

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这