9.21和9.22这两天参加了微软DevOps的培训,主要是围绕TFS2015的不少新功能来讲的,相比较之前我们一直使用TFS2013来管理团队,确实强大了不少,也更加实用了。

首先,什么是DevOps?

运维说主要是发布管理、CI持续集成的,开发说是开发测试一体化的,项目经理说是项目流程管理的。。。其实都没错,只是都不全面。百度百科上较严格的定义,不过它的似乎就是像开源社区一样,是经过大家集思广益,各自的经验方法总结而形成的一套覆盖软件开发运维流程的经验论。

目标人群

(第1天)企业研发经理,部门经理、团队经理与项目经理可以通过此培训了解到:
敏捷开发最佳实践分享,成功引入敏捷所需的企业文化变革,团队管理理念转换和对质量的全新理解;
DevOps研发流程落地项目的案例分享,了解研发全生命周期管理平台的持续价值交付能力。

(第2天)开发人员,测试人员,架构师,运维工程师和项目经理可以通过此参与此培训获得完整的敏捷团队开发体验:
参与培训的人员被组织成“领航员团队”,使用全生命周期管理平台实际进行为期2天的DevOps开发体验;
经过“领航员团队”培训的人员在回到本人的团队后可以作为领航员引导团队的日常开发工作,并指导团队进行改进。
了解一个项目从需求收集,规划,开发,测试到交付的全过程;
了解使用全生命周期管理平台支撑DevOps端到端过程和工程实践
了解使用容器技术构建持续交付管道(Release Pipeline)的最佳实践。

TFS可以为不同角色的团队成员提供不同的视角,将你关注的内容呈现在系统仪表盘上

项目经理仪表盘

以下视图展示了作为项目经理可以通过简单的配置实现的项目仪表盘,包括:当前迭代进度(燃尽图),团队成员,成员工作分布和进度,逾期任务,代码签入量,Bug趋势和项目总体进度。

开发仪表盘

TFS 也可以为开发团队提供专注于开发过程的仪表盘,如以下仪表盘为每个开发人员提供了个性化的视角来查看:未完成工作,我的Bug,我的任务进展,当前版本的测试执行时间和测试结果,以及每次CI的执行结果。

测试仪表盘

测试人员也可以建立自己独立的仪表盘,列出测试计划,测试执行情况,已经提交的BUG的进展情况以及测试结果分析。

Configuration as Code 基础架构即代码

这里印象深刻,把需要部署的环境封存成DLL或jar包,给我的代码来结成,最后即使是一个新的环境,也可以通过发布包代码直接部署。概念很超前,不过很多大公司的运维已经再用了,Docker——官网就是 Docker - Build, Ship, and Run Any App, Anywhere

质量

传统模型是基于左边的,而敏捷软件开发强调的是右边这张图,在一定的约束条件下,为了获得有价值的产品,只能牺牲相对的质量。

质量这个概念因人而已,需要分特定的条件。譬如说一款软件,某一个功能一直被用户抱怨,但确实是一直被用户实用的最多的功能,而另一个功能,用户从来没有抱怨,实则用户从来不用。所以质量在一定的环境条件范围下,是可以被牺牲的。这就好比行走的骨骼,抓住重点。

敏捷的质量

敏捷不一定保证一定就是快速开发出一条软件,相对的,它可能会更加复杂。它能保证给你的是优秀的软件质量和优秀的团队。Scrum的根本目标是提高质量,而不是满足时间和成本要求!

误解:敏捷开发是为了快速交付?

敏捷开发不是一种为了快速交付而出现的方法,它之所以比较快则是因为避开了许多浪费的处理方式。

影响地图Impact Mapping

一个价值导向的实践方法,透过可视化的方式, 建立商业目标与产品功能的关系, 以及背后关联的假设.

举了个琅琊榜的列子

以目标为导向

它主要解决的是

一、业务部门及开发部门之间的理解、沟通、协调及隔阂。

二、目标到功能间联系的模糊和不一致。

影响地图可以作为用户故事地图的输入

用户故事地图User Story Mapping

透过可视化的方式, 建立用户场景与技术规格之间的联系,并辅助团队有效沟通。

靠谱的想法到落地的计划

创建用户故事地图(User Story Mapping)的8个步骤

第一天的重点除了介绍DevOps概念,就是讲解了如何产生需求,如何讲用户故事。通过两种方法影响地图Impact Mapping 和用户故事地图User Story Mapping。感觉主要内容是给管理者和业务产品的。

第二天的内容主要是讲Scrum敏捷开发流程和CI持续集成。

重点强调一下完成规范

静态代码检查(SonarQube)不能完全替代Code Review还是需要人工来验证代码的逻辑和架构等。

关于Code Review,TFS的sourceControl由于branch策略不同,所以需要签入之前发给某人验证。而Git可以签入后去评审,由分支策略导致,签入后合并前。

剩下的就是做实验,演示用TFS做CI.

(部分内容摘自徐磊老师的PPT和相关博客文章)

相关链接:

9月活动预告《构建高效DevOps团队》

从微软和小米的转型之痛,解读DevOps落地的核心要点

