将Ops成员嵌入开发团队
从我每天开始参加这个团队起步就开始了。 我的目标是让更多的人参与到开发团队中,以更好地了解整个流程的工作原理。 该团队是我们两个基础架构团队之一,他们专注于可伸缩性,稳定性和性能增强更改。 最初,这个团队正在创建一个新的Web服务API服务,我在这里写了一些。
最终,该服务被搁置,团队继续使用新的授权和身份验证服务。 对于这项新服务,已决定使用持续部署。 我们已经至少每周进行一次全自动部署,但是要为开发人员提供部署每项提交所需的工具(包括监视和部署自动化更改)有一点跳跃。
我还注意到,在此之前,我与团队坐在一起的几次会议上,我立即更多地参与了讨论–他们问我问题(因为我在那里),并且我可以选择参加计划会议。 我自己的办公桌和“与他们同坐”的办公桌之间确实有20英尺的距离,但这却与众不同。 因此,我与管理层讨论了一直与该团队坐在一起的情况,他们同意尝试。
现在,这个团队有点独特。 该团队由少数从事代码工作的开发人员组成,但它也是Build&Release人员以及管理测试基础结构的Sysadmin的家。 与这个团队的坐在一起给了我一个机会,不仅可以参与这项新服务的开发,而且还可以更多地参与“构建和发布”过程,从而熟悉所处理的日常问题以及与之配对伙计们来研究我们在开发与生产之间共享的人偶配置。 这种团队结构以及我的团队结构使其也非常适合完全在一个团队中解决持续部署问题(至少对于此服务而言)。
作为持续部署实施的一部分,我们希望使开发人员尽可能容易地访问他们所需的指标。 我们已经为访问日志付出了很多精力,但是我们的监视系统需要Ops参与才能管理新指标。 因此,作为这项新服务的一部分,我们还必须对新的度量标准收集/趋势系统进行调整-我们着眼于Ganglia&Graphite。 我们并不是要解决警报问题,只是要求我们选择的任何系统都能够向Nagios公开指标。 我与开发人员合作,为我们的应用程序测试了各种方法,可将指标推入每个系统中,同时还评估每个系统是否具有良好的操作适应性(易于管理,性能,可伸缩性等)。
在整个过程中,还有很多有关如何执行部署的问题。 我们保留多少个以前的版本? 我们何时以及如何回滚? 成功进行部署的标准是什么? 在生产失败之前,我们如何确保它在测试中失败? 我们必须在服务中内置什么才能允许滚动部署不中断服务? 清单还在继续-这些都是任何服务都应该考虑的事情,但是当开发人员构建部署工具时,他们会非常了解所有这些-太棒了。
大约45天后,我们选择了监视系统并在生产和测试中运行,我们已经将部署部署到我们的测试系统,而我们才刚刚开始将其部署到生产中。 现在,我们必须开始暗中启动,将生产系统中的流量发送到新服务,而又不影响生产流量,这样我们就可以了解该后端服务的性能,是否正确响应了生产流量并通常更好地了解行为产品流量。 时至今日,由于我们进行了各种调整和调整以确保已准备好投入生产,因此该服务仍处于黑暗状态-再次,它很棒。
60天的事情开始逐渐消失。 我们已经黑暗启动了几周,并且大部分开发人员都可以访问他们需要的所有内容–他们可以查看图表,日志,如果他们需要新的指标,则将它们添加到代码中,并在出现后立即进行监控部署。 我们将部署线添加到了图表上,因此我们可以将部署与图表上的趋势相关联-更加出色。 但是,我的工作逐渐结束,出现的运营问题越来越少,我开始转向从事其他Ops项目的工作。
当我回顾过去60天与该团队一起工作时,我意识到使我无法参与开发团队的20英尺高脚现在使我无法参与操作团队。 我当时确实很矛盾,但是感觉很健康,因为现在工作已经结束,应该搬回Ops。 当人们发表评论“哇,你回来了!”时,我立即意识到了它的影响。真的,伙计们,我在20英尺外! 你用nerfDart射击我!
因此,现在我已经回到Ops了几周了,实际上发生了变化–与起初相比,我对那个开发团队的参与仍然更多。 他们仍然将我包括在计划中,并且服务中出现运营方面的问题时,他们会来找我。 但是,那只20英尺又到了,我听不见所有对话,而且我知道如果有人不必站起来并走过去,就会遇到一些问题。 我们的开发团队往往会进行大量配对,结果是不经常使用IM,电子邮件响应通常会延迟-配对无疑会减少电子邮件检查的时间。
我很高兴我做到了吗? 绝对。 我会再做一次吗? 我想我会-但我会限制它并设定期望。 我认为与团队的亲近感有助于在开发服务和制定决策时Swift行动并提出想法,但这确实对我与Ops团队的关系产生了影响,我希望我可以避免。 我认为继续前进和前进–与Ops团队在一起会很有帮助。 实际上,我确实在Ops中度过了待命周(每4周),而不是坐在Dev团队那里,但是我会尝试在这3周之间找些时间在那儿,那太过分了缺席。
综上所述,我认为总体而言,公司和服务对于结果的实现是更好的,对我个人而言,这是一次极富洞察力的体验,我希望每个Ops员工都可以尝试一下。
参考:将 Ops成员嵌入Dev团队-我最近从JCG合作伙伴 Aaron Nichols的Operation Bootstrap博客中获得的经验。
翻译自: https://www.javacodegeeks.com/2012/05/embedding-ops-members-in-dev-teams.html
将Ops成员嵌入开发团队相关推荐
- 【Java7】练习:选角色,挑苹果,员工类,换心脏,斗地主,发工资,客户信息管理软件,开发团队调度系统
文章目录 1.玩家选择角色:return new 2.人工挑苹果:只一个接口CompareAble 3.员工类接口:implements Comparator 4. 医生帮换心脏:Organ类doWo ...
- Java基础学习:尚硅谷项目三 开发团队调度软件
Java基础学习:尚硅谷项目三 开发团队调度软件 一.软件功能与结构设计 1. 软件功能 该软件实现以下功能: 软件启动时,根据给定的数据创建公司部分成员列表(数组) 根据菜单提示,基于现有的公司成员 ...
- Java 项目开发团队分配管理软件
目录 1 系统结构功能 2 系统流程 3 软件设计 3.0 前提 3.1 用户注册登录模块 3.2 开发人员管理模块 在这个模块中,我们需要创建几个实体类 3.3 开发团队调度管理模块 3.3.1 需 ...
- 项目开发团队分配管理软件
一.目标 1.模拟实现一个基于文本界面的<项目开发团队分配管理软件>: 2.熟悉Java面向对象的高级特性,进一步掌握编程技巧和调试技巧. 3.主要涉及以下知识点: 类的继承性和多态性 对 ...
- 实现一个项目开发团队分配管理软件思路及过程
做一个项目之前首先要知道做什么?实现什么功能?得到什么效果?然后再理思绪以及怎么做,慢慢来,一口吃不成个胖子,切忌一上来就动手做,简单的代码还好,一旦代码更多更复杂进行到后面就很容易乱成一锅粥,所以我 ...
- Java学习笔记项目三:开发团队调度软件(尚硅谷)
JAVA学习笔记开发团队调度软件 ①创建基础组件 Equipment 接口 package august.domain;/*** 设备领取** @author : Crazy_August* @Dat ...
- 软件开发团队成员分工_分析软件开发人员的能力–选择合适的团队成员
软件开发团队成员分工 在这篇文章中,我将尝试解释一种评估开发人员技能的方法. 该方法仍然是一个概念,缺少一些具体的决策,但是您可以选择最适合您的情况的方法. 有许多评估开发人员技能的方法,我最喜欢的是 ...
- 程序员谈敏捷开发团队里成员间的相互信任
我所在的SAP成都研究院成都数字创新空间团队,虽然是成都CX成立最晚最年轻的团队,但却是一支非常有战斗力的团队,如果说产品开发团队是正规军,那我们就是特种部队,是<碟中谍>系列Ethan背 ...
- 适合软件开发团队的知识管理系统有哪些?10大知识库盘点
知识管理系统并没有一个统一的定义,不同的知识库工具适合的人群也不一致,所以本文将对比以下10大知识库工具(含开源.免费等):1.PingCode:2.Confluence:3.MediaWiki:4. ...
最新文章
- 多ajax请求的各类解决方案(同步, 队列, cancel请求)
- python大神-国内某Python大神自创完整版,系统性学习Python
- 把权限控制做成用户控件--简易型
- Oracle设置权限和还原数据库
- MySql数据库中的子查询使用
- vue路由详解版一目了然
- 谈到云原生, 绕不开容器化
- xaml_XAML或JavaFx?
- 看我如何绕过Cloudflare 的 SQL 注入过滤
- 无线短距通信技术标准:WIFI,蓝牙,ZigBee
- python中if语句的实例_如何在Python中的if语句中调用某个函数?
- Linux内核的温度阀值,Linux内核参数.doc
- NDK编译时指定NDK_MODULE_PATH的方法
- NVMe驱动详解系列_第一部:NVMe驱动初始化与注销
- 【金猿投融展】Techsun天正聚合——联接品牌与人
- 从布朗运动、随机微积分到股票买卖
- PyCharm入门(七)PyCharm Evaluation:Your evaluation license expires in 3 days
- 福寿园首席员工系列报道:一雕一琢 人生定格
- win10禁用触摸键盘_如何在Windows 8和10中永久禁用触摸键盘
- AMCL代码详解(五)根据激光观测更新粒子权重
热门文章
- 8张PPT带你了解Pyecharts地图可视化
- linux分区4k对齐方法,Ubuntu 系统 SSD固态硬盘检查4K对齐以及开启Trim
- 简易温度检测器电路原理
- 连接mysql报错 errorCode 1129, state HY000, Host ‘xxx‘ is blocked because of many connection errors
- 新手小白初学Java(一)一些简单知识
- Python【爬虫实战】爬取美女壁纸资源
- 500px上图片的下载
- 斐波那契数列的通项公式
- 提交github后自动完成habitica habit
- 如何写打动人的「个人简历」