标签 云原生 下的文章

云原生是什么?

技术圈总是在不停地蹦各种新名词。也不知道从什么时候开始,人们慢慢不怎么提“云计算”这个名词了,而是频繁提到一个新名词“云原生”,好像不这么提就不足以体现云计算原住民的身份。不过,要真的问什么是“云原生”,其实很多人都说不太清楚。随着云原生生态如火如荼的发展,甚至连 CNCF 官方都觉得有必要专门做个定义出来:

前一段时间,我在云栖大会上见到了阿里云的李响,就有人问他,“怎么理解‘云原生’?”作为 CNCF 的技术监督委员会成员的李响,以他的角度对此作了阐释:

“我觉得云原生本身实际上就是比较泛的概念,它最终的目标就是利用云上的资源、云上的服务来重构软件开发以及运行时的生命周期。简而言之就是怎么更好利用云。……随着云的发展,云原生本身也会有一些变化,大家接受云原生的理念和实现云原生的情况也会有变化。……我觉得不用太把云原生本身在一个框框里圈定,它更多还是一个核心的概念——更好地利用云释放云的红利,产生相关的技术让大家去实践。”

在我看来,虽然现在云原生的概念的内涵和外延都在不断的变化当中,但是不可否认的是,云计算生态已经从最初的巨石应用、刚性的分布式计算逐渐演变到原生地基于云计算环境进行设计、开发、部署、运维和弹性伸缩。可以说,云原生重新定义了云计算。

借助于云原生技术,一个计算系统可以很便捷的从一个环境中迁移至另外一个环境当中,而这在之前几年,几乎还是不可想象的。就这个场景,阿里云举了一个例子:比如像三维家,他们在上海云栖大会上宣布了全站上云的消息,因为他们已经应用了云原生的方式,仅花了三天把全部业务迁到阿里云上。而在迁移之后,三维家现在可以利用云原生的方式可以充分发挥云计算的弹性,三分钟之内就可以创建 100 个神龙节点去应对突发的业务需求,极大提升企业 IT 的灵活性,并且降低了 IT 成本。三维家表示,“阿里云的容器生态系统打造得非常完善,从监控、日志、服务暴露、应用拓扑、伸缩扩容方面能够做的更加灵活;基础设施的建设和维护稳定性交给阿里云,目前没有出现过问题。”

云原生进化

今年我参加云栖大会,有一个明显的感受就是,阿里云在不断的大声谈论云原生。事实上阿里云早已是云原生计算基金会的成员(现在是白金成员),也在这个领域耕耘良久,但是今年,无论是多到你参加不过来的各种主题演讲,还是各种产品和服务的消息,都在不断的讲,云原生、云原生……

在过去大家更多是把互联网和移动互联网的应用,大部分是无状态应用部署在容器平台之上,今年越来越多的企业开始把有状态的应用、交易类的应用以原生化的方式进行交付,进行自动化的运维。

这次云栖大会上阿里云还发布了 ACK 2.0。ACK 是阿里云容器服务 Kubernetes 版,它提供了高性能可伸缩的容器应用管理能力,支持企业级 Kubernetes 容器化应用的全生命周期管理,简化了集群的搭建和扩容等工作,整合了阿里云虚拟化、存储、网络和安全能力,以打造云端最佳的 Kubernetes 容器化应用运行环境。

关于阿里云容器服务,阿里云的易立说,从 2015 年底公测、2016 年中正式上线到现在的 4 年时间发展非常快,现在已经覆盖了阿里云全球 20 个地域,支撑了国内外数千家客户的生态系统。同时容器产品在持续保持增长,过去 3 年都能保持 400% 以上的增长速度,现在一个月下载次数超过 3 亿次。今年在 Forrester 全球公共云容器平台的评测里面,阿里云是国内排名第一,在 Gartner 报告也唯一入选公共云容器平台竞争格局。

阿里云容器服务优化整合了阿里云整体的计算、存储、网络、安全等核心能力。

