生命不息 研发不止——存储技术如何跟上DevOps口号?

日期:2017-3-29作者:Chris Evans

【TechTarget中国原创】

DevOps术语的涵义是:开发和运营紧密协作,以全新的敏捷开发工作模式实现企业级应用程序的交付。DevOps将某些IT运维职能转移到了开发团队,能够以最快速的方式创建、开发、修订和部署应用程序,而且通常无需和任何运维团队交涉。

要提供一个敏捷或DevOps的环境,包括存储的各种资源都将更注重以云的方式使用和部署。DevOps的发展取决于IT基础设施是否具备足够的灵活性,能否按需提供足够的资源来支持应用程序的创建和部署。因此,应用开发者会期望DevOps基础设施能支持比从前社区开发全面优化的工作方式。通常情况下,这些优化差异包括以下几点:

  • 资源动态按需可用:在开发过程中,基础架构资源基于耗用需求的变化动态供应。举例来说,这可能意味着一个新的开发环境能够依据需求信息、基于容器和虚拟机组件完成创建过程。
  • 自动化和工作流:按需构建开发环境,并且构建过程尽可能自动完成。在大多数情况下,应用程序开发框架将以主模板作为数据源来创建,然后用于部署应用程序和封装所需的组件(例如数据库服务器、web服务器等等)。
  • 扩展和应变力:DevOps的开发中经常需要调用多个环境,同时测试许多应用程序的不同版本。每个开发人员都会希望拥有自己的环境,但实际使用的时间都并不长。这意味着DevOps环境应该能持续有效地在应用启动前提供资源,然后在应用结束后销毁和回收资源。
  • 支持虚拟机和容器:几乎所有DevOps流程都依赖于虚拟机或者容器实例内的应用程序开发。支持虚拟机和容器的存储平台会提供更轻松的管理和整合体验。

DevOps的应用引入了一系列能实现可持续的应用开发过程的全新工具和框架。这些工具包括类似Jenkins和Computer Science公司的Agility发布管理系统;类似Kubernetes和Mesosphere的业务编排工具;当然,还有虚拟化框架,例如Docker、OpenStack和Vagrant。我们也开始看到平台与存储的整合,为可持续的应用开发实现自动化和安全保障。例如,Docker可以利用存储卷API插件来扩展平台功能,为持久型外部存储提供业务编排。Kubernetes可以利用各种存储资源组成持久性的数据卷,这些资源可以包括传统的数据块和文件接口(iSCSI、FC、NFS)、或者云和开源存储。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

评论
查看更多评论

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者>更多

Chris Evans
Chris Evans

Chris Evans已经在IT行业工作了25年以上。早期的职业生涯始于大型机领域,然后进入存储和系统编程领域,专注于开放系统存储和目前流行的虚拟化和云技术。

数据管理工具>更多

相关推荐

技术手册>更多

  • 绿色存储专刊

    存储系统自身的耗电情况一直以来都没有得到数据中心经理们的注意,因为经理们大都注意电力或者空调冷却设备的耗电成本上去了。还因为,服务器端因为没有存储系统智能而会得到更多的关注。现在情况有所改变,这些时日存储系统的耗电情况成为了大家关注的对象。

  • 存储虚拟化工作手册

    为了解决这些关于存储虚拟化的问题,我们特地写了这篇存储虚拟化手册,希望它可以帮助你们更好地认识那些在存储虚拟化过程中用到的产品和流程。

  • 数据归档教程

    今天,海量数据驱使陈旧的数据迁移到更低成本的媒介,以获取直接的经济回报,然而归档技术正逐渐成为存储管理任务中的一项分支,以及驱动业务的一种应用。

  • 存储管理程序指导教程

    存储管理程序是将不同物理存储设备上未使用的容量整合成一个存储池,能充分利用物理硬件。存储管理程序可以运行在专用的存储上,虚拟机上或者服务器管理程序内部。

TechTarget

最新资源
  • 安全
  • 虚拟化
  • 网络
  • 服务器
  • 数据中心
  • 云计算
【TechTarget中国原创】

本文节选自2017年3月刊《存储经理人:固态闪存之现状

DevOps术语的涵义是:开发和运营紧密协作,以全新的敏捷开发工作模式实现企业级应用程序的交付。DevOps将某些IT运维职能转移到了开发团队,能够以最快速的方式创建、开发、修订和部署应用程序,而且通常无需和任何运维团队交涉。

要提供一个敏捷或DevOps的环境,包括存储的各种资源都将更注重以云的方式使用和部署。DevOps的发展取决于IT基础设施是否具备足够的灵活性,能否按需提供足够的资源来支持应用程序的创建和部署。因此,应用开发者会期望DevOps基础设施能支持比从前社区开发全面优化的工作方式。通常情况下,这些优化差异包括以下几点:

DevOps的应用引入了一系列能实现可持续的应用开发过程的全新工具和框架。这些工具包括类似Jenkins和Computer Science公司的Agility发布管理系统;类似Kubernetes和Mesosphere的业务编排工具;当然,还有虚拟化框架,例如Docker、OpenStack和Vagrant。我们也开始看到平台与存储的整合,为可持续的应用开发实现自动化和安全保障。例如,Docker可以利用存储卷API插件来扩展平台功能,为持久型外部存储提供业务编排。Kubernetes可以利用各种存储资源组成持久性的数据卷,这些资源可以包括传统的数据块和文件接口(iSCSI、FC、NFS)、或者云和开源存储。

