容器和Kubernetes:三个成功的变革案例

  • 来源:计算机世界
  • 关键字:转型,独立,容器
  • 发布时间:2020-05-12 18:32

  无论是作为数字化转型的一部分,还是为了避免为应对不断增长的需求而兴建昂贵的新基础设施,如今各行各业的企业都在尝试着将数据和工作负载迁移到云端。对于许多企业而言,此举的关键是容器和Kubernetes,尤其是当涉及多个云服务时。

  容器是独立的软件包,其将应用程序的所有代码和依赖项捆绑在一起,以确保应用程序无论在什么计算环境中都能够可靠地运行。正因为如此,容器可以很方便地将应用程序从开发人员的笔记本电脑中迁移到测试环境当中,或是将应用程序从测试环境迁移到生产环境,抑或是将应用程序从数据中心的物理机上迁移到私有云或公有云中的虚拟机上。

  盡管容器简化了在环境之间转移工作负载的工作,但是它们仍然需要维护,而这正是Kubernetes的优势所在。Kubernetes是一个开源的容器编排系统,旨在自动执行容器化应用程序的部署、扩展和管理。虽然Kubernetes最初是由谷歌开发的,但是其目前由云原生计算基金会(Cloud Native Computing Foundation)负责维护。

  许多企业发现,在多云或混合云环境中,将容器和Kubernetes组合使用可以实现工作负载的可移植性。以下是这些技术的三个真实案例。

  Expedia集团:增强在线旅行体验

  在线旅行服务提供商Expedia集团从2013年开始使用微服务架构和AWS公有云服务。2015年,该公司开始通过亚马逊EC2容器服务(ECS)部署容器以运行微服务。

  技术部署的主要业务驱动因素和技术驱动因素是,应用程序在多个环境中具有更高的可移植性,以及新产品和新服务具有更快的上市速度。

  Vrbo为Expedia集团旗下为旅行者提供住宿服务的子公司。该公司的杰出工程师Kuldeep Chowhan说:“得益于容器能够在几秒钟内启动起来,我们向客户交付新功能的时间大为减少,产品上市速度也得到了极大的提升。”

  Chowhan说,容器在工作环境之间的可移植性以及容器的部署速度加快了公司向微服务迈进的步伐。如今,由于大量应用程序正运行在横跨多个AWS云区域的ECS上,这使得Expedia能够为旅行者和合作伙伴提供更好的服务。

  2015年,Vrbo开始使用Apache Mesos(一种用于管理计算机集群的开源平台)在本地数据中心和AWS云环境中运行容器工作负载。Chowhan说,这使得Vrbo开发人员能够在两种环境中运行相同的工作负载,从而加快了Expedia从本地数据中心向云端的迁移速度。

  近年来,随着Kubernetes技术的普及,Expedia还熟练掌握了Kubernetes。Chowhan表示,该集团旗下的Hotels.com部门目前在AWS云中的Kubernetes上运行了数百个应用程序,为客户提供酒店预订等服务。

  在亚马逊于2019年推出了Elastic Kubernetes服务(EKS)之后,Expedia集团的许多团队,如数据科学、在线体验、流媒体等团队开始利用该服务运行容器工作负载。Chowhan说:“从长远来看,这是一个大趋势。Expedia集团正计划朝着容器运行时和编排需求这个方向前进。”

  向微服务架构和容器的转型为Expedia集团在快速启动新服务方面带来了明显优势。过去开发新应用程序需要花费数月的时间,如今该集团每天都可以推出新的功能。

  Chowhan说:“通过现代化应用程序架构和DevOps实践,我们看到交付给客户的功能增加了一个数量级。在过去三年中,Vrbo品牌的发布速度提升了12倍。”

  得益于容器的可移植性,Expedia应用程序可以在多个AWS区域中以分布式方式运行,以提供高可用性,从而使全球客户都可以在不中断的情况下访问其旅行站点。

  容器还可以实现“有目的的扩展”。Chowhan说:“当我们使用单体应用程序时,我们不得不扩展整个基础设施以便为流量提供支持。借助容器和微服务,我们现在可以更加智能地扩展站点中具有高客户需求的特定部分,从而节省基础设施成本。”

  容器仍然需要一定程度的基础设施管理。Chowhan说:“要部署和运行容器,你需要一个容器运行时和编排平台。与任何软件解决方案一样,当有更新发布后,这些更新需要大规模地部署到正在运行容器平台的现有服务器群上。”

  从源代码到运行时,围绕容器和微服务的开发一直在不断发展。Chowhan说:“我们必须进行重组,以适应横跨整个旅行平台的新生态系统。同时我们还要对工程技术人员展开培训,让他们能够适应横跨不同容器的生态系统的发展。”

  Primerica:确保高质量的现代化代码

  金融服务与保险公司Primerica创建了一个Kubernetes环境,以便在IBM基于Nutanix硬件的私有云产品中扩展应用程序。Docker容器可帮助Primerica在不同环境之间实现应用程序的一致性。

  该公司首席技术官兼负责应用开发与交付执行的副总裁Barry Pellas表示:“这是我们从传统技术堆栈向现代混合云迁移的关键战略中的一部分。这种环境使得我们能够继续以新的现代化方式看待我们在几十年来开发的应用程序的价值。由于能够更容易向业务应用程序交付新功能,这使得它们在我们的API(应用程序编程接口)和微服务策略中也发挥了关键作用。”

  对容器和Kubernetes的综合使用使Primerica不仅可以托管应用程序,还可以监视应用程序,并在容器发生问题时快速恢复。

  Pellas说:“我们提供了端到端的基础设施即代码,这使得我们能够始终如一地构建可预测的环境,并消除了可能的人为错误。我们的持续集成和交付功能可确保产品团队始终可以随时获得最新的修改。同时他们也相信,对环境和应用程序的验证已经成为了部署流程的一部分。”

  容器和Kubernetes使用的主要推动力是它们可以为团队提供机会,能够以更快的速度和更高的质量交付应用程序。此外,它们还提供了一个安全稳定的工作环境和在高使用时间下的可扩展性。

  Pellas说:“我们还希望我们的各种环境之间具有可预测性和一致性,以帮助调试和解决问题。”

  虽然Primerica只是在最近才開始使用容器和Kubernetes,但是他们看到团队的生产力得到了提高,为用户开发的新功能可以被更敏捷地交付。Pellas说:“通过在开发流程中尽早发现问题,我们能够提供更安全的和可预测的应用程序。随着将越来越多的应用程序迁移到平台上,我们希望这一举措能够提高应用程序的质量,并在整个产品团队中获得一致性的开发体验。”

  与任何技术一样,希望部署容器和Kubernetes的公司需要学习相关的技能。Pellas说:“让团队掌握可在环境中进行开发的正确技能具有挑战性。”

  Primerica通过为其产品团队提供相关培训,为业务领导者提供最佳实践以帮助将项目推向市场,从而解决这些挑战。

  克莱姆森大学:合理利用计算资源

  克莱姆森大学遗传与生物化学系的Feltus实验室是一个由遗传学家、计算机科学家、计算机工程师和生物工程师组成的跨学科团队。他们将软件工程和计算生物学技术融合在了一起,从而在人类和植物生物系统中获得了有用的分子发现。

  该系的教授Alex Feltus说,实验室使用生物信息学、统计和数据科学方法来发现新的模式。“我们分析的生物学数据集处于TB级到PB级之间,为此我们优化了数据密集型计算工作流程,使得数据适合各种计算平台,其中包括多家商业云提供商。”

  近年来,该实验室将开发工作重点放在了在Kubernetes系统上运行的工作流上。 Feltus说:“我们相信,Kubernetes将成为数据密集型计算的通用标准平台,这使得我们能够将软件工程工作集中在一种架构上。”

  目前生物数据库正在以几何方式增长,对这些数据集的数据挖掘可以帮助我们从生物学的角度深刻洞察我们面临的医疗和粮食安全挑战。Feltus说:“即使是小型的生物学实验室也一直需要大量的计算资源。研究人员提出的生物学问题很快就要达到千万亿次级,这需要访问目前在商业云中可能使用的大型计算机。Kubernetes集群是进行大规模计算的绝佳平台。”

  Feltus说:“在迁移到云端之前,生物学研究人员需要民主化且免信用的云沙箱,在其中可以大规模设计和测试工作流。这些沙箱很关键,因为90%的科学实验都会进入死胡同,并且云信贷预算可能会在有研究结果之前就被耗完。”

  目前Feltus实验室还正在与其他许多研究小组合作,尝试着将内部部署和云服务整合为一个具有可扩展性的资源,Kubernetes和容器将在里面发挥巨大作用。Feltus说:“ Kubernetes和容器是计算生物学工作流工程的首选平台。这些系统使得我的学生能够绕开变幻莫测的HPC(高性能计算)环境配置。”

  目前该实验室已部署了思科容器平台,该平台可帮助团队在一个平台上管理来自不同云服务提供商的多个集群。

  一旦实验室在Kubernetes集群中完成了对工作流的测试,那么他们就可以在多个商业云服务中运行容器化的工作流。Feltus说:“这简化了最终用户培训,让用户能够专注于科学研究。”

  本文作者Bob Violino为Computerworld、CIO、CSO、InfoWorld和Network World等网站的特约撰稿人。

  Bob Violino

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