比如说计算,不但能够支持强大虚拟机,像神龙这样的裸金属服务,还有异构计算的 CPU、GPU,未来也会包括云栖大会当天发布的含光芯片,通过容器的高效调度能够让 GPU 的利用率提升了 5 倍,而且容器产品能充分把计算资源弹性发挥出来,可以实现分钟级千节点的弹性伸缩,这对客户来说是非常重要的。

而在容器网络方面,它和阿里云的虚拟化网络进行了优化集成,可以实现原生网络一样的性能,与社区的 VXLAN 实现相比提升了 20% 性能。

在存储方面支持阿里云所有的存储产品,包括块存储、网络存储、对象存储等。针对容器场景进行了很多创新,比如说容器高密度部署时容器之间会对 I/O 进行争抢,通过跟操作系统团队进行深入合作,实现了更好的存储 I/O 隔离。另外,还实现了透明、高效的存储缓存,可以低成本支持像高性能计算和AI场景下大数据吞吐量的需求。

本次云栖大会上阿里云发布的 ACK 2.0 面向云原生进化,最重要的是它为整个企业上云奠定了一个新的基石。首先是容器服务全球化的部署,利用在阿里巴巴集团的大规模生产实践沉淀,建立了这样的基础设施。其次,云边端一体化可以实现边缘节点极大降低访问的延迟降低 75%。第三,可以让客户把他的私有云和云端利用 Kubernetes 进行统一管理,应用发布效率可以提升三倍,另外,还提供了全链路的安全架构,对安全风险进行监控。

对于云原生的发展,作为阿里云内部基础设施负责人的李响,在帮助阿里经济体以更为云原生的方式上云,在推动阿里经济体采用 Kubernetes、Service Mesh、Serverless 这些技术。他谈到:

“阿里和蚂蚁有着最大的 Kubernetes 集群,我们对 Kubernetes 上游拓展性、功能性是最大的贡献者之一,我们今年尝试落地Service Mesh,之前大家对 Service Mesh 的疑问是,它能不能应对一个复杂的场景,尤其和传统的微服务体系对接的场景。在阿里巴巴内部要验证这件事情,我们要告诉大家可以做到,而且我们要告诉大家怎么做到,后续会提供解决方案让大家去做这件事情。

第二,大家会思考 Service Mesh 的规模性是不是足够,阿里巴巴其实有巨大规模性的挑战,我们也会解决 Service Mesh 规模性的问题。我们认为阿里巴巴能够使用 Service Mesh,我想世界上 99% 的公司都可以使用 Service Mesh, 而不会遇到它的规模性问题。

第三,Service Mesh 是不是会影响核心链路上的性能问题,会不会影响在核心时刻的性能。我们也会在双 11 这种洪峰流量,对流量要求极高的情况下去验证 Service Mesh,使用 Service Mesh,去打磨 Service Mesh,所有打磨的东西会反馈到上流,让用户、开发者享受到这种红利。

第四,阿里巴巴通过这些事情培养出一批靠谱的工程师,我们有非常强的兜底能力,当用户遇到任何问题,阿里巴巴都能帮你解决问题,阿里巴巴真的是运营这套体系的,有这个生产实践的经验。

阿里巴巴真正把‘云原生’新的概念,在我们认为正确的方向进行落地、进行打磨,最后交付给客户。所有这些东西,当我们说阿里巴巴云上有这样的产品,一定是可靠的,一定是稳定的。”

容器安全是重点

当然我们也看到企业客户在使用云原生技术过程中面对几个挑战,第一个挑战就是安全。

安全是企业上云的首要关注。云原生加剧了这个挑战,云原生平台高密度、高动态部署使得遭受攻击可能性增加,而且一旦遭受攻击,用户不知道是谁受到攻击,也没有办法实时应对。

安全是体系性的东西,永远在最弱的一环去攻破整个企业的安全体系。阿里云容器服务实现了非常全面的端到端的云原生安全的架构,包括基础设施的安全,跟阿里云的云安全基础设施紧密基础,利用 RAM 进行认证、鉴权和审计,支持存储的 BYOK 加密等,提供了一个安全的云基础设施。