我们还应该认识到,DevOps的很大一部分其实就是类似AWS的平台的公共云,在云平台内可以很容易地创建和销毁开发环境。存储通常由云平台管理,并不会暴露给开发人员。正如我们将稍后讨论的,使用公共云支持持续开发任务的一个问题是,怎样利用测试数据来生成开发环境。

资源调配

在DevOps环境内部署存储的难度等同于创建一套私有云。存储资源必须具备按需创建和销毁资源的能力,以更加动态的方式供应。例如,在利用类似Kubernetes或者Mesosphere的编排和管理框架创建一个DevOps环境时,存储只需要简单地提供所需的资源。这意味着自动化API能够按需随时创建LUN和卷,并将它们映射到应用程序。

在类似OpenStack的应用程序部署框架内可以使用插件调用供应商开放的产品自动化接口,从而降低存储资源开销。OpenStack的Cinder项目就包括了动态创建基于块的存储、并将存储资源映射给虚拟机实例的功能。Openstack还有其它针对文件(Manila)和对象(Swift)存储的项目。大多数存储设备和软件定义存储(SDS)供应商都会提供通过提供中间插件来支持Cinder,从而实现编排流程的管理。中间驱动程序会为各厂商的存储平台翻译Cinder指令(如创建卷或删除卷),紧密跟踪记录存储资源和其关联的实例。

很明显,开发环境中的变动频繁程度远超过生产环境。由于资源的周转量巨大,存储平台必须胜任高频次的配置修改。这对旧的存储系统是个问题,因为过去的存储系统配置都几乎一成不变。存储供应商越来越强烈感受到对于“以编程方式”使用代码的需求,命令行界面和图形用户界面已经不再适用,用API来驱动产品已成为一项必备的功能。这些API应该能够并行处理多个请求(即使资源更改请求是串行的)。

多租户

一般情况下,开发人员并不关心资源会以何种方式提供。开发人员关心的是他们环境的可用性,工作期间有足够的服务级别保障。这意味着,在DevOps环境中分配存储资源时,应该着重提供多租户功能。多租户的定义是,在为共享资源提供多用户访问时,任何用户或“租户”都不会互相影响。对于DevOps环境至关重要的是,多租户功能可以严格防止单个应用程序环境消耗过多存储资源,无论是存储容量还是性能。事实上,管理员应限制每个环境的资源消耗量,尤其是在底层硬件和生产系统共用的情况下。

效率

对于高效的开发环境而言,数据优化是极为重要的一个方面。数据优化的必要性显而易见:在从主映像源生成常用开发环境的时候,或者,在生成生产数据的副本的时候。在这些情况下,类似重复数据消除的功能将会显著节省存储容量。

重复数据消除技术加上快照之类的功能让您可以快速、高效地创建大量测试环境。特别是快照功能,可以用最小的开销执行虚拟机实例的克隆。克隆操作远比创建全新虚拟机实例(然后对其进行配置)更加实用,特别是在已经对实例应用了大量自定义配置的情况下。

借用数据

准确的应用程序测试必须借助真实世界的数据,从而尽可能精确反映生产环境。在大多数开发场景下,典型做法是定期对生产数据执行复制或获取快照,并将数据副本作为测试的依据。当然,数据必须妥善地匿名处理,确保客户信息受到充分保护。

在私有云环境中,通过快照、克隆或复制方式创建生产环境的副本映像是比较容易的。这些技术假定开发平台兼容于生产环境,从而允许您将快照的副本移动到另一个平台。另外,生产和开发任务可以运行在同一硬件上,同时还能为生产数据维持恰当的性能级别和服务质量。

将数据搬运到公有云中会带来更多问题,包括在公共云存储数据的成本,将数据复制到云环境耗费的时间。类似Avere Systems vFXT的产品可以在公共云平台上运行,将数据的访问范围从组织内部扩展到云端,从而提高开发数据的可访问性。这些产品的优势是,他们只访问活动数据,从而能优化存储和网络成本。

关于监控

在资源经常被创建和销毁的高周转率环境中,总会存在存储浪费或过度使用的风险。企业频繁创建开发环境然后放弃,最典型情况是事后就忘掉,毕竟随时按需创建和启用一套环境来得太过轻松了。因为许多开发环境一直被创建,却没有及时回收,在极端情况下就很容易导致存储蔓延的后果。监控和维护可以有效控制容量和性能的增长,同时识别不再被使用的环境。监控也是实现资源回收的重要基础,并且需要足够的粒度才能准确跟踪每一个环境的创建,便于未来精准回收。

存储技术

DevOps的兴起也促进了适合敏捷开发的特定存储技术的产生。这些技术包括:

自建还是外购?

总而言之,在DevOps环境内针对存储的要求跟正在流行的私有云如出一辙。随着原本由存储管理员手动处理的工作变成自动化执行,建设存储所需的资源中,人的因素已经不再重要,存储已经开始变得不怎么有存在感了。

传统的存储对于DevOps环境可能最没有吸引力,而最新的横向扩展存储产品则是最完美的替代方案。您也可以选择自己搭建存储而不是购买厂商提供的成品硬件,从而节省大笔金钱。同时,随着开放源代码产品新版本和功能的不断升级,整体成本还有望进一步降低——这就是DevOps口号:生命不息,研发不止。