17
DevOps 技术的当前趋势 和未来方向 刘昕鹏(CDL Rational[email protected]纲要 工具的业务承诺 业务和开发 开发和运维

DevOps 技术的当前趋势 和未来方向 - ibm.com · incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip

  • Upload
    dophuc

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

DevOps 技术的当前趋势

和未来方向

刘昕鹏(CDL Rational,[email protected]

纲要

•工具的业务承诺

•业务和开发

•开发和运维

工具的业务承诺得到广泛预期

•更高的质量

•更高的客户满意度

•将业务和IT对齐

•更短的上市时间

•更低的代价/更高的生产力

•更可预测的产出

现实带来极大的复杂性

工具E用户界面

逻辑

数据库

用户界面

逻辑

数据库

用户界面

逻辑

数据库

用户界面

逻辑

数据库

用户界面

逻辑

数据库

工具B

工具D

工具C

工具A• 来自提供商的多个工具– 面向合作伙伴和提供商的灵活的异构环境

• 很多分布在不同地域的开发团队– 分布式开发, 跨地域的产品开发

– 多层次的团队–项目管理团队,开发团队,运维团队,等等

• 一致的流程– 灵活和鲁棒的流程

–支持生命周期 / 敏捷的方法学

– 度量和提高有效性

企业想获得什么?

1. 知识交流和人员集成

2. 更好的流程

3. 基于事实的评价体系

企业实际上碰到的是什么?

1. 精力被每天的交付压力所分散 – 78%

2. 工具没有得到很好的集成 – 62%

3. 缺乏必要的内部专业知识 – 56%

交付面临的挑战 人员

流程

信息

人员

流程

信息

客户

快速和连续创新的渴求

业务链

需求

开发和测试团队

编码和测试

运维团队

业务服务

1st 鸿沟

2nd 鸿沟

“在有些情况下,你退一步看,就会认识到你有很多糟糕的孤立系统让限制了多个方向性项目的透明性。

- 开发总监Temenos, Inc.

当今的业务和技术让传统的交付方法出现断层

应对开发总线(BusDev)的鸿沟

客户

快速和连续创新的渴求

业务链

Requirements

开发和测试团队

编码和测试

运维团队

业务服务

1st 鸿沟

2nd

鸿沟

1.迭代和增量式流程

2. 可追踪性

应对……

连通的生命周期数据数据是目标

o 资源和关系o 工具操作数据o 工具执行数据o 工具用统一的方式对外提供

数据 (REST)

生命周期集成: 追踪,索引,分析生命周期数

据所存在的网络

利用英特网的体系架构o 所有的数据都是有URL的资

源o 开放标准o 松耦合o 技术中性o 可伸缩性,可扩展性

用于生命周期协作的开放服务(OSLC)用于改进软件生命周期工具共享数据的方式

Automation

Monitoring

社区驱动和管理

400+ 注册的社区成员

来自 34+ 个组织的工作组成员

广泛的兴趣爱好者,专家和参与者

各种领域的开放标准

通过场景定义 – 面向解决方案

由 IBM, 业务伙伴和其他公司共同参与实现

基于 连通数据

用于生命周期协作的开放服务由网络发起的生命周期集成

由网络驱动

验证免费使用和共享

开放改变业界

创新open-services.net

Asset Management

Asset Management

新的集成服务——基于生命周期的查询

LQE

QueryWeb UI

提供了面向由多个生命周期工具聚合产生的连通生命周期数据的查询能力

连通生命周期数据(LLD)

<http://reqs.com/req/1234> rdf:type oslc_rm:Requirement .<http://reqs.com/req/1234> dcterms:title “Smooth upgrade path” .<http://reqs.com/req/1234> oslc_rm:elaboratedBy <http://reqs.com/req/7772> .<http://reqs.com/req/1234> oslc_rm:validatedBy <http://tests.com/test/521> .

<http://tests.com/test/521> rdf:type oslc_qm:TestCase .<http://tests.com/test/521> dcterms:title “Verify compatibility” .<http://tests.com/test/521> oslc_qm:usesTestScript <http://tests.com/script/13> .

http://reqs.com/req/1234

http://tests.com/test/521

资源 URI主题 谓词 对象

RDF 三元组 资源的表现形式RDF 数据图

RDF 标准 www.w3.org/RDF/

SPARQL 查询语言

SELECT ?x ?title1 ?y ?title2 WHERE { ?x rdf:type oslc_rm:Requirement . ?x dcterms:title ?title1 . ?x oslc_rm:validatedBy ?y .?y rdf:type oslc_qm:TestCase . ?y dcterms:title ?title2 . }

SPARQL 标准 www.w3.org/TR/rdf-sparql-query/

x title1 y title2<http://reqs.com/

req/1234>“Smooth upgrade path”

<http://tests.com/test/521>

“Verify compatibility”

SPARQL查询

查询结果

SPARQL 专为RDF数据集设计的一种查询语言

查询能够自行连接从多个生命周期工具中聚合起来的生命周期数据

生命周期工程示例

Robot的Obstacle Detection System

Obstacle Detection Kit [1.0]

Mobility Function Design

YoyoBot A Obstacle Detection Test PlanDirection Change Requirement Module

连通生命周期数据

Catalog Part AssetCatalog Part Asset

Requirement Collection

Requirement CollectionTest PlanTest Plan

RequirementRequirementRequirementRequirement

RequirementRequirement

Execution ResultExecution Result

Execution RecordExecution Record

Test CaseTest Case Functional DesignFunctional Design

ViewView

PartPartPartPart

PartPartPartPart

Yoyobot B

Design Elements Requirements Test Cases

mobility_function velocity MR1: Velocity

MR9: Terrainterrain

MR10: Inclineincline

MR3: Direction Changedirection change

Asset Catalog

Ostacle Detection Kit [1.0]

应对应用生命周期管理鸿沟

DevOps

客户

快速和连续创新的渴求

业务链

Requirements

开发和测试团队

编码和测试

运维团队

业务服务

2nd

鸿沟

现今自动化开发交接的方法

部署

环境运行时系统

源代码版本控制管理

源代码

.jsp

.java

.html

组件

对应用二进制文件进行构建、打包和单元测

开发阶段

版本控制

经构建的组件

被引用的组件

IDE

工程

1. 使用版本控制工具来管理你要构建的目标

2. 使用库来连接到已经经过构建的部分

自动化构建阶段

版本控制

Built Components

Referenced Components

自动化构建引擎

自动化构建机器

产生下一个待选任务

任务任务

基准线基准线

1. 追踪在一个构建中的材料清单

2. 管理哪次构建的结果将被移到下一阶段

Packaged Component

自动化部署阶段

库使用

自动化构建引擎

自动化构建机器

发布

已构建组件已构建组件

被引用组件被引用组件

被引用组件被引用组件部署部署

任务任务

部署/验证

1. 控制什么已经被部署

2. 追踪用于部署的材料清单

当只有敏捷开发得到改善时……敏捷开发

持续集成中待构建的组件被高高摞起

功能测试功能测试

可接受测试可接受测试

投入生产投入生产 操作人员

安装(数月)

安装

测试和运维团队随着工作量的加大而压力陡增,但还是用

传统的瀑布模型和工具

调整交付的大脑风暴• 基础设施开发人员 vs. 操作人员/管理人员

• 需要把在软件开发上的很多考虑用到运维领域来

• 在合适时复制标准的体系架构/开发工具以及方法学

• 使用敏捷方法规定交付条例

• 连续、递增的增强和交互新的功能

• 自动化的单元和集成测试提高了运行时质量

• 源代码版本控制管理

– 自动化的过程和脚本是运行时的基础

• 想类似管理源代码那样管理运行时有如下好处:• 集中控制过程和环境的变化

• 当有任何丢失时进行现场保存以便恢复

• 通过与之前版本进行比较定位出可能的回归测试

• 被管理的资产示例:– Perl, Jython, WSADMIN, ANT 脚本, 服务组合过程 (opsware, buildforge, 等等),

Infrastructure Gold 组件

敏捷开发和提交作为对持续提交的扩展——持续集成

设计

Prioritize

构建

测试敏捷开发

部署

监控

DevOps

发布

测试

DevOps: 在开发和运维之间建立紧密对齐以保证以可控的风险来增强应用的变迁速度

DevOps原则和价值

•跨领域协作

•在类生产环境中进行开发和测试

•高频率部署

•持续验证运行时质量等相关指标

人员

流程

信息

人员

流程

信息

更好地进行DevOps的12原则*协作

1.你的开发和运维团队相互协作吗?是经常的吗?

2.你们对应用和平台有一致的模式吗?

3.你有清晰定义的应用和平台交付流水线吗?

自动化

4.你的运行时工程师理解如何开发结构良好的可重用系统配置脚本吗?

5.你能一步部署一个系统吗?

6.你能为你的开发软对提供基础设施即服务和平台即服务环境吗?

7.你的开发人员能不在运行时操作人员的帮助下按需启动、使用和销毁典型的环境吗?

*基于 “The Joel Test: 12 Steps to Better Code”http://www.joelonsoftware.com/articles/fog0000000043.html

更好地进行DevOps的12原则*

验证

8.你有自动化测试来验证你的应用和平台的功能和安全性吗?

9.你能再部署你的应用之前就基于期望的KPI验证平台软件吗?

10.你能以天为周期部署你的应用并进行验证吗?

管理和控制

11.你使用版本控制吗?

12.你有一个和开发阶段使用的缺陷数据库相关联的运行时问题追踪系统吗?

安装指南

RedHat Linux

Apache Web Server

Python

1. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

2. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

1. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.

2. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur,

3. adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.

1. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur?

2. Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur,

3. vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?

基础设施即代码

源代码版本控制管理

源代码

.jsp

.java

.html

chef recipes

.sh

提交流水线

部署

环境运行时系统

使用相同的工具和方法学来管理和交付

软件以及部署配置变更。

使用相同的工具和方法学来管理和交付

软件以及部署配置变更。

源代码版本控制管理

源代码

.jsp

.java

.html

chef recipes

.sh

可部署组件

对应用二进制文件和平台配置进行构建、打包和单元测试

IBM SmartCloud Continuous Delivery通过交付扩展敏捷内涵

质量管理员IT管理员

开发者

持续交付

目标产出

•开发团建将敏捷概念扩展到在云上进行快速工作量部署

•运行时团队向开发组提供可伸缩的持续交付服务

客户价值

• 降低风险,提高质量;管理从开发阶段到部署阶段的变化

• 提高效率,加速交付;流程间的自动转接

• 优化资源;工作量模式组合交付

Rational Collaborative

Lifecycle Management

端到端的生命周期优化

设计

优先级排序

构建

Test敏捷开发

Deploy

监控

DevOps

Publish

测试

人员

流程

信息

人员

流程

信息

用于生命周期协作的开放服务

由网络发起的生命周期集成

在 Enterprise DevOps和Jazz团队维基上跟踪我们的进展

生命周期管理参考架构

协作生命周期管理

交付流水线交付流水线

OSLC

自动化配置自动化配置

OSLC

持续集成持续集成

OSLC

质量管理质量管理

OSLC

自动化部署自动化部署

OSLC

拉取配置

追踪工作项

触发部署

部署服务

追踪质量

追踪工作项

触发交付 更新配置

拉取变更

在任何时候以任何顺序加以采纳

变更管理变更管理

OSLC

OSLC

需求管理需求管理 自动化测试自动化测试

OSLC

触发测试

执行测试

触发测试

© Copyright IBM Corporation 2012. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials. Nothing contained in these materials is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in these materials may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. IBM, the IBM logo, Rational, the Rational logo, Telelogic, the Telelogic logo, and other IBM products and services are trademarks of the International Business Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.

www.ibm.com/software/rational

www.ibm.com/software/rational

www.ibm.com/software/rational