同时,在应用的生命周期里面用了安全的镜像检测,上线之前要进行扫描,上线之后会进行实时的安全检测。还有运行时的安全,因为安全的风险无处不在,一旦出现了安全问题必须第一时间对它进行监控、报警。

对于企业来讲,大量采用容器之后面临的挑战之一就是安全隔离。比如说一台机器上要混布多种类型的应用,但是有些像金融交易的应用,安全级别敏感性会很高,不希望受到其他应用的攻击和干扰。另外企业除了自己的应用还要部署第三方应用,这个过程中对一些不可信的应用要进行安全的隔离,阿里云引入了安全沙箱一系列的技术。传统的容器 RunC 用是共享内核的机制,很高效,但是安全隔离做得不好,现在可以利用安全沙箱可以进行安全隔离。

在这方面阿里云有一些差异化的优势:首先就是对它进行大量的性能优化,比如说它的网络跟原生的进程没有任何区别,网络性能非常好。整体能够达到 90% 的原生性能,对用户来讲可以获得非常好的安全性,同时对性能损耗是可以接受的。另外,能够让用户自主选择是 RunC 还是安全沙箱,两种容器运行时用户体验是完全一致的,用户可以根据自己对业务需求来选择合适的容器应用技术。

在安全容器领域有几个重要的项目,如 Google 的 gVisor,以及已经属于蚂蚁金服旗下的 Kata 容器项目等,不过和易立的沟通当中,我了解到阿里云容器服务的安全容器所采用的技术并非照搬 Kata 容器技术,而是集成了目前主流的安全容器项目,加以自身的创新而成的。阿里经济体实际上在容器安全方面投入非常大,包括 Kata,还有其他几种技术。他们与蚂蚁金服、阿里的操作系统团队合作一起来提供这样商业化安全容器的实现。这次发布的安全沙箱容器底层技术针对阿里云进行了大量优化,跟 Kata 技术有些类似,但是里面有很多部分不同,性能也做了大量的优化。

现在提供的是基于虚拟化隔离的安全技术,后续会陆续提供其他的技术能力,它们的隔离级别和适用场景是不同的,用户只要去选择就好了,在保证用户体验是一致的基础上,对用户是透明的。

结语

我们看到,阿里云正在云原生的路上狂奔,将各个产品、服务都押宝在元原生的领域上。最后,让我们用李响的一段话来结束这篇文章:“新兴的应用,或者是新兴的领域,我们建议你使用容器轻量级自动化平台,现在我们阿里云、ACK 都是朝着这种模式跟大家宣导的。我们要去帮助开发者,引导开发者从非原生的体系向云原生体系去转移,我觉得这条道路非常重要,这也是阿里云的责任,带动整个国内的基础设施,带动国内云原生体系发展,我们要去承担这件事情。”

6 月 24 ~ 26 日,Linux 基金会暨 CNCF 热推的 KubeCon + CloudNativeCon + OSS 2019 峰会于上海世博中心盛大揭幕。这是 Kubecon 大会在中国第二次举办,而距上一次在上海同一地点举办的 Kubecon 2018才仅过去半年,虽然调整会期有种种因素的考虑,但这么密集的再次举办也折射出云原生领域的发展速度——在本次大会上我们发现,各大云厂商和开源组织依然有很多值得分享的最新动态。

KubeCon + CloudNativeCon + OSS 2019 峰会于上海世博中心盛大揭幕

秉持 LC/CNCF 旗下会议一向的风格,这次大会在专业、丰富的各式讲演、专题分享之外,依旧是满场流动的人群、四处摆放的餐点,你甚至可以一整天泡在场馆,早中晚都吃在这里。嗯,要是有几个懒人沙发就更好了 :D

这次大会,我们 Linux 中国异步社区开源社掘金等几个国内知名的开源社区也得到了大会主办方的鼎力支持,赠送给各家社区一块非常不错的独立展位。为此,我们也精心准备了各种礼物和展板,在社区的志愿者 ONLY、cycoe、XYenChi、TK 等人的帮助下,得以在这样的国际性大会上和大家进行了面对面交流。

