玩转容器与Kubernetes,这三家企业有什么「独家秘诀」?
如今,各行各业都在加快数字化转型的脚步,将数据与工作负载迁移至云端,这样做,一是加快交付和创新速度,二是避免业务需求不断增长时,还要持续采购昂贵的新基础设施组件。
在这个过程中,最为关键的因素当然离不开容器与Kubernetes,它们在涉及多种云服务时显得尤其重要。
容器是一种独立的软件包,能够将应用程序的全部代码及依赖项捆绑起来,确保应用程序能够在任何计算环境下都将可靠地运行。以此为基础,容器促进了应用程序从开发者笔记本电脑到测试环境、从测试环境到生产环境,或者是从数据中心内实体机到私有或公有云端虚拟机的顺畅迁移。
但需要强调的是,虽然容器本身简化了工作负载在不同环境之间的迁移过程,但其同时也是一项需要维护的技术方案Kubernetes的意义正在于此——作为一套开源容器编排系统,Kubernetes负责自动执行容器化应用程序的部署、扩展与管理。Kubernetes最初由谷歌公司开发,目前由云原生计算基金会负责维护。
企业逐渐意识到,在多云或混合云环境下,容器与Kubernetes已经成为保障工作负载可移植性的强大组合。下面,我们一起来看三个成功运用容器与Kubernetes的案例。
Expedia Group: 增强在线旅行体验
Expedia Group(中文名“亿客行”),是全球最大的旅游平台之一,凭借强大的技术优势,用户能够一百多万个机票、酒店套餐等优惠中搜索,并获得最佳体验。Expedia 从2013年,就开始使用微服务架构与Amazon Web Services (AWS)公有云服务。到2015年,Expedia开始通过Amazon EC2 Container Service (ECS)部署容器来运行微服务应用,借此在AWS云环境中提升应用程序灵活性。
基于此,Expedia 能够让跨多环境的应用程序拥有更好的可移植性,同时加快新产品及服务的上市速度。来自Expedia Group旗下负责为旅客提供住宿服务的Vrbo部门的工程师Kuldeep Chowhan表示,“容器能够在几秒钟之内启动并运行,这大大缩短了我们向客户交付新功能的时间周期,也就相当于加快了产品的上市速度。”
Chowhan指出,容器在不同工作环境之间的可移植性与出色的容器部署速度,加快了企业向微服务架构的迈进步伐。他强调,目前已经有成千上万个应用程序运行在多个AWS云区域中的ECS之上,这也使得Expedia得以为更多用户及合作伙伴提供更强大的服务。
2015年,Vrbo开始采用Apache Mesos——一套用于管理计算机集群的开源平台,借此在本地数据中心及AWS云环境当中运行容器化工作负载。Chowhan表示,这使得Vrbo的开发人员能够在两种环境中运行相同的工作负载,借此加快从Expedia本地数据中心到云端的迁移速度。
随着近年来容器技术的普及,Expedia还开始着手使用Kubernetes。Chowhan指出,该公司的Hotels.com部门目前在AWS云端的Kubernetes上运行着数百种应用程序,用以为客户提供酒店预订等服务。而在Amazon 方面于2019年推出其Elastic Kubernetes Service(EKS)之后,Expedia Group下的数据科学、在线体验、流媒体等多个团队快速跟进,借此运行自己的容器化工作负载。
Chowhan提到,“从长远来看,Expedia Group正朝着容器运行时及编排需求迈出坚实的前进脚步。”Expedia Group向着微服务架构及容器技术的转变,并加快了交付创新速度。以往,新应用程序的开发往往需要几个月时间,但现在他们每天都能推出多项新功能。
通过对现代化应用程序架构及DevOps实践的投资与尝试,Expedia Group 将交付给客户的功能总量提升了一个数量级。过去三年以来,Vrbo品牌的功能发布速度增长了12倍。凭借着容器强大的可移植性,Expedia应用程序得以在多个AWS区域内分布式运行,在增强可用性的同时,确保客户获得最佳体验。
容器还能够实现“针对性扩展”。Chowhan解释道,“在当初使用单体式应用程序时,我们必须得扩展整个基础设施才能支持不断增长的流量。但借助容器与微服务架构,我们现在能够更智能地扩展站点中客户需求所指向的特定部分,借此节约基础设施成本。”
当然,容器的正常运行仍需要一定程度的基础设施管理。Chowhan表示,为了有效部署并运行容器,他们需要一套容器运行时与编排平台。与其他软件解决方案一样,他们掌握着大量已发布及尚未发布的更新,而且需要将这些更新新部署到运行容器平台的现有服务器集群当中。
从源代码到运行时,围绕容器及微服务的开发流程一直在不断发展。他强调,“我们需要进行结构重组,来适应整个旅游行业的全新生态系统,并通过不断发展的跨容器生态系统,对我们的IT工程师们进行技能培训。”
Primerica: 确保使用高质量、现代化代码
金融服务与保险公司Primerica,如今已经建立起一套Kubernetes环境,立足Nutanix硬件扩展由IBM提供的私有云解决方案。与此同时,来自Docker的容器方案则帮助Primerica在不同环境之间实现强大的应用程序一致性。
Primerica的首席技术官兼应用程序开发与交付执行副总裁Barry Pellas表示,“这是我们从传统技术栈向现代混合云迁移的关键战略步骤。”这套环境帮助Primerica不断以新的、现代化的方式从过去几十年中开发而成的应用程序中获取价值,并促进企业向业务应用程序中交付更多新功能,并在API(应用程序编程接口)与微服务策略中发挥着关键作用。
容器与Kubernetes这一强大组合,不仅使Primerica得以轻松托管应用程序,还能够监控应用程序并在容器中出现问题时快速加以恢复。Pellas强调称,“我们提供端到端基础设施即代码,因此能够以统一方式构建起可预测的环境,并由此消除了发生人为错误的可能性。我们的持续集成与交付功能将确保产品团队随时获得最新变更,并保证在部署的同时对环境及应用程序做出全面验证。”
Primerica使用容器与Kubernetes的主要驱动力,在于帮助团队以更快的速度与更高的质量交付应用程序。二者还能提供一套更安全、更稳定的环境,得以在高使用时长之下提供良好的稳定性与可扩展性。Pellas指出,“我们还希望能够在各种环境之间建立起可预测性与一致性,借此帮助调试并解决问题。”
虽然Primerica的容器与Kubernetes使用之旅才刚刚起步,但他们已经深切感受到由此带来的团队生产率提升,及其在为用户提供增量式、敏捷新功能方面表现出的强大能力。
Primerica的IT团队借助容器与Kubernetes技术,在开发过程中能够尽早发现问题,借此提供更安全、运行效果更具可预测性的应用程序。随着Primerica将更多应用程序迁移至容器平台之上,能够实现应用程序质量持续提升,并在整个产品团队中建立起统一的开发体验。
Pellas总结道,与其他技术一样,容器与Kubernetes确实会给企业带来相当困难的「学习曲线 」“必须承认,正确培养起掌握正确技能的团队绝非易事。”Primerica公司正着力为其产品团队提供教育与最佳实践指导,帮助他们更顺畅地发布更多高质量产出。
克莱姆森大学:高效运用海量计算资源
克莱姆森大学遗传与生物化学系的Feltus实验室,是一支由遗传学家、计算机科学家、计算机工程师以及生物工程师组成的跨学科团队。通过将软件工程与计算生物学技术相融合,他们努力在人与植物生物系统内做出更多重要的分子级科研成果。
Alex Feltus教授表示,该实验室使用生物信息学、统计与数据科学方法发现各种模式。“我们分析的生物学数据集一般在TB甚至PB级别,我们设计出经过优化的数据密集型计算工作流,确保数据能够在各类计算平台、包括多家商业云服务商提供的平台上得到高效处理。”
近年来,Feltus实验室将工作重点放在了Kubernetes系统上的工作流当中。Feltus表示,“我们坚信,Kubernetes必将成为数据密集型计算的通用标准平台,帮助我们将软件工程工作集中在统一的架构当中。”
如今,生物数据库的体量正以几何级数增长,而对数据集的深入挖掘有助于解决医疗及食品安全等重大挑战。他提到,“即使是小型生物学实验室,也长期需要大量计算资源。研究人员很快就需要依赖千万亿次算力来解决各类生物学问题。好消息是,如今的商业云已经能够通过大型计算机等设备提供这种强大的算力,而Kubernetes集群已经成为执行大规模计算的绝佳平台。”
Feltus强调,在迁移至云端之前,“生物学研究人员需要注意使用更大众化的、资源控制能力更强的云沙箱环境,确保只在这类环境下运行大规模设计与测试工作流。这是因为90%的科学实验都不可能成功,如果不加控制,研究人员很可能在发现方向有误之前就耗尽自己的资源预算。”
Feltus实验室还与其他多支研究小组开展合作,尝试将内部部署与云服务整合为统一的可扩展资源。在这方面,Kubernetes与容器技术同样发挥着巨大的作用。Kubernetes与容器已经成为计算生物学工作流的首选工程平台,这些系统能够帮助回避高性能计算环境中所固有的大量配置任务。
该实验室还部署了思科容器平台,用以帮助团队在单一平台上管理来自多家云服务商提供的多套集群。实验室方面在Kubernetes集群上完成工作流测试之后,即可在多种商业云环境上运行容器化工作流。Feltus总结道,“这极大简化了最终用户的培训需求,确保研究人员能够专注于科学本身。”