公司 华为 地点 中国深圳 行业 电信设备

挑战

华为是全球最大的电信设备制造商,拥有超过 18 万名员工。为了支持其在全球范围内的快速业务发展,华为 为其内部 IT 部门设立了 8 个数据中心,这些数据中心运行着 800 多个应用程序,拥有超过 10 万台虚拟机,为这 18 万用户提供服务。随着新应用程序的快速增长,基于虚拟机的应用程序的管理和部署成本和效率都成为业务敏捷性的关键挑战。 “这是一个非常分散的系统,因此我们发现以更一致的方式管理所有任务始终是一个挑战,”该公司首席软件架构师兼开源社区总监侯培新表示。 “我们希望采用更敏捷、更得体的做法。”

解决方案

在决定使用容器技术后,华为开始将其内部 IT 部门的应用程序迁移到 Kubernetes 上运行。到目前为止,大约 30% 的应用程序已迁移到云原生。

影响

“到 2016 年底,华为内部 IT 部门使用基于 Kubernetes 的平台即服务 (PaaS) 解决方案管理着 4,000 多个节点和数万个容器,”侯培新表示。 “全球部署周期从一周缩短到几分钟,应用程序交付效率提高了 10 倍。” 他表示,对于利润而言,“我们还看到运营支出大幅削减,在某些情况下削减了 20-30%,我们认为这对我们的业务非常有帮助。” 鉴于华为在内部取得的成果以及外部需求,该公司还将这些技术构建到其为客户提供的 PaaS 解决方案 FusionStage™ 中。

华为的 Kubernetes 之旅始于一名开发人员。两年多前,这家网络和电信巨头的一名工程师对用于跨主机集群管理应用程序容器的技术 Kubernetes 产生了兴趣,并开始为其开源社区做出贡献。随着技术的发展和社区的壮大,他不断地向经理们讲述这件事。

命运弄人,与此同时,华为正在为其支持每个业务流程处理的内部企业 IT 部门寻找更好的编排系统。 “我们在全球拥有超过 18 万名员工,内部流程复杂,因此该部门可能每周都需要开发一些新的应用程序,”华为首席软件架构师兼开源社区总监侯培新表示。 “我们的 IT 部门经常需要启动数万个容器,任务遍布全球数千个节点。这是一个非常分散的系统,因此我们发现以更一致的方式管理所有任务始终是一个挑战。”

过去,华为使用虚拟机来封装应用程序,但“每次我们启动虚拟机时,”侯培新说,“无论是新服务还是由于某些节点功能异常而关闭的服务,都需要花费很多时间。” 华为转向了容器化,因此尝试 Kubernetes 的时机已经成熟。采纳这位工程师的建议花了一年时间——这个过程“不是一蹴而就的,”侯培新说——但一旦投入使用,他说,“Kubernetes 基本上解决了我们的大部分问题。以前,部署时间大约需要一周,现在只需要几分钟。开发人员很高兴。那个部门也很高兴。”

侯培新认为,使用这项技术为公司带来了巨大的好处:“Kubernetes 为基于云的应用程序带来了敏捷性、横向扩展能力和 DevOps 实践,”他说。 “它使我们能够自定义调度架构,从而实现容器任务之间的关联性,从而提高效率。它支持多种容器格式。它广泛支持各种容器网络解决方案和容器存储。”

而且,最重要的是,它对利润产生了影响。侯培新说:“我们还看到在某些情况下运营支出大幅削减了 20-30%,这对我们的业务非常有帮助。”

华为对这些初步结果感到满意,并看到了客户对云原生技术的 demanda,因此加大了对 Kubernetes 的投入。2016 年春季,该公司不仅成为用户,也成为供应商。

“我们将 Kubernetes 技术构建到我们的解决方案中,”侯培新在谈到华为的 FusionStage™ PaaS 产品时表示。 “我们的客户,从非常大的电信运营商到银行,都喜欢云原生的理念。他们喜欢 Kubernetes 技术。但他们需要花费大量时间来分解他们的应用程序,将它们转变为微服务架构,而作为解决方案提供商,我们帮助他们。我们已经开始与一些中国银行合作,我们看到 中国移动德国电信 等客户对此非常感兴趣。”

“如果你只是一个用户,你就只是一个用户,”侯培新补充道。 “但如果你是一家供应商,为了说服你的客户,你应该自己使用它。幸运的是,由于华为拥有大量的员工,我们可以展示使用这项技术可以构建的云规模。我们提供客户智慧。” 虽然华为拥有自己的私有云,但其许多客户使用华为的解决方案运行跨云应用程序。现在大多数公有云提供商都支持 Kubernetes,这是一个很大的卖点。 “这使得跨云迁移比使用其他解决方案容易得多,”侯培新说。

在华为内部,一旦他的团队完成了内部业务流程部门向 Kubernetes 的迁移,侯培新就希望说服更多部门转向云原生开发周期和实践。 “我们有很多软件开发人员,因此我们将为他们提供我们的平台即服务解决方案,我们自己的产品,”他说。 “我们希望看到他们的迭代周期大幅缩短。”

在监督了华为最初向 Kubernetes 的迁移后,侯培新对其他考虑使用该技术的公司提出了建议:“当你开始设计应用程序的架构时,从一开始就要考虑云原生,考虑微服务架构,”他说。 “我认为你会从中受益。”

但如果你已经有遗留应用程序,“首先从那些对微服务友好的应用程序部分开始,那些相对容易分解成更简单的部分并且相对轻量级的部分,”侯培新说。 “不要从第一天就想着要在多少天内迁移整个架构,或者将所有东西都迁移到微服务中。不要把这作为一种目标。你应该循序渐进地进行。我想说的是,对于遗留应用程序,并非每一部分都适合微服务架构。没必要强求。”

毕竟,尽管侯培新对华为的 Kubernetes 充满热情,但他估计“在未来 10 年内,可能 80% 的工作负载可以分布式运行,可以在云原生环境中运行。还有 20% 不能,但这没关系。如果我们能让 80% 的工作负载真正实现云原生,拥有敏捷性,那么最终将会是一个更加美好的世界。”

在不久的将来,侯培新期待着围绕 Kubernetes 开发的新功能,尤其是华为正在贡献的功能。华为工程师参与了联合功能(将多个 Kubernetes 集群放在一个框架中进行无缝管理)、调度、容器网络和存储,以及一项名为 Container Ops 的新发布技术,这是一个 DevOps 管道引擎。 “这会将每个 DevOps 作业都放入一个容器中,”他解释道。 “然后这个容器机制使用 Kubernetes 运行,但也用于测试 Kubernetes。借助这种机制,我们可以比以前更容易地创建、共享和管理容器化的 DevOps 作业。”

尽管如此,侯培新认为这项技术只发挥了一半的潜力。首先,他希望扩大其可以编排的规模,这对像华为这样的大公司以及它的一些客户来说非常重要。

侯培新自豪地指出,在第一位华为工程师成为 Kubernetes 的贡献者和布道者两年后,华为现在已成为该社区的最大贡献者之一。 “我们已经了解到,你对社区的贡献越多,”他说,“你得到的回报就越多。”