Linux 中国的展台 ,感谢我们的社区志愿者!

由于我在这次展会期间有好多新老朋友要见面,也预约了几个专访,因此很多心仪的演讲都失之交臂,这应该是我本次参会最大的遗憾了吧。

大家都在说“云原生”,而它到底是什么?CNCF 执行董事 Dan Kohn 给出了官方的定义:

云原生定义 v1.0

这次大会上,CNCF 宣布蚂蚁金服成为其新的黄金会员。CNCF 执行董事 Dan Kohn 表示,“CNCF 非常欢迎蚂蚁金服的加入,蚂蚁金服大规模的使用 Kubernetes 集群来构建其金融服务,是一个在中国拥抱云原生热潮中很好的案例。”

而中国更是与 CNCF 结下了不解之缘,超过 10% 的 CNCF 会员来自中国,包括 16% 的铂金会员和 35% 的黄金会员。

中国与 CNCF 的不解之缘

中国已经是 Kubernetes 的第二大贡献者,在 Kubernetes 上做出了很大的贡献,在其它的 CNCF 的项目也是如此。

也是在这次大会上,蚂蚁金服的王旭做了有关安全容器的演讲。他是安全容器项目 runV的创始人,在 runV 和 Clear 容器项目合并为 Kata 容器之后,一直在继续领导该项目的发展。他同时宣布了 Kata 容器1.7 的发布。作为容器安全领域的两大解决方案之一,Kata 容器得到了社区的积极支持,并进一步和蚂蚁金服开源的 SOFAStack 相结合,目前已经完成了和 SOFAMesh 的集成。

KubeCon NA 2018 之后 Kata 容器发布了 3 个版本

作为国内领先的云服务商,阿里云自然也出现在了这次大会上,并发布了若干重要产品/服务,其中包括国内首个“开放云原生应用中心 - Cloud Native App Hub”。开放云原生应用中心,是云原生“高速公路”上的托管和分发应用的集散地,同时也是国内开发者使用云原生应用的重要基础仓库。在 Kubernetes 生态中,“应用”是一组 YAML 格式的描述文件,而云原生应用中心,则为搜索、使用和分享这些应用描述文件提供了一个完全开源与开放的交互平台。

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

在当前的 Kubernetes 应用生态当中,Helm 是目前最被广泛使用的应用定义标准之一。所以在本次云原生应用中心的发布当中,对 Helm 格式应用的托管、搜索和分发能力成为了中心首次上线的能力。为了能够让中国的开发者更好的使用 Helm Hub 的能力,阿里云开发者中心与 Helm 社区达成了一系列技术合作,在开放云原生应用中心提供了国内首个 Helm Hub 北美官方站的同步镜像仓库与 Hub 站点。这使得中国的开发者终于可以随心所欲的搜索云原生应用,然后直接使用 helm install 命令将这些应用安装在全世界任何一个 Kubernetes 集群当中。

除了开放云原生应用中心之外,阿里云容器平台团队还正式宣布开源了重量级项目 OpenKruise。该项目源自于阿里巴巴经济体应用过去多年的大规模应用部署、发布与管理的最佳实践,源于容器平台团队对集团应用规模化运维,规模化建站的能力,源于阿里云Kubernetes服务数千客户的需求沉淀。Kruise 核心在于自动化,从不同维度解决了Kubernetes之上应用的自动化,包括,部署、升级、弹性扩缩容、Qos调节、健康检查、迁移修复等等。此次Kruise开源的内容主要在应用部署,升级方面,即一套增强版控制器组件用于应用的部署和级和运维。