京东618:15万个Docker实例,所有业务全部容器化

DevOps敏捷开发动手实验

用户故事地图(User Story Mapping)之初体验

Impact Mapping 影响地图 读书与演练心得

徐磊老师的博客

微软构建高效DevOps团队培训总结的更多相关文章

  1. 高效DevOps的10项实践

    高效DevOps的10项实践 原文链接: http://www.drdobbs.com/architecture-and-design/top-10-practices-for-effective-d ...

  2. BAT都来参加的 DevOps Master 培训

    原文:http://www.sohu.com/a/128425731_262549 自高效运维社区开设 DevOps Master 认证培训以来,已经总共有120多人拿到证书,其中在今年春节后,有68 ...

  3. 第2课:操作系统网络配置【DevOps基础培训】

    第2课:操作系统网络配置 --DevOps基础培训 1. DNS配置 1.1 什么是DNS? 域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务.它作为将域名和IP ...

  4. DevOps团队交付了什么?

    一.简介 "你在团队里是做什么的?" "DevOps." "DevOps是什么呢?" "DevOps是一种文化.一种实践,目标是加 ...

  5. 灵雀云新一期DevOps认证培训圆满结束,下期学员招募同步开启

    近日,灵雀云最新一期EXIN DevOps认证培训在北京圆满结束,来自某知名运营商领域ISV的近40名学员以百分百的通过率为此次培训画上圆满的句号. 灵雀云是国内首家在DevOps培训领域与EXIN合 ...

  6. 使用Nginx+CppCMS构建高效Web应用服务器

    使用Nginx+CppCMS构建高效Web应用服务器 1:Why当前,越来越多的网站使用了各种框架,大部分框架使用了脚本语言.半编译语言等.比如Java.Python.Php.C#.NET等.这些框架 ...

  7. 使用Nginx+CppCMS构建高效Web应用服务器(之二)

    使用Nginx+CppCMS构建高效Web应用服务器(之二) 上一篇 使用Nginx+CppCMS构建高效Web应用服务器(之一) 大致介绍了网站的整体架构,实际上通过调用REST获取数据并没有实现. ...

  8. 使用Nginx+CppCMS构建高效Web应用服务器(之三)

    使用Nginx+CppCMS构建高效Web应用服务器(之三) --充分利用服务器和客户端计算能力 欢迎测试,攻击:http://www.litelottery.com     网页右上角,选择博彩,演 ...

  9. 受邀与微软售前技术团队参与TFS技术沟通会议

    微软正式发布Azure DevOps Server 2019的第一个版本,作为Team Foundation Server (TFS)2018的升级版本和替代产品. 作为开发运维一体化平台的主打产品, ...

随机推荐

  1. Linux 进程资源用量监控和按用户设置进程限制

    每个 Linux 系统管理员都应该知道如何验证硬件.资源和主要进程的完整性和可用性.另外,基于每个用户设置资源限制也是其中一项必备技能. 在这篇文章中,我们会介绍一些能够确保系统硬件和软件正常工作的方 ...

  2. Matlab三维绘图

    三维绘图 1 三维绘图指令 类 别 指 令 说 明 网状图 mesh, ezmesh 绘制立体网状图 meshc, ezmeshc 绘制带有等高线的网状图 meshz 绘制带有“围裙”的网状图 曲面图 ...

  3. bash的使用技巧

  4. 关于Unity的C#基础学习(一)

    一.程序包含 1.数据:运行过程中产生的 2.代码:代码指令 数据和代码都是存放到内存中的,代码指令在程序加载的时候放到内存,数据是在程序运行的时候在内存中动态地生成,随时会被回收,要定义变量来存放数 ...

  5. Softmax vs. Softmax-Loss VS cross-entropy损失函数 Numerical Stability(转载)

    http://freemind.pluskid.org/machine-learning/softmax-vs-softmax-loss-numerical-stability/ 卷积神经网络系列之s ...

  6. javax.Servlet的包中,属于类的是。(选择1项)

    javax.Servlet的包中,属于类的是.(选择1项) A.Servlet B.GenericServlet C.ServletRequest D.ServletContext 解答:B Serv ...

  7. 【BZOJ】1057: [ZJOI2007]棋盘制作(单调栈)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1057 同某一题差不多?记不清是哪题了.. 就是每一行进行单调栈维护递增的高度,在进栈和出栈维护一下长 ...

  8. 【BZOJ】1673: [Usaco2005 Dec]Scales 天平(dfs背包)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1673 bzoj翻译过来的c<=230不忍吐槽......................... ...

  9. ztree获取选中节点时不能进入可视区域出现BUG如何解决

    zTree 是一个依靠 jQuery 实现的多功能 “树插件”.优异的性能.灵活的配置.多种功能的组合是 zTree 最大优点. zTree 的特点编辑 ● zTree v3.0 将核心代码按照功能进 ...

  10. 数据仓库与BI面试常见题目

    一. 数据库 1. Oracle数据库,视图与表的区别?普通视图与物化视图的区别?物化视图的作用?materialized view 答:a:视图是虚拟表,提高了表的安全性,视图没有实际物理空间,而表 ...