什么是DevOps

能够把DevOps看做开发(软件工程)、技术运营和质量保障(QA)三者的交集。2009年DevOps这个新理念出现,是为了应对IT环境中广泛面临的一些挑战。如图所示,第一个隔阂,存在于商业需求和开发之间,敏捷的出现缩小了这个鸿沟。可是这给运营带来了不少压力。因此这就诞生了第二个隔阂,存在于开发和运维之间,这就是DevOps理念要解决的问题。老一派的软件开发团队成员会包含业务分析员,系统架构师,前端开发者,后端开发者,测试员,等等。优化如敏捷和精益原则等的软件开发流程的关注点就在这些地方。好比,软件一旦达到”能够生产“的程度,就会发到系统工程师、发布工程师、DBA、网络工程师,安全专家这些“运维人员”的手上。这里该如何将横在Dev(开发)和Ops(运维)之间的鸿沟给填平,这就是DevOps的主要关注点了。

DevOps的核心实践理念统称为CALMS:文化(Culture)、自动化(Automation)、精益(Lean)、度量(Measurement) 、共享(Share)。前端

DevOps更深层次的价值:后端

以华为为例,去年刚推出了一款工具:华为软件开发云。这是一款轻量级的DevOps工具。做为软件开发云的用户,我有这么几点体会。华为开发云有项目管理、配置管理、代码检查、编译构建、测试、部署、发布、流水线这几大服务。安全

从技术层面来看,用了刚才说的这几个服务,就能可视化地建立流水线,本流水线包含多个阶段(stage);在每一个阶段建立多个不一样类型的任务(task)。好比代码检查任务、编译构建任务等。网络

在代码提交后,流水线的相关任务能够实现最大程度地并发,在小时级别自动化实现版本级集成发布,获得版本质量报告,并快速反馈给开发人员,以便进行快速修复,在开发人员修复版本后并再次进行流水线的集成发布。架构

在紧急状态下,还能实现版本的快速可靠回退。这样一来,版本就能实现每日构建了,项目管理服务提供了敏捷式、社交化的项目管理方式,可与配置管理关联,使得开发团队有效协同,经过看板等各类图表实时掌握项目进度和质量。并发

 

 

概要 – DevOps清单

下面是一张你能够用来检验你的组织对DevOps的应用状况的清单。固然你也能够在文章评论后面给出你的观点。运维

  • 开发团队和运维团队之间没有障碍。二者皆是DevOps统一流程的一部分。
  • 从一个团队流到另外一个团队的工做都可以获得高质量的验证
  • 工做没有堆积,全部的瓶颈都已经被处理好。
  • 开发团队没有占用运维团队的时间,由于部署和维护都是处于同一个时间盒里面的。
  • 开发团队不会在周五下午5点后把代码交付进行部署,剩下运维团队周末加班加点来给他们擦屁股
  • 开发环境标准化,运维人员能够很容易將之扩展并进行部署
  • 开发团队能够找到合适的方式交付新版本,且运维团队能够轻易的进行部署。
  • 每一个团队之间的通讯线路都很明确
  • 全部的团队成员都有时间去为改善系统进行试验和实践
  • 常规性的引入(或者模拟)缺陷到系统中来并获得处理。每次学习到的经验都应该文档化下来并分享给相关人员。事故处理成为平常工做的一部分,且处理方式是已知的

总结

使用现代化的DevOps工具,如Chef、Docker、Ansible、Packer、Troposphere、Consul、Jenkins、SonarQube、AWS等,并不表明你就在正确的应用DevOps的原则。DevOps是一种思惟方式。咱们全部人都是该系统流程的一部分,咱们一块儿分享共同的时光和交付价值。每一个参加到这个软件交付流程上来的成员都可以加速或减缓整个系统的运做速度。系统出现的一个缺陷,以及错误配置的团队之间的“防火墙”,均可能会使得整个系统瘫痪,工具

全部的人都是DevOps的一部分,一旦你的组织明白了这一点,可以帮你管理好这些的工具和技术栈就天然而然的会出如今你眼前了。学习

相关文章
相关标签/搜索