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

挑战

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

解决方案

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

影响

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

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

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

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

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

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

对这些最初的结果感到满意,并且看到其客户对云原生技术的巨大需求,华为加大了对 Kubernetes 的投入。在 2016 年春天,该公司不仅成为了用户,也成为了供应商。

“我们将 Kubernetes 技术融入我们的解决方案中,”侯说,指的是华为的 FusionStage™ PaaS 产品。“从大型电信运营商到银行,我们的客户都喜欢云原生的理念。他们喜欢 Kubernetes 技术。但他们需要花费大量时间来分解他们的应用程序,将它们转变为微服务架构,而作为解决方案提供商,我们帮助他们。我们已经开始与一些中国银行合作,并看到像 中国移动德国电信 这样的客户表现出浓厚的兴趣。”

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

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

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

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

毕竟,尽管侯对华为的 Kubernetes 感到兴奋,但他估计“在未来 10 年,也许 80% 的工作负载可以分配,可以在云原生环境中运行。还有 20% 不是,但这没关系。如果我们能使 80% 的工作负载真正成为云原生,并拥有敏捷性,最终将会是一个更美好的世界。”

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

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

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