大型数据/相关工作实用DevOps
数据不仅是我们社会几乎所有经济和社会活动的一部分,而且已经成为所有行业、组织、国家和地区的必不可少资源。但为什么会这样呢?预计到2020年,将会有超过16泽字节的有用数据(16万亿GB)。数据不仅是我们社会几乎所有经济和社会活动的一部分,例如速度、多样性和社会经济价值,标志着向数据驱动的社会经济模式转变,这表明从2013年到2020年每年增长236%。因此,数据爆发确实是一个现实,欧洲必须以有组织、有力、以用户为中心和目标导向的方式来应对和努力。很明显,数据开发可以成为创新的先锋,推动尖端技术,增强竞争力,并产生社会和经济影响。
业务计划的价值主张是在项目早期必须定义的最关键因素。价值主张应该是一个简短但同时又全面的项目陈述,解决诸如以下问题:为利益相关者提供了什么价值?解决了哪些业务问题/需求,满足了哪些需求?为每个利益相关者群体提供了哪些产品和服务组合?
为了达成一个强大且切中要害的价值主张,该主张将涉及整个DICE,并将其所有创新都呈现出来,并确定在其生命周期中产生的项目的实物资产。尽管强烈建议持续监控市场并根据项目生命周期中开发活动的成果修订这些资产,但初始分析应考虑项目的核心目标和预期结果。此类方面包括创新、动机以及为DICE利益相关者提供的增值。
最后,前面提到的分析应有助于定义DICE开发战略的其他重要部分,即项目的细分市场、趋势和目标群体。从利益相关者需求的角度出发,对现有开发功能与DICE生态系统预期功能进行定性比较,是项目长期可持续性的关键。
为了定义DICE价值主张,DICE开发团队为财团的所有合作伙伴分配了多项任务。因此,合作伙伴致力于填写与他们在DICE背景下实施的工具、他们带来的技术、他们提供的服务、类似的计划以及相较于它们的优势等相关的多个模板。在接下来的章节中,我们将详细介绍这些贡献。
DICE价值主张如下:DICE提供创新的开发方法和工具,以增强中小独立软件供应商在业务关键型数据密集型应用程序(DIA)市场中的竞争力。利用DevOps范式和当今创新的大型数据技术,DICE为基于云的DIA的质量驱动开发提供完整的开源解决方案。
分析信息的最终目标是将DICE定位到市场。DICE创新型生态系统有哪些有意义的市场领域可以渗透,当今的趋势是什么,DICE是否处于这些趋势之中,等等。所有这些问题在项目的早期阶段都需要得到解答,以便将开发阶段引向创造创新的方向,从而确保其长期可持续性。很明显,只有有前景的想法才能确保项目在项目资金结束之后也能保持活力。
从宏观角度来看,下图通过呈现其“宏观”和“微观”市场领域来将DICE定位到市场。
DICE可以被视为DevOps运动的一部分,因为它提供了一套工具,这些工具可以通过模型驱动的方法促进从开发到运维的信息流,并使运维监控和异常检测功能能够促进从运维到开发的信息流。此外,DICE在DevOps的背景下提供了以下原则
- 借助DICE的特性,它可以使用适当的操作注释进行DIA设计,从而促进设计时仿真和优化。“开发”和“运维”可以并肩工作,使用提供的重构架构设计的仿真和优化工具来改进和增强应用程序设计。
- 包括监控和工具,这些工具利用监控数据来检测异常并优化应用程序配置,监控数据还被工具利用来向架构设计提供反馈,以识别瓶颈并重构架构。
- DICE还提供用于自动化交付和持续集成的工具,这些工具有助于将设计时和运行时工具集成到DICE中,并提供DevOps自动化。
组织现在面临着一个挑战,即如何以更智能的方式利用数据,使用能够在短时间内快速分析海量数据的数据密集型应用程序。但是,大数据系统是复杂的系统,涉及许多相互关联的不同框架来处理数据。软件供应商如何在日益增长的复杂性中实现越来越高的水平?他们如何在不降低服务质量的情况下加快产品上市时间?这增加了大数据应用程序设计和操作需求,也需要一种共同的方法,使开发和运营团队能够在整个应用程序生命周期中实时做出反应,并确保质量和性能需求。因此,大数据系统开发为系统开发人员和运营商带来了一些技术挑战和要求,这些挑战和要求将严重影响业务模式的可持续性,特别是对于资源有限且无力影响市场的软件供应商和中小企业。特别是DICE团队在实践中发现了以下问题
- 缺乏用于质量感知开发和持续交付产品的自动化工具,这些产品已在质量保证方面得到验证。换句话说,存在许多不同的框架,软件供应商可以采用这些框架来开发其数据密集型应用程序。但是,没有自动机制能够使他们能够以自动化方式跨越如此不同的技术堆栈验证软件质量。
- 缺乏用于质量驱动架构改进的自动化工具。为了开发数据密集型应用程序,软件供应商需要采用架构风格来集成系统的不同组件。在开发过程中,这种数据架构的复杂性会增加,并且没有自动化工具能够使设计人员根据基于在真实平台上监控系统而检测到的性能瓶颈和可靠性问题来改进架构。
- 缺乏与行业异构流程成熟度互操作的工具和方法。开发和维护数据密集型应用程序是IT市场多样性的关键,涵盖大型工业企业和中小型企业。但是,在这种多样性中存在大量不同的软件流程。这种多样性很少从方法论和技术角度加以考虑。例如,很少有评估表明某些数据密集型设计方法在符合能力成熟度模型集成(CMMI)4级(定量管理)或2级(管理)的IT公司中的适用性,然而,这些设计方法的行业采用可能在很大程度上取决于此类评估。DICE提出了一种轻量级模型驱动方法来设计和部署数据密集型应用程序,其中模型成为与行业中已建立的密集编码或原型设计程序(例如,在CMMI 5级参与者中)并驾齐驱的资产。DICE模型在帮助开发人员获得所需的QoS属性以及准备其数据密集型业务逻辑方面发挥着作用。这种方法论方法提供了与任何CMMI级别的具体集成,从具有初始成熟度的新兴中小企业——他们可以在最简单的形式下使用DICE,例如,使用敏捷方法——到可能需要细粒度和框架特定支持以实现质量的大型企业IT企业。
软件供应商始终能够找到适应新情况的方法,以帮助组织采用并实现其目标。在过去几年中,DevOps实践获得了巨大的发展势头。来自各行各业的组织都认识到,如果他们想要保持创新并对当今不断增长的业务需求做出响应,则需要缩小开发和运营之间的差距。这种新的范式侧重于一种新的做事方式,一种试图改进开发人员和运营人员的协作和沟通,同时自动化软件交付和基础设施更改流程的方法。因此,需要一个新的生态系统来通过提供以下功能来促进此类自动化流程
- 业务需求和技术服务质量:所有类型的组织都需要快速发展,并且需要将其IT资产与自身需求保持一致(创建新的资产或调整现有资产)。因此,ICT部门需要确保其ICT平台和基础设施足够灵活,以适应业务变化,而不管用于创建这些数据密集型应用程序的IT基础设施类型如何,无论它们是使用开源软件构建还是由公共云提供商提供的云服务。换句话说,他们应该尽可能避免技术锁定。
- 架构重构:应用程序的效率、可靠性和安全性应在测试和生产环境中进行监控,并通过指标和数据直接快速反馈给开发团队,以便更快地进行测试、改进和调整,以满足服务水平目标。
- 应用程序监控和异常检测:监控引擎收集的实时数据访问权限还应提供生产环境中观察到的应用程序的性能和可靠性数据,以评估识别异常值和检测任何可能损害依赖于此类数据密集型应用程序的持续业务流程的异常的需求。此外,此类监控数据应协助应用程序架构师和开发人员构建面向优化的目标基础设施。
- 效率和最佳配置:大数据应用程序通常会消耗公司通过公有云获得的昂贵资源。因此,优化此类应用程序以减少资源需求并提高输出至关重要。因此,组织需要拥有自动化工具来优化配置此类应用程序,而无需聘请专家来优化其大数据应用程序。