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

挑战

作为全球最大的通信设备制造商,华为是一家跨国公司,拥有超过18万名员工。为了支持其全球业务的快速发展,华为为其内部IT部门建立了八个数据中心,运行着10万多台虚拟机上的800多个应用,服务于这18万用户。随着新应用的快速增加,基于虚拟机的应用的管​​理和部署的成本和效率都成为业务敏捷性的关键挑战。“它是一个非常分布式化的系统,所以我们发现以更一致的方式管理所有任务始终是一个挑战,”公司首席软件架构师兼开源社区总监侯培新表示,“我们希望转向更敏捷、更规范的实践。”

解决方案

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

影响

侯培新表示:“截至2016年底,华为内部IT部门使用基于Kubernetes的平台即服务(PaaS)解决方案,管理着4000多个节点和数万个容器。”“全球部署周期从一周缩短到几分钟,应用交付效率提高了10倍。”他谈及对底线的影响时说:“我们还看到运营支出显著削减,在某些情况下高达20-30%,这对于我们的业务非常有益。”鉴于华为在内部取得的成果以及其在外部看到的市场需求,公司还将这些技术融入了提供给客户的PaaS解决方案 FusionStage™ 中。

华为的 Kubernetes 之旅始于一位开发者。两年多前,这位受雇于这家网络与通信巨头的工程师对用于跨主机集群管理应用容器的 Kubernetes 技术产生了兴趣,并开始为开源社区做贡献。随着技术的进步和社区的发展,他不断向他的经理们介绍这项技术。

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

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

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

此外,这项技术对底线也有影响。侯培新表示:“我们还看到运营支出显著削减,在某些情况下高达20-30%,这对我们的业务非常有帮助。”

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

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

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

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

作为华为首次迁移到 Kubernetes 的监督者,侯培新为其他考虑这项技术的公司提供了建议:“当你开始设计应用架构时,从一开始就考虑云原生,考虑微服务架构,”他说,“我认为你会从中受益。”

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

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

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

然而,侯培新认为这项技术尚未充分发挥其潜力。首要的是,他希望扩展其可编排的规模,这对于像华为这样的超大型公司以及其部分客户来说至关重要。

侯培新自豪地指出,在华为第一位工程师成为 Kubernetes 的贡献者和倡导者两年后,华为现在已成为社区的顶级贡献者。“我们学到,你为社区贡献得越多,”他说,“你收获的也越多。”