做者 | 禾易安全
在第十五届“开源中国开源世界”高峰论坛上,阿里云资深技术专家、etcd 创始人、CNCF TOC 李响荣获 2020 中国开源杰出人物贡献奖。恭喜李响!网络
去年,全球顶级开源社区云原生计算基金会 CNCF 正式宣布其技术监督委员会席位改选结果。阿里云资深技术专家李响入选,成为该委员会有史以来首张中国面孔。架构
李响是 CoreOS 最先期的工程师之一,参与建立了 etcd、operator framework、rkt 等开源项目。而在开源社区中,李响做为 etcd 做者被开发者所熟知,etcd 是国际知名且被最为普遍使用的分布式一致性存储系统,被阿里巴巴、腾讯、华为、腾讯、微软、谷歌、VMWare 等企业在生产环境和客户产品中使用,用来解决分布式系统中重要元信息存储、管理和备份的问题,以及分布式系统组件一致性协调的问题。less
在加入阿里云后,李响一直在推进云原生领域自动化运维相关理念、Operator 概念、OAM 标准的创建。Operator 给予开发和运维人员在云原平生台构建无状态和复杂应用运维的理论标准和实践基础,大幅度提升了云原生运维平台的覆盖度,在开源生态中涌现出了超过 500 个 Operator 具体实现,覆盖了几乎全部的主流云原生软件的运维,其中包含 RocketMQ、Kafka、ZooKeeper、Consul、Argo、Kubeflow 等。这些理念深度影响了云原生领域的发展。运维
在第十五届“开源中国开源世界”高峰论坛上,阿里云资深技术专家、etcd 创始人、CNCF TOC 李响荣获 2020 中国开源杰出人物贡献奖。分布式
对于国内外开源的进展以及云原生实践的发展,咱们找李响聊了聊他的见解。微服务
开源,从“使用”到“融入”
开源在近些年的热度一直居高不下。所谓开源,就是将软件的源代码公开,容许所社区成员对其进行修正、改进和创新,并将其成果与社区内的全部成员共享。除了开发者以我的的身份参与开源以外,企业也在加大力度参与开源软件的研发。布局
李响提到,开源的融入应该是一个循环:使用 - 发现问题/作了新功能 - 提交代码给项目 - 更多人用。性能
目前国内开源的发展更多停留在使用阶段,在合适的场景使用开源技术来解决一些业务问题。一个比较好的趋势是,国内对于开源技术的承认度逐渐提升,参与开源的企业和开发者也逐年增长。阿里巴巴也在积极推进一些先进的开源理念的落地,好比云原生。李响提到,若是国内一些思想前卫的开发者愿意花时间与精力去实践云原生,并不断与国外的技术思想去碰撞,那么咱们就可以对云原生社区的发展产生一些影响力,从而有资格来引领云原生技术的发展方向。“其实中国的开发者彻底有能力参与到开源项目的进程中,而且去影响开源项目。”优化
还有一种趋势是,国内一些基于开源技术去构建技术体系的厂商愈来愈多。这些厂商不仅仅是像之前同样售卖开源技术,而是本身构建或者尝试去构建开源生态,并在国内和国外去推广。之前在 OpenStack 刚出来的时候,有不少厂商基于 OpenStack 这项技术进行包装、集成、售卖。国内一些 to B 的厂商也采用了类似的思路,好比发展较好的 PingCAP。此外,一些初创公司也有意识地去打造开源技术并推广开源技术,这也是国内对于开源态度的一个转变。
固然,国内开源的发展还有一些须要提高的地方。李响提到,一方面,国内的开发者应该更积极地参与到整个开源社区的建设中,不只仅是技术建设,有时候思想碰撞也很重要。咱们要作的不只是给开源项目提一些短时间的问题,或者帮助开源项目修复Bug,而是要为更长线的工做作准备。只有融入到社区中,才能给到社区更具体明确的需求,帮助开源社区的发展,甚至影响开源社区的将来方向。
对于参与开源的企业而言,不管是创业公司,仍是云厂商,可以从 0 到 1 去作一些开源项目,并尝试去作一些创新性的、先进性的项目,把国内在开源社区和先进生产力上的影响力发扬光大,甚至去打造一些国际知名的开源品牌,才能真正融入到开源的发展进程中。
固然,开源的世界里也有一套本身的玩法。
关于开源治理
前段时间,谷歌将Istio项目商标的全部权正式移交至 Open Usage Commons(OUC)。接受 Istio 后,OUC 将与项目指导委员会共同制定商标使用指南,方便社区统一使用 Istio 项目商标。此举引起了业界激烈的讨论,做为 CNCF TOC,李响谈了谈他对于开源治理的一些见解。
开源能够从三个部分来理解,第一部分是代码的开放,就是让你们能够看到而且修改代码。这是任何一个开源项目要作的最基础的事情。第二部分是开源工做中涉及的品牌和专利,把这部分工做开放,让品牌从属于一个中立的组织,这样其余厂商或者用户使用的时候,不会受到专利的限制,也没有品牌的担心。
第三部分是治理模型的开放,治理模型的开放意味着每个项目都有一个治理组织,对开源项目作出必定贡献或者达到某种标准,就被容许加入到治理组织中,对开源项目的将来发展拥有必定的话语权和决策权。举个例子,阿里巴巴今天开源了一个项目 X ,最开始参与投票的 5 我的都来自于阿里巴巴,假设有一天阿里巴巴的贡献减小了, B 公司的贡献增长了,那么 B 公司就有权利去推进这个开源项目的治理,进而控制它的走向。好比 Redis 项目近期放弃以前的专制管理模式,转而采用新的“社区自治模式”。这意味着 Redis 项目的将来命运将由整个社区决定,而再也不单纯掌握在 Sanfilippo(Redis 之父) 一我的手中。
谷歌把品牌和专利移交给 OUC ,让品牌从属于一个中立的组织,就意味着在开放代码的基础之上,将代码相关的品牌和专利变成中立了,这样每个参与项目的人均可以来使用 Istio 的品牌,人人平等。
从开源项目的使用者来看,咱们确定但愿开源的项目能够作到上面所说的三部分(代码、品牌、治理模型)都可以开放,从长期来看,这是对用户最有利的局面,这样开源项目就能够按照社区的需求导向来发展,而不是按照参与的某一家公司的意向来发展。
可是谷歌并无把治理模型开放出来,一是由于 Istio 项目还处于发展早期阶段,若是开放治理模型,会致使不少人参与到 Istio 早期进程中,分裂的话语权对于一个早期尚不成熟的项目而言是不利的。从商业化的角度来看,若是谷歌拥有对于开源项目的治理权利,那么,对于该项目的将来走向是有必定的把控能力,这对于谷歌将来布局产品线有必定的先发优点,这也是谷歌没有开放治理模型的一层考虑。
Istio 之因此成为“香饽饽”,由于它是目前 Service Mesh 社区最引人注目的开源项目,而 Service Mesh 也是当下云原生领域最被看好的发展趋势。
云原生:企业的顾虑与不可抵挡的行业趋势
近年来,云原生的理念愈来愈受到业界的重视,李响做为云原生领域的创新者,也在推进国内云原生的技术布道,包括深度参与阿里云原生架构白皮书的撰写、参与设计云原生实践课程等。云原生理念对于国内企业而言,还处于一个早期发展的阶段,不管是技术、产品、标准等,都还处于快速迭代的过程当中。企业在应用云原生的技术和产品时,不免有所顾虑。
Q:国内和国外在云原生领域的发展,有多大的差距?
李响:整体来看,国内外云原生技术理念的发展没有太大的差距。可是因为云原生理念的兴起是在北美,因此社区生态的发展中心仍是在硅谷这里,一些新的技术理念或者架构应用、创新场景等,也是须要一些时间才能慢慢引入到国内。
区别比较大的是国内企业跟国外企业对于云服务的接受度。咱们提到云,最早想到的必定是节约资源、弹性、成本下降、技术红利这些你们关心的点。北美企业的人力成本广泛较高,因此他们会愿意为云上的软件服务付费,尽量节约人力成本。国内不少企业不缺乏研发人员,总体研发能力也很强,在云服务提供附加值有限的状况下,不少企业会本身研发一些定制化的能力。
阿里是国内较早开始践行云原生理念的公司之一,经过在内部实践成熟以后,开始对外输出去影响更多的企业。咱们很是看重如何经过云原生为企业带来更多的附加值,而且这个附加值必定要超过企业本身定制开发带来的价值,只有这样,企业才会愿意拥抱云原生。将来阿里也会研发出一些更有竞争力的产品,提供更具价值的服务,并去影响海外的用户,让国内的云原生发展与国际接轨。
Q:云上的服务将来会以什么样的形态存在?
李响:将来的云必定不是资源,对于云厂商而言,重心不是售卖这些基础的资源,而是在云上创建一个服务体系和生态,让企业更便捷和方便地使用云上的服务。随着云服务规模化的发展,一个云服务能够交付给不少用户,因为边际效应,每一个云服务的成本会大幅下降,对于企业而言更划算。但这对于阿里云而言也提出了一个挑战,如何把云服务更好地规模化,让每一个服务更精细也更通用化,从而帮助企业解决更多常见的问题。
Q:选用云原生技术时,企业对云原生技术栈进行大规模应用时的安全性、可靠性、性能、连续性存在疑虑。这个问题如何解决?
李响:对于云原生有顾虑其实能够理解,毕竟云原生还处于早期发展的阶段。阿里云在帮助国内企业了解云原生、使用云原生上作了不少工做。对于云原生技术栈的可靠性、性能、连续性这方面的顾虑,咱们从两个方面来解决。一方面是在内部尝试去使用这些技术,阿里巴巴内部有很是丰富的、大规模的使用场景,经过这些场景能够打磨云原生技术。在技术成熟之后,咱们将这些技术回馈到社区,帮助云原生社区提升技术质量和发展水平。
另外一方面,阿里云上提供了丰富的云原生产品服务、云原生产品家族。之前一家企业想使用云原生的技术或产品,须要花费大量的精力研究一些开源项目,本身作运维和管理,还须要考虑集成、稳定性保障等问题,这样才能创建一个云原平生台。今天,为了方便企业和开发者更容易地使用云原生的技术和产品,更好地接受云原生的理念,并解决企业担心的可靠性、性能、连续性等问题,阿里云为你们提供了一整套云原生产品家族,提供了很是强的SLA保障。
另外,关于云原生的安全性问题,2019 年,阿里云安全沙箱技术商用上线,支持 ECI、ACK、SAE 边缘计算等多种业务。蚂蚁金服收购了 Hyper ,共同打造安全可靠的容器运行环境。阿里云安全沙箱是基于 MicroVM 构建的安全容器 Runtime。首先它是一个基于硬件虚拟化技术的 MicroVM ,采用了深度定制优化 hypervisor ,极简的虚拟机设备模型。其次阿里云安全沙箱也是一个容器 Runtime,提供镜像分发、镜像管理、容器网络、容器存储,彻底兼容 OCI 和 CRI 规范。此外基于软硬一体设计的机密计算容器开始展露头角,阿里云和蚂蚁团队共同推出了面向机密计算场景的开源容器运行时技术栈 inclavare-containers 。它基于Intel SGX等机密计算技术,支持蚂蚁的 Occlum ,开源社区的 Graphene Libary OS ,极大下降了机密计算应用的开发、交付和管理。
Q:愈来愈多的厂商开始探索 OAM 落地实践, OAM 有什么魅力?
李响:OAM(开放应用模型)是一套由阿里云和微软共同发起、由云原生社区共同维护的应用描述规范(spec)。OAM 的核心理念是:“以应用为中心”,它强调研发和运维围绕着一组声明式的、灵活可扩展的上层抽象进行协做,而不是直接去使用复杂晦涩的基础设施层 API。
在 OAM 规范下,研发和运维的关注点是彻底分离开的。研发与运维只须要编写很是少许的、跟本身相关的一些字段,而不是完整的 K8s Deployment 和 HPA 对象,就能够轻松的定义和发布应用。这就是“上层抽象”为咱们带来的好处。
目前,阿里云 EDAS 服务已经成为了业界第一款基于 OAM 构建的生产级应用管理平台,并很快推出下一代“以应用为中心”的产品体验;在 CNCF 社区,知名的跨云应用管理与交付平台 Crossplane 项目也已经成为了 OAM 规范的重要采纳者和维护者。
实际上,不止 AWS Fargate,咱们云计算生态里的全部 Serverless 服务均可以很容易的使用 OAM 来做为面向开发者的表现层和应用定义,从而实现对本来复杂的基础设施 API 进行简化和抽象,将本来复杂的流程化操做“一键”升级为 Kubernetes 风格的声明式应用管理方式。
更重要的是,得益于 OAM 的高可扩展性,用户不只能够在 Fargate 上部署容器应用,还能够用 OAM 来描述 Function、虚拟机、WebAssembly 乃至任何你能想到的工做负载类型,而后把它们轻松的部署在 Serverless 服务上,甚至在不一样的云服务之间无缝迁移。
Q:将来,云原生会如何发展?
李响:咱们一直但愿云原生产品生态能够作到标准和开放。不一样厂商之间的服务、基础设施等,均可以实现互通。用户开发的应用能够运行在阿里云容器之上,也能够运行在其余厂商的容器之上,应用所依赖的东西本质上均可以是一些开放的接口。这其实一直是阿里云在努力的方向,从云原生的发展角度,咱们也在尽可能作到标准开放,而且跟社区生态比较好的进行融合,从而减小用户的担心。
阿里在云原生领域比较关注 4 个方面的发展:
一是对于 Kubernetes 和 Containerd 的贡献。阿里在内部进行了大规模的实践,在性能、规模性、效率上与上游进行共建。从整个生态来看,阿里是最先开始布局云原生的厂商之一,也在尝试扩大云原生覆盖的范围,作边界的拓展。阿里云推出开源项目 OpenYurt ,一方面是把阿里云在云原生边缘计算领域的经验回馈给开源社区,另外一方面也但愿加速云计算向边缘延伸的进程,并和社区共同探讨将来云原生边缘计算架构的统一标准。
二是在微服务体系中,阿里有比较深厚的积累,同时也作了不少开源方面的工做。经过一些开源项目,好比 Dubbo、Nacos 等,把阿里微服务体系中的经验和实践向外输出。另外,阿里也在把微服务体系、开源体系的技术与云进行整合,这样使用云的客户就能更方便地直接使用开源的产品。
三是推动微服务体系向下一代去演进。尤为在云原生领域,你们比较看好Service Mesh 的发展,阿里也在推进微服务体系与Service Mesh 融合,实现更好的兼容性和互通性,进而提升Service Mesh 整个生态的活跃度和成熟度。同时,咱们也在让一些开源项目和云产品变得更加云原生化或者说更加适合云的应用场景,好比消息系统 RocketMQ,咱们正在提升RocketMQ开源软件自身的弹性和进行 Serverless 化,从而下降使用成本,而且在云上更容易部署。
四是尝试一些创新的、先进性的云原生探索。好比 OAM 开放应用模型的 Kubernetes 标准实现 Crossplane 项目,在同 OAM 社区进行深度合做以后,今天的 Crossplane 是一个面向混合云场景的应用与云服务管理控制平面,它致力于基于 K8s 声明式 API,遵循开放应用模型标准对应用进行管理与交付,并经过独有的机制对云服务以云平台无关的、最终用户友好的方式进行抽象与管理。
Crossplane 项目进入 CNCF Sandbox 也意味着,从今天开始 OAM Kubernetes 标准实现的全部代码、文档和整个 Crossplane 项目自己的全部权,都将转交给 CNCF 社区进行托管,与该项目背后的任何商业公司(不管是阿里云仍是微软云)完成解耦。
首届 KubeCon 2020 线上峰会
7 月 30 日 - 8 月 1 日,阿里巴巴云原生专场,点击连接预定有礼:https://developer.aliyun.com/topic/alibabacloudnative/kubecon2020
“阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,作最懂云原生开发者的公众号。”