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. Oracle Standard Error 列表

    今天,我特意从网上找了一些,以及自己平时总结的,关于错误编号和说明,平时我们在写项目的时候,往往是可能会出现下面这些错误,例如:违反唯一约束,无效的会话ID,等等.希望对大家有点帮助!可以看看,如果有 ...

  2. 我的MYSQL学习心得(七) 查询

    我的MYSQL学习心得(七) 查询 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...

  3. mono for android中使用dapper或petapoco对sqlite进行数据操作

    在mono for android中使用dapper或petapoco,很简单,新建android 类库项目,直接把原来的文件复制过来,对Connection连接报错部分进行注释和修改就可以运行了.( ...

  4. AutoMapper(一)

    返回总目录 映射前后操作 偶尔有时候,在映射发生之前或之后,你可能需要执行一些自定义的逻辑.这可能是很少见的事情,因为在AutoMapper之外处理这些事情是更明显的.你可以创建一个映射前后的全局操作 ...

  5. ASP.NET MVC Model绑定(一)

    ASP.NET MVC Model绑定(一) 前言 ModelMetadata系列的结束了,从本篇开始就进入Model绑定部分了,这个系列阅读过后你会对Model绑定有个比较清楚的了解, 本篇对于Mo ...

  6. 高薪诚聘熟悉ABP框架的.NET高级开发工程师(2016年7月28日重发)

    招聘单位是ABP架构设计交流群(134710707)群主阳铭所在的公司-上海运图贸易有限公司 招聘岗位:.NET高级开发工程师工作地点:上海-普陀区 [公司情况]上海运图贸易有限公司,是由易迅网的创始 ...

  7. Entity Framework 6 Recipes 2nd Edition(10-1)译->非Code Frist方式返回一个实体集合

    存储过程 存储过程一直存在于任何一种关系型数据库中,如微软的SQL Server.存储过程是包含在数据库中的一些代码,通常为数据执行一些操作,它能为数据密集型计算提高性能,也能执行一些为业务逻辑. 当 ...

  8. IKAnalyzer

    我们的项目中中文切词使用的是mmseg,有一个不满意的地方是jar包中的默认词典一定会被加载进去,当我对有些term有意见时,无法删除. mmseg中Dictionary.java里一段代码保证了/d ...

  9. selenium自动化基础知识

    什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...

  10. C# 开发windows服务的一些心得

    最近在做一个windows服务的项目,发现并解决了一些问题,拿出来和大家分享一下,以下windows服务简称“服务” 文章会在适合时间更新,因为朋友们在不断提出新的意见或思路,感谢-.- 1.服务如何 ...