技术

Scala shell内建指令 scala 最佳实践 centos 下安装sqlplus git简介及使用 Commands to Check Weblogic Server Status Spring 中 cache 的使用 pl/sql developer 相关问题 maven 用法 nexus docker 指南 oracle 相关问题 vim 快捷方式 media wiki 的搭建 安装 Kubernetes 如何的在centos中安装docker Hbase学习 hbase 异常解决 Docker 链接容器 dockerfile 最佳实践 centos 7 网卡配置 docker 学习笔记 guava 用法分享 docker命令行 angular小技巧 kubernetes 相关知识 一些windows下的工具 github 小技巧 angularjs 小技巧 java写代码的一些小技巧 lucene学习 在Windows上安装FishEye 快速安装eclipse插件 在fisheye中添加git repository Modbus 协议简介 读书笔记: angular性能调优 我的交叉编译经验谈 如何管理和配置opkg包 刷机失败后的恢复方法 Openwrt Flash Layout 分区调整 netgear wndr3700v4 刷新固件步骤 Openwrt应用包(package)编译 (基于Openwrt SDK) Openwrt编译 (基于Openwrt ImageBuilder) Build Openwrt环境完整过程 openwrt命令总结 在luci系统中增加服务 sftp 命令 系统完整性检查如何加载虚拟光驱 如何在java中启用jmxremote Bash Shell 技巧点滴 knockout和js测试基础 XAMPP 小技巧 knockout小技巧 有关discuz的资源与一些经验积累 javascript小技巧积累 在centos上安装jetty的过程记录 Vagrant构建虚拟开发环境 离线markdown编辑器:stackedit 关于阿里云服务器使用的几个小技巧 discuz被黑的处理办法 git 相关命令总结 BAE 本地开发环境调试笔记 yo 与 knockout 的使用 一些有用的在线工具网站资源 Discuz!X3.2 升级后无法登录后台的解决方法 knockout的一些有用的例子和资源 GoLang 学习笔记

标签


DevOps的规则

2015年01月03日

Web应用就像餐馆一样

人们通过其所提供的体验对其进行评价。即使是短暂的中断也会影响服务提供商的口碑或服务水平。政策和指导方针在防止代价高昂的服务中断中扮演着重要的角色。不幸的是,它们也能导致不理智决策的产生,从而造成更大的损害。比如公司内“DevOps团队”的建立。这将导致所有的运维知识都被隔离在一个单独的团队中。尽管这样一个管理层指令可能预示着DevOps的到来,但它什么都不是。


工程师鄙视无逻辑的官僚主义的规则

这些规则是前进的障碍物。然而,每家公司至少都会有一些这样的规则。在过去,可能有好的理由在一些问题上制定这样的规则。渐渐地,这些规则过时了。但是,规则制定者不能(或不敢)取消它们。当使用C++代码库时,由于历史原因,被告知不能使用STL;参与的Java项目被坚定地拒绝从1.4迁移到新版本。任何有过这样经历的人都明白有些措施可能会对生产力产生消极的影响


##DevOps能量来自于合作中的人有着完全不同的技能 相比于成员技能单一的团队;一个拥有各种不同技能的团队,包括长满胡子的系统管理员、函数式编程的狂热粉丝,更有可能构建出可靠和可扩展的服务


成员技术背景的不同使得团队更加需要明确的规则

开发者不需要知道为什么使用的自定义Linux内核有着一大串的编译参数。类似地,不是所有人都需要担心代码中有多少单例模式对象的存在。“写shell脚本时必须添加shebang行”,或者“解析用户数据的代码要有单元测试”。像这样的标准适用于团队中的每一个人,并且会帮助到那些在特定领域内没有足够经验做好事情的人。特定规则只有被适当的使用,才会对团队产生积极的作用


更通用的规则

像这些Netflix验证只适用于制定高层级决策,但是能够应用地更久。管理团队既需要通用的规则也需要高层级的规则。诀窍是要及时发现我们制定的规则是否已不再发挥期望的作用


如果我们到餐馆,打开冰箱门,不同盒子上有着不同的保质期时间。有的可能几个月,比如番茄酱;有的可能几个小时,比如鱼。做饭要用到不同的原料,而每种原料有自己的保质期。保持原料的新鲜,使得最终做出的食物可口,这是一个厨师的责任。同样,不仅在我们决定要将什么进行标准化这件事上需要智慧,在及时发现我们的标准是否已失去意义这件事上也需要真正的智慧