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

挑战

华为是一家跨国公司,是全球最大的电信设备制造商,拥有超过18万名员工。为了支持其在全球的快速业务发展,华为为其内部IT部门设立了八个数据中心,这些数据中心运行着800多个应用程序,在10万多台虚拟机上为这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年春,该公司不仅成为用户,也成为供应商。

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

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

在华为内部,一旦他的团队完成了内部业务流程部门向Kubernetes的过渡,侯佩鑫正在寻求说服更多部门转向云原生开发周期和实践。“我们有很多软件开发人员,所以我们将为他们提供我们的平台即服务解决方案,我们自己的产品,”他说。“我们希望看到他们的迭代周期显著缩短。”

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

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

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

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

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

侯佩鑫自豪地指出,在第一位华为工程师成为Kubernetes的贡献者和倡导者两年后,华为现在是社区的主要贡献者之一。“我们了解到,你为社区贡献越多,”他说,“你得到的回报就越多。”