微软构建高效DevOps团队培训总结
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和相关博客文章)
相关链接:
用户故事地图(User Story Mapping)之初体验
微软构建高效DevOps团队培训总结的更多相关文章
- 高效DevOps的10项实践
高效DevOps的10项实践 原文链接: http://www.drdobbs.com/architecture-and-design/top-10-practices-for-effective-d ...
- BAT都来参加的 DevOps Master 培训
原文:http://www.sohu.com/a/128425731_262549 自高效运维社区开设 DevOps Master 认证培训以来,已经总共有120多人拿到证书,其中在今年春节后,有68 ...
- 第2课:操作系统网络配置【DevOps基础培训】
第2课:操作系统网络配置 --DevOps基础培训 1. DNS配置 1.1 什么是DNS? 域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务.它作为将域名和IP ...
- DevOps团队交付了什么?
一.简介 "你在团队里是做什么的?" "DevOps." "DevOps是什么呢?" "DevOps是一种文化.一种实践,目标是加 ...
- 灵雀云新一期DevOps认证培训圆满结束,下期学员招募同步开启
近日,灵雀云最新一期EXIN DevOps认证培训在北京圆满结束,来自某知名运营商领域ISV的近40名学员以百分百的通过率为此次培训画上圆满的句号. 灵雀云是国内首家在DevOps培训领域与EXIN合 ...
- 使用Nginx+CppCMS构建高效Web应用服务器
使用Nginx+CppCMS构建高效Web应用服务器 1:Why当前,越来越多的网站使用了各种框架,大部分框架使用了脚本语言.半编译语言等.比如Java.Python.Php.C#.NET等.这些框架 ...
- 使用Nginx+CppCMS构建高效Web应用服务器(之二)
使用Nginx+CppCMS构建高效Web应用服务器(之二) 上一篇 使用Nginx+CppCMS构建高效Web应用服务器(之一) 大致介绍了网站的整体架构,实际上通过调用REST获取数据并没有实现. ...
- 使用Nginx+CppCMS构建高效Web应用服务器(之三)
使用Nginx+CppCMS构建高效Web应用服务器(之三) --充分利用服务器和客户端计算能力 欢迎测试,攻击:http://www.litelottery.com 网页右上角,选择博彩,演 ...
- 受邀与微软售前技术团队参与TFS技术沟通会议
微软正式发布Azure DevOps Server 2019的第一个版本,作为Team Foundation Server (TFS)2018的升级版本和替代产品. 作为开发运维一体化平台的主打产品, ...
随机推荐
- Jmeter测试带加密参数的接口
在做接口测试时,很多时候我们都会碰到带有加密参数的接口,这种接口一般来讲都会有统一的加密方法,找开发要就好,Jmeter怎么去测呢 1.整体结构如下所示: 2.操作步骤 (1)将加密方法打成jar包放 ...
- 自定义控件VS用户控件
自定义控件VS用户控件 2015-06-16 1 自定义控件与用户控件区别 WinForm中, 用户控件(User Control):继承自 UserControl,主要用于开发 Container ...
- RDD缓存学习
首先实现rdd缓存 准备了500M的数据 10份,每份 100万条,存在hdfs 中通过sc.textFile方法读取 val rdd1 = sc.textFile("hdfs://mini ...
- java定时调度器解决方案分类及特性介绍
什么是定时调度器? 我们知道程序的运行要么是由事件触发的,而这种事件的触发源头往往是用户通过ui交互操作层层传递过来的:但是我们知道还有另外一种由机器系统时间触发的程序运行场景.大家想想是否遇到或者听 ...
- 分析HTML5中WebSocket的原理
目录结构 一.什么是Websocket websocket是html5提出的一个协议规范,参考rfc6455. 不过目前还都是在草案,没有成为标准,毕竟html5还在路上. websocket约定 ...
- 重新=》easyui DataGrid是否可以动态的改变列显示的顺序
$.extend($.fn.datagrid.methods,{ columnMoving: function(jq){ return jq.each(function(){ var target = ...
- JavaScript实现网页安全登录(转)
现在很多商业网站的用户登录都是明码传输的,而一般用户又习惯于所有帐号使用相同的密码来保存,甚至很多人使用的密码和自己的银行帐号都一样哦!所 以嘛还是有一定的安全隐患的,YAHOO的免费邮箱登录使用了M ...
- SQL on Hadoop 的真相(2)
转自:http://blog.jobbole.com/87159/ 这是一组系列博客,目的是详尽介绍 SQL-on-Hadoop .该系列的第一篇会介绍一些存储引擎和在线事务处理(简称 OLTP )相 ...
- 23SpringMvc_各种参数绑定方式-就是<input那种
本篇博文转载自http://www.cnblogs.com/HD/p/4107674.html: SpringMVC的各种参数绑定方式 1. 基本数据类型(以int为例,其他类似):Controlle ...
- 【BZOJ】1053: [HAOI2007]反素数ant(贪心+dfs)
http://www.lydsy.com/JudgeOnline/problem.php?id=1053 约数个数等于分解出的质因数的(指数+1)的乘积这个就不用说了吧... 然后好神的题在于贪心.. ...