Kubernetes与现实世界相遇:三个成功案例

  • 来源:计算机世界
  • 关键字:谷歌,服务,技术
  • 发布时间:2020-04-20 19:38

  自从谷歌在数年前推出Kubernetes以来,Kubernetes已迅速成为了一种热门技术。微服务指可在容器中运行并协同工作以充当较大型应用程序的小型可独立部署的服务,其可以跨各种类型的基础设施进行移植。而作为组合和运行由微服务组成的应用程序平台,Kubernetes可以说是不二选择。

  Kubernetes是一种编排工具,它意味着开发人员可以查看、协调和管理容器化工作负载和服务,以运行弹性分布式系统。据云原生计算基金会(CNCF)在2018年8月发布的数据,40%的受访者(来自5000多家企业)已经在生产中运行Kubernetes。

  对于开源项目而言,这是一个不错的进步,不过值得注意的是,在这些企业中,绝大多数在使用Kubernetes时都只运行少数应用程序。尽管如此,其发展方向已经变得非常清晰,即基于容器的微服务应用程序是未来,Kubernetes则是其平台。这就是为什么这三大云服务提供商都推出了托管版Kubernetes的原因,而思科、惠普、IBM/Red Hat、微软、VMware/Pivotal等则将Kubernetes纳入到了其核心软件产品当中。

  Kubernetes使得各种规模的企业都能够加快其开发人员的速度,提升部署和扩展应用程序的敏捷性,现代化其技术堆栈。例如,在线零售商Ocado自2000年以来一直为英国家庭提供新鲜食品,其已经建立了自己的技术平台来管理物流和仓库。2017年,该公司决定开始将其Docker容器迁移到Kubernetes上,并于当年夏季在其私有云上将其第一个应用程序投入到生产当中。

  对于Ocado和其他企业来说,这一转变的最大好处是可以更快地将产品推向市场,并可以更为高效地利用计算资源。同时,Kubernetes的采用者也都指出了一个缺点,即学习曲线陡峭。尽管从长远来看,该技术将使开发人员的工作变得更加轻松,但是这并不意味着他们的工作将变得简单化。

  以下是一些大型的全球公司在生产中运行Kubernetes的案例,以及这些公司在此过程中得到的经验和教训。

  彭博社从早期部署中获得好处

  专业的金融数据公司彭博社在2015年就开始使用Kubernetes,当时该工具仍处于测试阶段。在该工具在持续集成、监控和测试等方面通过了验证后,彭博社于2017年将其投入到生产当中。

  彭博社每天要处理数千亿个金融数据点,仅其Terminal终端机就在为14000种不同的应用程序提供着驱动力。IT部门希望加快为用户带来新应用程序和服务的速度,并使开发人员从操作任务中脱身。

  在评估了各种编排平台(例如Cloud Foundry、Mesosphere Marathon和各种Docker产品)之后,彭博社选择了Kubernetes。彭博首席技术官办公室计算基础设施主管Andrey Rybka解释说:“因为它们具有良好的基础,很明显这是我們正要解决的问题。它们的愿景和发展路线图正是我们想要的。”

  经过了一段时间之后,彭博社在Kubernetes上开发了一个本地化的平台即服务层,以为开发人员提供合适的抽象级,进而让他们能够高效地使用该技术。这个自助服务Web门户实质上是一个命令行界面和REST API,其与基于Git的版本控制系统、CI构建系统和中央工件存储库集成在了一起。

  彭博社的一个主要目标是利用Kubernetes的自动扩展功能更好地利用现有硬件,以及在无问题反馈单的情况下即可实现虚拟计算、网络和存储的可自我配置和灵活收缩。Rybka在CNCF案例研究中表示:“借助Kubernetes,我们可以非常高效地使用硬件,以使利用率达到90%~95%。” 这种效率很大程度上来自于能够控制为指定工作负载提供的资源,因此不会导致其他工作负载资源不足。

  与大多数企业在生产中采用Kubernetes的情况一样,主要挑战来自使用YAML编写清单,这些清单会指定Kubernetes如何分配资源。Rybka说:“这些都是Kubernetes中非常棒的概念,但是它们需要陡峭的学习曲线。”

  正如彭博社的数据和分析基础设施主管Steven Bower所说的那样,“Kubernetes让很多事情变得更加容易,但是不一定会更简单。”

  为此,彭博社从最基本的清单着手逐步推进,同时开始展开大量的内部培训计划,一开始只将标准限在一个很小的范围,随着开发人员对技术的逐步熟悉,开发人员可以扩大标准的使用范围。

  他说:“我们现有的基础设施很多,但是从大型主机迁移到Kubernetes的可能性为零。”编排平台主要针对的是基于Web的应用程序和全新的系统。在Bower工作的数据与分析基础设施团队中,最初的方法是建立一个新的数据科学计算平台,供机器学习工程师使用Spark和TensorFlow等工具运行复杂的工作负载。

  在谈到建立专业知识的重要性时,Rybka给出了他的的忠告。他说:“实际上,用户必须要拥有一个与上游Kubernetes、CNCF和整个生态系统保持密切联系的专家团队,以获得大量的内部知识。用户不能光依靠供应商,他们自己还需要了解所有与此相关的复杂性。”

  News UK通过Kubernetes实现了按需扩展

  作为媒体巨头新闻集团(News Corp)的英国分支机构,News UK自2017年以来就开始尝试Kubernetes,2018年他们从自己自定义Kubernetes集群迁移到了亚马逊网络服务(AWS)托管的Elastic Kubernetes Service(EKS)上。后者构成了堆栈的一部分,其中包括了部分AWS服务,如Elastic Container Service、Fargate计算引擎、AWS Batch和Elastic Beanstalk。

  首个迁移到托管Kubernetes环境中的生产应用程序是用于访问控制和用户登录的旧版Java系统。在证明了该环境完全满足需求后,News UK便开始对其他应用程序进行有序的识别和迁移。

  今年早些时候,News UK的云开发工程师Marcin Cuber在专业监测公司New Relic位伦敦召开的Futurestack活动上发表讲话时指出:“从操作上讲,这简化了我们必须维护和监测的内容。最重要的是,我们在独立的VPC中拥有了EKS,从而使我们能够指定自己的安全群组和网络访问控制列表。”

  News UK的主要目标是更好地围绕突发新闻事件和不可预测的读者数量扩展自己的环境。Cuber举例称:“如果有突发新闻,我们希望每个读者都能在全球范围内获得实时更新,当然也要让读者拥有完美的体验。”

  Kubernetes与虚拟机自动缩放的不同之处在于速度方面。 Cuber说:“虚拟机需要很长时间才能启动,并且在流量高峰时,它们的速度还不够快,无法为AutoScalingGroup带来新的容量。在Kubernetes中運行的Docker容器则更小、更轻便,因此使我们能够在几秒钟的时间内进行扩展,而不是几分钟。”

  对于希望部署Docker和Kubernetes的任何企业,Cuber也提供了一些建议。首先是使Docker镜像尽可能地小,并注重使用Kubernetes运行无状态应用程序。 他说:“这样将显著改善用户的可扩展性和可移植性。”

  其次是对应用程序进行健康检查,并使用YAML部署所有的内容。他补充说:“在这种方式中,用户可以使用在部署后立即失效的临时证书,不必担心静态的本地证书会受到威胁。”

  News UK还希望通过将EKS群集与AWS现货实例搭配起来的方式降低成本。因为在AWS实例上,AWS会以折扣价出售空闲的计算容量,但是AWS会随时回收该容量。

  Cuber说:“现货实例在价格方面有着巨大的优势,与按需付费相比,我们可以节省约70%费用。”为了避免节点被抢走的问题,工程师们设置了一个AWS Lambda函数,该函数可以检测来自AWS的终止信号,并自动清除受到影响的节点。

  最后,News UK运行Kubernetes的一个潜在优势是招聘。他说:“Kubernetes是开源的,这很具有吸引力。我们希望能够吸引到真正关心云原生技术的工程技术人员。”

  Kubernetes助力Amadeus

  西班牙旅游科技巨头Amadeus早在五年前就开始使用Kubernetes,最早使用的版本可以追溯至0.7版本。在随后的两年中,该公司希望监控、警报和生态系统能够成熟起来,然后再将关键业务应用程序转到Kubernetes。如今Amadeus认为当初他们的选择是正确的。

  Amadeus云平台软件工程总监Julien Etienne说:“我们想更快地使用Kubernetes,因此我们努力学习了如何操作Kubernetes以及如何对其进行监控,如何发出警报。”

  Amadeus是全球三大分销系统之一,该系统使旅行社和元搜索引擎(如Expedia和Kayak)能够销售航班机票、预订酒店客房和租车。该公司于2016年下半年开始与Red Hat的OpenShift平台携手,将其第一个应用程序(针对航班)移到生产环境中的Kubernetes上。该计划原本想要率先迁移酒店预订应用程序,但是随着该项目不断变大,公司认为基于Linux构建的航班应用程序更迫切地需要迁移到公有云上,以更好地满足其航空公司客户不断增长的对更低延迟的需求。

  Etienne说:“我们从一开始拥有的优势是我们的所有应用程序都在Linux上,因此它们从一开始就对容器非常友好。具体的问题是如何将现有应用程序移到容器上,然后再移至Kubernetes上。我们的目标非常简单而直接。”

  迁移到Kubernetes的举措非常适合Amadeus的业务目标,即主要通过其合作伙伴Google Cloud从本地数据中心转型到公有云上,以便其可以更好地扩展,以满足季节性需求,减少因过度配置而产生的基础设施成本。

  就面临的挑战而言,Amadeus是一个强大的工程技术公司,与使用Kubernetes 等工具需要进行企业文化转型相比,因此一旦完成培训,技术性挑战将变得微不足道。

  Etienne说:“主要挑战之一是转变开发人员的思维方式。他们曾经考虑从运行应用程序的机器着手。现在我们可以不用再考虑机器了,因为所有东西只是一个由YAML文件驱动的配置。”

  他补充说:“每个人都已经为容器做好了准备,最大的转变是以不可知的方式操作应用程序。”

  Amadeus的总体目标是将所有生产工作负载转移到一个单一带有Kubernetes的运营模型上。到目前为止,该公司已迁移的工作量约为10%~15%。Amadeus平台解决方案管理总监Sebastien Pellise说:“现在就断定我们已经实现了预定目标还为时过早。”

  Amadeus负责技术平台和工程部的前高级副总裁Dietmar Fauser认为,“采用Kubernetes工具的另一个潜在好处是容易招募和保留人才,因为对高级工程师而言,从事这类工作要比在大型机上工作要更具吸引力。”

  为Kubernetes的未来做好准备

  这些各种案例研究最有趣的方面之一是它们所呈现出来的一致性。无论是金融服务、媒体、零售还是技术行业,各种规模的企业都在努力应对这种以小型的、离散的、松散耦合的功能块构建和部署软件的方式所带来的巨大变化。

  挑战与利益之间也存在一致性。所有这些企业都不得不采取有时令人感到痛苦的文化变革。同时,他们还要在招聘人才时与谷歌和Facebook等巨头展开激烈的的人才竞争,这对于他们还说是一项巨大的挑战。所有这些企业也都开始加快其开发周期,降低成本,缩短宕机时间,并更加频繁地为其客户提供更多价值。

  在这一点上,毫不夸张地说,任何不适应容器和Kubernetes的企业都将难以跟上我们这个新的加速发展的软件驱动世界。

  Scott Carey

……
关注读览天下微信, 100万篇深度好文, 等你来看……
阅读完整内容请先登录:
帐户:
密码: