DevOps的基本原则与介绍

      DevOps这个术语是developer与operations的合并简写。实现还有QA。DevOps描述与精简软件交付流程,在今天已经开始广泛的使用。强调从生产环境到开发的生命周期快速地反馈学习。DevOps不只是让你更快地交付软件,更多是帮助你产出高质量,与个人需求一致的软件。

鼓励运维工程师与开发工程师积极合作是至关重要的。 DevOps原则有如下: 

l 与人合作

       从你的坐位上起来与其他运维工程师或开发人员面对面交流。在这儿你不能用Email或电话等方式进行沟通。想象试着通过电话与朋友们开个Party一样。是的,现在去和某人交流下一个项目,问题,解决方案,你需要对他们像一个Team一样。

l 穿他们的鞋走路

      如果你准备好理解软件工程师与运维工程师的每天如何工作的,使用工具如何工作,那你最好在现实工作场景一起和他们工作。例如,如果你是一个运维人员,你没有花时间去理解源代码管理系统,而开发人员坚定他们信念使用GitSubversion, 那么需要站在他们立场上去思考问题。需要更多时间去学习系统,因为你能应用你的技能去构建工具从而支持软件开发过程。

l 为其他人而工作
      使每个人工作轻松点儿。为运维构建工具,它也为你了构建工具。如<<Time Management for System Administrators>> 的作者Tom Limconcelli说的,“我们现在是程序员了。” 甚至,我们有补充缺乏的技能集。没有一个人能精通一切,所以构建一个新工具能帮助你的运维人员或开发人员自动化交付过程。它不是正式环境的一部分,甚至是个简单的桌面工具。这是像”交换工具”来实现提高效率,同时也能使TEAM之间巩固关系与加强协作。

      这些基本原则可以应用到大型开发与运维团队的大公司,同样适用刚起步小团队公司。

走近DevOps

越来越多的开发人员和运维人员相互学习各自专长。更多像他们构建一个共同的愿景什么需要做,如何做。开发人员需要学习一些常规高层知识:

l 操作系统

l 网络构架

l 网络安全

l 应用程序安全

l 配置管理

l 自动化实践

与开发人员在一起工作的运维人员需要构建与维护一个复杂在线网站,更需要这些技能:

l 沟通

l 配置管理

l 编程

l 软件设计与构架

 

演化

让我们来看下面这张图,假设已经实现了些基本的打包,配置管理自动化过程

上图开发人员与运维人员有一些协作,开发人员可能不了解管理WEB服务器的配置,可能不清楚在特定操作系统如何使用命令行配置。运维人员管理服务器,让他们能点击一个按钮完成发布应用程序到应用服务器,实现部署工作,提供应用服务器。最好的环境是开发人员与运维人员在一个TEAM开发一个新环境。但新的环境一旦推出后,需要花费一些管理成本,去跟踪与管理所有的新环境。不幸的是,网络管理,配置管理更多的压力让运维人员来支持整个环境正在运转。看下面图示是如何演化的:

上面的图我们设想了比较理想的场景,减少编译、构建与部署的依赖。 自动化系统提供一个WEB应用服务器的事实没有变,变的是需要与运维交互的WEB服务器配置,日志配置,部署应用程序操作都是由开发人员来完成了。运维演化为适应开发人员的持续集成,发布管理,测试,调试源代码。开发人员需要学习操作系统核心,网络,配置管理与自动化。开发与运维能相互接管各自角色的工作,感觉像开发人员需要两个角色技能合集,也对开发人员有下一个级别的需求。

2013年一份对4000IT组织调研报告,组织实现DevOps的好处有如下:

今天先到这儿,后续有时间,我们将介绍更多内容。

希望对您软件开发管理有帮助。

关于DevOps更新您可以参考:

http://devopscafe.org/

DevOps is Everywhere

http://devops.com/

http://dev2ops.org/

 

作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
该文章也同时发布在我的独立博客中-Petter Liu Blog

