据相关调研机构报告数据显示,目前应用容器市场规模将从 2016 年的 7.62 亿美元增⻓到 2020 年的 27 亿美元。
显而易⻅,引入容器所展现的巨大灵活性有效推动了其采用速率,使企业日益依赖该技术,与此同时容器技术也逐渐成⻓为虚拟机的实力替代品。对此,调研机构 Forrester 公司曾指出,58%的开发商计划在未来一年内使用容器或正在计划使用容器。
总结一句,使用容器可以帮助企业提高效率、降低成本,甚至在安全性方面有更可靠的保障, 这些易于打包以及轻量级的组件可以与同一虚拟机中的其他组件一起运行。
此外容器的大力采用也让开发者通过创建虚拟“沙箱”来更快、更好地工作,从而完成编写、管理和操作软件代码,可以在不影响服务器或虚拟机(VM)上运行其他应用程序和系统的情况下就可完成此操作。
基于此,CSDN 云计算特别策划了容器服务盘点系列文章,欲以 CSDN 中立技术社区专业、客观的角度,探讨当前云服务商眼中的“容器服务”并为开发者选择合适的容器服务提供部分可参考的建议,以帮助其实现容器技术的创新应用等。
为此我们采访了数家提供容器服务的云服务厂商,而本期程序员硬核评测则特别邀请到腾讯云容器产品总监邹辉,详尽分享针对容器发展的真知灼见以及明星产品企业级容器云服务平台 TKE 的方方面面。
新技术的关注与实践,不是一朝一夕
据阿晶了解,腾讯云投身容器技术的时间挺早,而 TKE 可谓是其容器服务的明星产品,经常被概括为“基于原生 Kubernetes 来提供以容器为核心、高度可扩展的高性能容器管理平台”。
具体来说,TKE 可以做到无缝衔接腾讯云在计算、网络、存储、以及安全方面的诸多能力,还高效扩展了 网络、GPU 虚拟化、特定 CRD 资源 等 Kubernetes 插件。不但在有效部署、资源调度、服务发现、动态伸缩上面助力完整功能;还提高了大规模容器集群下业务管理的便捷性。未来,腾讯云容器产品总监邹辉也强调,作为腾讯云在容器产品中最核心的部分,TKE 的功能层深度优化以及周边生态的演进将成为团队至关重要的事情。
谈及 TKE,我们会不自觉想到腾讯云原生应用编排平台的创新实践,除了涵盖容器服务层面之外,众所周知的开发运维平台、Service mesh、无服务套件以及基于以上产品的大数据、人工智能解决方案等统统包含其中。据了解,目前该平台在腾讯内部已经成功承载了数以亿计的容器,并支撑众多海量业务平稳运行以及迭代升级,同时还成功赋能互联网、电商、政务、能源等多领域、多方向。
对此邹辉总结道:“其实腾讯很早之前就关注了云原生以及容器技术的发展,这注定是未来很有代表性以及前景的技术方向之一,所以我们对此的投入力度很大。”
确实!据阿晶了解,无论是产品还是社区运营,腾讯云对其都是关注颇多。从产品层面出发,腾讯云在容器、微服务以及无服务器领域都有专业的研发团队来进行技术以及业务的支撑,相关产品的推出更是层出不穷。
“相比于其他云厂商,腾讯内部在很早之前就已经研究与容器相关的技术与服务,其中很多成功的业务,例如游戏、微信、广告等都选择运行在容器技术上,可以说容器技术正在支撑着数十亿计的用户”他说。
如果从技术角度着眼,腾讯内部的容器建设也经历了从青涩到成熟的发展路径,这个过程中无论是在容器的功能还是稳定性,抑或是资源利用率上都有了逐渐深入的探讨与研究。未来选择将这些经过实践历练的技术以及经验搬运到云上,并加以开放给外部更多的企业或者个人开发者使用,或许才是腾讯云容器的关键优势所在。
除了产品与技术,在社区领域方面,腾讯云选择在这两年努力拥抱开源的技术趋向,将内部更多、更好的架构与经验、甚至是代码开放给更多用户,并同时加大对云计算社区的投入。
“腾讯内部的容器发展经历了多个阶段,从最早以前的使用 Cgroup 来进行资源隔离并提升资源利用率,到后面使用 docker 容器并且基于 yarn 自研了一套调度框架,Kubernetes 技术出现后腾讯内部的容器平台又逐渐切换到 Kubernetes 技术栈,开始全面拥抱云原生技术。随着容器技术的演进,腾讯内部在开源这里的意识也在发生变化,在开源社区的投入非常大。我们一方面积极参与到开源社区中去,一方面也会逐渐把腾讯内部一些好的实践及技术推广到社区,给更多的人和企业带来价值。”他补充道。
就目前的市场观察,亲测容器技术已成功迈入成熟期的发展阶段。其中以 Kubernetes 为代表,版本更新越来越快、功能越发完善且生态也越来越健全。此外我们看到很多监控、微服务以及更上层的部署,还包括很多 AI、大数据框架都围绕 K8S 进行了很多深层次的功能演进。如今整个容器技术已经被广泛接受,很多企业级用户都在准备并实践很多容器方面的技术,各大云厂商也把容器技术作为下一个云市场技术爆发的重要机会点;在社区方面,以 K8S 为代表的云社区也正逐渐成长为目前业界最红火的技术社区之一。
谈及在此背景下腾讯云关注的技术点,邹辉表示,当下备受关注的 Severless 技术应该可以让容器的发展更进一步,有效帮助企业在微服务的道路上获得更好更强的能力。此外轻量虚拟化技术的出现能够让容器表现的更加稳定与安全,在多租户混合部署的环境下真正释放容器的价值。
容器领域的种种,我们有所应对
尽管容器技术风生水起,但实际在企业落地的过程中依旧存在很多问题。值得注意的一点,目前业界很多容器技术都以开源的方式提供给用户,但在实际操作中将开源技术使用起来是一回事儿,用的好又是另外一回事儿。
“特别针对一些中小企业,不单单是 K8S 技术本身存在一定的门槛,更大的困难在于要将应用非常好的构建在 K8S 上,既能享受到 K8S 带来的便利,也能保证应用的可靠性,这里面需要考量的点很多,需要更多的技术保障和实践的积累。在很多客户使用容器过程中,往往因为 Pod 资源设置的不合理,OOM 后触发内核与 K8S 相关组件,最终引发节点 Notready,更严重的是如果集群资源预留不够,可能会产生雪崩式效应。所以如何提前发现、规避、自动恢复这些问题是用户在使用 K8S 过程中,所需要重点考虑的”他提出。
同样对于中大型用户来说,怎样将企业中较为传统的复杂架构牵引至以 K8S 为代表的容器服务上是十分值得探究的。主要还是因为在这个过程中,大企业为了达成容器化迁移,必然会为了适配原有习惯或者功能在 K8S 基础上进行新功能的拓展,例如磁盘隔离、网络隔离、容器 IP 保持不变等,需要把传统复杂的架构迁移到容器中。
所以在此基础之上,邹辉提出腾讯云在容器领域,会增加更加丰富的基础产品形态。除了目前对外提供的标准 K8S 服务之外,也会使用轻量虚拟化+virtual kubelet 技术,对外提供 K8S 原生接口这样的 Serverless K8S 集群,做到在这个弹性集群中用户使用 K8S 只需要关注容器资源即可,最大程度减少对底层资源的关注。同时腾讯云容器服务,也会将腾讯内部一些好的实践,如 TAPP 应用管理(用于让 kubernetes 服务及 pod 管理更加精细化、发布过程更加可控)、GPU 虚拟化等技术对外输出。
除此之外,当然还有很重要的一方面就是容器在使用场景方面的扩展,例如:TKE 结合 istio 为用户提供网格服务; TKE 产品与大数据、AI 行业相结合,打造
以 K8S+虚拟化为基础,具备更丰富的 AI 或者大数据能力的解决方案;在游戏领域,TKE 也会与腾讯游戏技术运营部门合作,将腾讯内部的游戏架构
容器化所用到的典型经验和技术分享出来,推出容器化的游戏解决方案。
另外,在容器私有云和混合云这里,腾讯云也推出了 TKE 企业容器平台,给企业提供私有化的容器解决方案。TKE 企业版采用与腾讯公有云容器服务一致的架构和管理模式,所以企业在私有化管理容器服务的同时,也能够非常便捷的打通云上的容器服务并获得一致的管理体验,实现混合云部署;在未来,我们也会进一步扩展这里的功能,实现混合云管理。
采访之余,邹辉还针对容器厂商之间的竞争给出了自己的小建议。他表明,作为容器厂商在面对这个需求越来越明显且前景越来越广阔的市场环境,如果想要把握关键入场券,最重要还是应该聚焦产品底层的稳定性打磨,这是非常关键的一点。
此外更需要去补全以容器为基础的整体形态,对此阿晶这样理解:除了提供标准的 K8S 服务来使用,更重要的是提供完备的上层服务来解决弹性等系列需求,让整体变得更有价值。
最后在私有云容器领域,肯定需要不断提高容器的交付效率,降低成本来实现更标准化、更流程化的用户体验。阿晶觉得这不单单是给予容器服务厂商的小贴士,更是腾讯云在容器技术领域需要努力追求的目标之一。
AI、severless 以及服务网格,火技术更需保持新鲜度
谈及 AI 技术关联容器的表现,邹辉还详细列举了腾讯云内部的实践情况。可以肯定的一点,目前以 AI 为代表的新学习框架,都在逐一向 K8S 看齐,因为应用容器底层的部署和调度能力能够很方便助力上层框架的运转,关于这一点,在腾讯云内部也确实积累了不少经验。
当然其中的困难也是存在的,例如有些团队可能在推理任务过程中或者在虚拟过程中按以前的方式使用 GPU,可能就是买一些虚拟机,但与实际的 GPU 卡的运行效率相比是非常低的,运行与闲置相互交替,成本浪费较大;另外不同 GPU 卡的性能差异,以及底层环境异构问题也是 AI 团队所面临的挑战。腾讯在这几块(成本、性能、异构)做了大量的技术优化,如 GPU 虚拟化技术、GPU 拓扑识别……等等,这是其一。
“此外,我们的一些 AI 团队之前部署 AI 框架及服务时,更多还是依靠人工来部署及管理底层资源;与容器服务结合后,这些都极大程度解放了他们运维部署方面的工作,带来了很多便利性。”他说。
邹辉在采访过程中十分肯定 Severless 无服务器技术对容器技术的创新发展,究竟可以起到何种作用? 无服务计算的理念提出,让容器服务的产品形态能够得到更进一步扩展,用户能够真的不用关注底层那些资源,例如节点何时该扩容、节点是否故障、节点资源利用率是多少等,让用户从一些烦琐的工作中解放出来,更多关注业务以及架构情况。
此外,腾讯云针对服务网格方面的技术创新呢?据阿晶了解,关于服务网格,目前在腾讯内部也在逐渐推广,居高不下的同时也碰到的了两个最大的问题。
首当其冲的就是性能问题。因为目前技术会对所有的容量做一套额外劫持、解包、分析、再打包这样的过程,所以在性能的优化上腾讯云其实做了挺多研究,比方说 istio 数据转发层面与管控层面优化;另外在腾讯内部还有大量的 istio 扩展协议使用经验,怎么样把这些自定义协议适配到 istio,也做了很多工作。
截止阿晶发稿之前,腾讯云已经在云原生技术大会 KubeCon + CloudNativeCon + Open Source Summit (原 LC3 )上重磅发布四大云原生技术产品,包括企业级容器服务平台 TKE、容器服务网格 TKE Mesh、Serverless 2.0、一站式 DevOps 平台。作为云计算领域的引领者,阿晶觉得未来的腾讯云在容器、微服务以及无服务器领域的诸多实践,或将真正开启云原生时代。
(本文转载自 infoQ)