跳转至内容

大数据实用DevOps/未来挑战

来自维基教科书,开放世界中的开放书籍

尽管本书为软件工程中的实用DevOps提出了具体解决方案,但不可避免地,本书无法详细介绍DevOps和软件系统开发中的一些新兴主题。在本节中,我们将讨论该领域中两个新兴的挑战,这些挑战可能会催生新的工业和学术研究工作。

从DevOps到DataOps

[编辑 | 编辑源代码]

在整本书中,我们都专注于开发依赖大数据处理技术的企业IT应用程序。然而,我们并没有详细介绍设计和维护大数据应用程序数据馈送管道的问题。这个问题通常属于数据工程专家的职责范围,涉及到大数据应用程序收集的数据的获取、过滤、分析和存储。特定的架构正在逐渐出现,例如数据湖的概念,它将组织的所有异构数据集整合到一个存储位置,而数据工程师最近认识到需要采用DevOps风格的方法来发布和更新数据管道中涉及的代码。

举个具体的例子,一组团队合作开发业务分析管道,也需要测试、更新和发布新的数据查询和统计分析,就像软件工程师发布应用程序或其组成元素的新版本一样。这种新兴趋势被称为DataOps,它带来了新的研究挑战,例如决定DevOps中哪些方法可以应用到这个领域,或者确定DevOps和DataOps方法是否可以在同一方法中共存。质量驱动的工程方法在DataOps领域提出了严峻的挑战,因为需要保证数据隐私和数据完整性,这需要专门的方法进行测试。

DevOps和微服务

[编辑 | 编辑源代码]

新兴的行业趋势,如微服务,正在提出将DevOps扩展到支持交付分解成细粒度且独立部署的服务(称为微服务)的云应用程序的问题。微服务在许多方面不同于传统的Web服务

  1. 微服务是精益的,这意味着传统的Web服务可以公开许多API,而微服务通常只实现一个或很少几个功能。此外,微服务通常基于轻量级的REST/JSON通信,而不是Web服务中常见的SOAP/WS-*堆栈。
  2. 接下来,微服务旨在专门映射到单个开发团队,以便每个团队可以独立于其他团队发布该服务的最新版本。这意味着,除其他事项外,每个团队都可以以去中心化的方式管理自己的数据,从而使应用程序架构摆脱共享数据库,从而促使定义新的架构范例以及新的方法来确保可用性、一致性和检查点。微服务的另一个重要特性是
  3. 最后,也许是最重要的,微服务旨在利用容器化的优势,例如,能够自动扩展服务。这带来的一个后果是,当微服务变得非常细粒度,以至于等效于应用程序代码中的单个函数调用(称为纳米服务)时,实际上可以自动扩展应用程序代码的部分,以牺牲性能来降低扩展成本。

显然,微服务的上述特性使它们与基本企业应用程序有很大不同,并且它们需要DevOps朝着去中心化实践的方向发展,每个团队都拥有用于在交付到生产环境之前推理应用程序更新的工具。开发用于微服务去中心化软件工程的支持工具,并推理如何将应用程序架构分解成适当大小的服务,是未来几年最紧迫的研究挑战之一。

华夏公益教科书