微软构建高效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的升级版本和替代产品. 作为开发运维一体化平台的主打产品, ...
随机推荐
- yii2 beta版 执行流程
yii2 beta版 执行流程 自动加载 1.composer的自动加载 //composer的加载实现了四种方式,可以看看 require(__DIR__ . '/../../vendor/auto ...
- ERROR 1130 (HY000): Host '192.168.0.190' is not allowed to connect to this MySQL serv
环境: CentOS6.2.MySQL5.1 问题描述: 在配置文件中将需要连接的MySQL的host设置为192.168.0.190(其实就是我自己的IP地址),然后运行自己的程序,结果返回MySQ ...
- jquery 修改 bootstrap模态框的宽度并且居中
1.定义模态框 <div class="modal fade" id="Project_Cell_Modal" tabindex="-1&quo ...
- Shape Control for .NET
Shape Control for .NET Yang Kok Wah, 23 Mar 2017 CPOL 4.83 (155 votes) Rate this: vote 1vote 2v ...
- hdu6149 Valley Numer II 分组背包+状态压缩
/** 题目:hdu6149 Valley Numer II 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6149 题意: 众所周知,度度熊非常喜欢图. ...
- Android基础总结(七)BroadcastReceiver
广播(掌握) 广播的概念 现实:电台通过发送广播发布消息,买个收音机,就能收听 Android:系统在产生某个事件时发送广播,应用程序使用广播接收者接收这个广播,就知道系统产生了什么事件. Andro ...
- IOS 中微信 网页授权报 key[也就是code]失效 解决办法
枪魂微信平台ios手机点击返回 网页授权失败,报key失效.已经解决,原因是授权key只能使用一次,再次使用就会失效. 解决办法:第一次从菜单中进行授权时,用session记录key和open_id. ...
- Mongodb的性能优化问题
摘要 数据库性能对软件整体性能有着至关重要的影响,对于Mongodb数据库常用的性能优化方法主要有: 范式化与反范式化: 填充因子的使用: 索引的使用: 一. 范式化与反范式化 范式是为了消除重复数据 ...
- 基于Unity5的TPS整理
1.游戏管理器 游戏管理器负责管理游戏的整体流程,还可以系统管理用于游戏的全局数据以及游戏中判断胜败的条件.游戏管理器并不是单一的模块,更像是能控制游戏的功能集合.1)怪兽出现逻辑:专门设置一些位置用 ...
- $ -----JavaScript 中美元符号 $ 的作用
JavaScript 中美元符号 $ 是什么 1.首先可以用来表示变量,比如变量 var s='asdsd'或var $s='asdasd'; 2.在正则表达式中,它可以匹配结尾:/sa$/.test ...