目前,伴随着 5G 的到来,边缘计算也是一个热点,在本次大会上阿里云发布了托管版边缘集群 ACK@edge,致力于实现云-边-端一体化协同,通过非侵入增强方式,完美拓展云原生的边界。边缘云计算是基于云计算技术的核心和边缘计算的能力,构筑在边缘基础设施之上的云计算平台。形成边缘位置的计算、网络、存储、安全等能力全面的弹性云平台,并与中心云和物联网终端形成“云边端三体协同” 的端到端的技术架构,通过将网络转发、存储、 计算,智能化数据分析等工作放在边缘处理,降低响应时延、减轻云端压力、降低带宽成本,并提供全网调度、算力分发等云服务。

而此前华为云的开源智能边缘项目 KubeEdge 已经加入 CNCF 社区,成为 CNCF 在智能边缘领域的首个正式项目,这意味着云原生社区对智能边缘领域的关注与重视。

从本次大会的参会感受来看,特别明显的一点就是针对云原生生态的各种项目层出不穷。除了上面提及的 OpenKruise、Kata 容器之外,还有青云 QingCloud 也推出了自己的产品 KubeSphere(QKE),可以在 QingCloud 公有云上交付 KubeSphere 容器平台全能力,提供托管的原生 Kubernetes 集群、极简的人机交互实现 CI/CD、微服务、以及集群运维管理,帮助用户更敏捷地构建云原生应用,并一站式实现应用全生命周期的统一管理,从而全面释放企业的核心业务生产力。QKE 相较于原生的 Kubernetes 集群,提供了更多完善易用的开发工具集,能够实现极简开发、强劲支持和高效交付,可以帮助用户解除核心业务开发以外的平台工作负担。除了拥有强大的平台能力,QKE 还可以无缝支持混合云与多云环境。KubeSphere 交付的公有云与私有云具有完全一致的体验,无缝打通两种环境中的应用,用户可将应用在跨公、私环境的 Kubernetes 集群中进行混合部署,赋予业务更大的灵活性。

除了云原生技术方面的突破和进展之外,本次 Kubecon 大会也同时召开了开源峰会,对开源治理提出了诸多见解和分享。

来自开源社的 Ted Liu 做了题为《开源治理实践和企业案例研究》的演讲,为企业在采用、使用开源软件以及为 OSS 社区做出贡献方面提供了明确的指导和步骤。Ted Liu 还将分享一些案例研究,探讨龙头企业如何建立他们的开源项目办公室,以简化开源治理和政策,同时还将介绍开源许可和合规性。

开源社 Ted Liu 在发表演讲

而来自阿里巴巴的 Frank Zhao 则开始探索新的开源社区管理方式,将重点放在协作自动化和开发人员行为分析,这有助于社区维护人员的管理工作。在其演讲《阿里巴巴数字推动的开源社区探索》中展示了他们是如何构建阿里巴巴开源社区机制,以及为实施该机制而构建的工具背后的思考。

本次大会的内容之丰富、话题之深入,让人深切感受到了云原生领域的如火如荼的发展,而这篇文章已经太长了,本次大会上更多值得关注的数字和消息还有:

  • Linux 已经成长为世界上最重要的软件平台:100% 的超级计算机市场份额;82% 的手机市场份额;68% 的企业服务器市场份额;90% 的大型机客户;90% 的公有云工作负载;62% 的嵌入式市场份额。
  • 世界上有 51% 的关键项目是在“云”上运行的,而在中国达到了 72%;世界上有 45% 的项目,仍然是在传统的环境当中,但是在中国,这个数字仅仅只是 28% 。
  • Linux 基金会最新成立了一个子基金会 LFAI,领域主要是人工智能、机器学习和深度学习。中国有很多的企业都成为其成员,包括:百度、华为、嘀嘀等等。
  • 京东谈论了他们是《如何运行全球最大的 Vitess》以及《在 Kubernetes 中经济高效地调度大量容器》,并透露消息其区块链 BI 数据服务将在今年 7-8 月上线公测。

让我们期待今年 11 月在圣地亚哥举办的 KubeCon + CloudNativeCon 2019 北美峰会的更多消息,据称将会迎来 1.2 万名与会者,这会成为历史上最大的一个“开源峰会”!