DevOps的基本原则与介绍的更多相关文章

  1. 转载 DevOps的基本原则与介绍

    转载原地址:  http://www.cnblogs.com/wintersun/p/3339047.html DevOps的基本原则与介绍 DevOps这个术语是developer与operatio ...

  2. 数据库的DevOps实践

    ---------------------------------------------------------------------------------------------------- ...

  3. 精益IT组织与分享式领导

    精益IT组织       未来的组织将专注于同行业的产品或业务流--其他的一切,包括专家和管理者在内,都是为了让一线工作人员可以第一时间就做好,而又不会遇到任何麻烦.最大的制约不是技术:真正的挑战是变 ...

  4. 年度十佳 DevOps 博客文章(前篇)

    如果说 15 年你还没有将 DevOps 真正应用起来,16 年再不实践也未免太落伍了.国内 ITOM 领军企业 OneAPM 工程师为您翻译整理了,2015 年十佳 DevOps 文章,究竟是不是深 ...

  5. `DevOps`相关知识搜集

    本文记录的是搞清楚什么是DevOps过程中检索资料时发现的有价值的帖子. 传送门: 我眼中的DevOps 作者简介:申思维,2005年本科毕业于华南理工大学计算机学院.一直从事Web领域的开发,3年多 ...

  6. DevOps详解

    最近我阅读了很多有关DevOps的文章,其中一些非常有趣,然而一些内容也很欠考虑.貌似很多人越来越坚定地在DevOps与chef.puppet或Docker容器的熟练运用方面划了等号.对此我有不同看法 ...

  7. DevOps 在公司项目中的实践落地

    原文出处:https://www.cnblogs.com/beef/p/7743594.html ref: [DevOps]团队敏捷开发系列--开山篇 https://www.cnblogs.com/ ...

  8. DevOps的概念

    DevOps(英文Development和Operations的组合)是一组过程.方法与系统的统称,用于促进开发(应用程序/软件工程).技术运营和质量保障(QA)部门之间的沟通.协作与整合.它的出现是 ...

  9. 持续集成与devops

    持续集成 持续集成 持续集成(Continuous integration,简称CI),简单的说持续集成就是频紧地(一天多次)将代码集成到主干,它的好处主要有两个: 1.快速发现错误.每完成一次更新, ...

随机推荐

  1. 你所能用到的BMP格式介绍

    原理篇: 一.编码的意义. 让我们从一个简单的问题开始,-2&-255(中间的操作符表示and的意思)的结果是多少,这个很简单的问题,但是能够写出解答过程的人并不 多.这个看起来和图片格式没有 ...

  2. android Notification介绍

    如果要添加一个Notification,可以按照以下几个步骤 1:获取NotificationManager: NotificationManager m_NotificationManager=(N ...

  3. 关押罪犯 and 食物链(并查集)

    题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用"怨气值"( ...

  4. ReactNative入门 —— 动画篇(上)

    在不使用任何RN动画相关API的时候,我们会想到一种非常粗暴的方式来实现我们希望的动画效果——通过修改state来不断得改变视图上的样式. 我们来个简单的示例: var AwesomeProject ...

  5. Angular2学习笔记——在子组件中拿到路由参数

    工作中碰到的问题,特此记录一下. Angular2中允许我们以`path\:id\childPath`的形式来定义路由,比如: export const appRoutes: RouterConfig ...

  6. linux用户权限相关内容查看

    linux用户权限相关内容查看 1   用户信息 创建用户一个名为 webuser 的账号,并填写相应的信息: root@iZ94fabhqhuZ:~# adduser webuser Adding ...

  7. Google软件构建工具Bazel原理及使用方法介绍

    近期,Google开源了强大的自动化构建工具Bazel. 正好博主近期在使用china版的Bazel--腾讯自主开发的Blade,所以准备跟大家分享一下Google Bazel这个分布式构建系统的原理 ...

  8. Leetcode 笔记 113 - Path Sum II

    题目链接:Path Sum II | LeetCode OJ Given a binary tree and a sum, find all root-to-leaf paths where each ...

  9. UniversalImageLoader的一个小问题

    最近在使用UniversalImageLoader时遇到了一个小问题,多个地方同时通过ImageLoader.getInstance().loadImage(url, new ImageSize(dp ...

  10. ABP教程-给项目添加SwaggerUI,生成动态webapi

    上一篇,我们是正式将ABP生成的代码项目,跑起来了,然后演示了下多租户的不同.那么这篇我们就来实现下SwaggerUI. Q:SwaggerUI是干什么的呢? A:他是一个能将我们的webapi,通过 ...