Devops概念

转载自 devops实践-开篇感想

DevOps(英文Development和Operations的组合)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。[1]外文名DevOps全称 Development和Operations的组合优点尽可能地自动化用途协作与整合等。

以上内容来自百度百科。
在我看来:
1.主要就是为了整合资源,使资源充分利用.让开发人员像使用水电一样的使用资源,让开发人员聚焦在更有价值的事情身上,让整个开发阶段中不同的工具串联在一起,形成一条完整的流水线。
2.可视化可跟踪,通过一系列的工具可以对开发需求进行持续的跟踪,很明确的且客观看到任务的当前状态,而且出了问题之后可以追溯,让你能精准的定位到哪个环节出现了问题。
3. 在运维方面,尽可能的通过监控工具,收集数据,通过大数据,深度学习等手段,来解放运维人员,而且数据不断的可视化,也有利于实时监控(其实我没做过运维,在这方面理解得比较浅,慢慢好好学习吧)

Devops工具

长话短说,这些写这个专题主要是在实践两个字,在实践总总结,然后再总结中优化自己的实践方案。我们先来来看看devops工具链吧。上图。

看到这张图,我第一感觉就想骂娘。太TM多了,而且很多很多平常都没有听,更别说接触过了。不过还好的是,我们只研究开源工具,一方面是要进行devops实践,另一方面也是想提高自己的能力,通过阅读源码,去研究开源工具的系统架构,以及编程思想,日积月累后,自己也会有一个质的提高。而且收费软件可不是那么便宜一年的license可不是普通企业能买得起的。

选择工具

首先来回顾一下整个开发流程:

需求-开发-测试-发布-部署-监控运维

项目管理(需求&BUG):redmine

代码托管:gerrit(gitlab)

持续集成:jenkins

测试:单元测试:maven等,Jmeter,或者是自己编写脚本

代码扫描:sonar

制品库:JFrog,或者其他工具,这个我也没有想好JFrog收费版可以支持docker,maven, npm等等等,多得不行,制品这方面目前没有什么好的开源的软件。

持续部署:K8S

日志收集:ELK + KAFKA

监控显示:zabbix,grafana

其他工具:nginx, lvs,HA, redis,rabbitmq,ldap, ansible。

实践想法

认证:LDAP 发现好多的开源的工具都会选择ldap来做认证。OPENLDAP。

项目管理:redmine,开源,有丰富的插件,至少感觉好像还是挺火的。

代码托管:gerrit或者是gitlab吧,我这边我会选择gerrit

持续集成:jenkins, 可惜jenkins竟然不开源,不过插件丰富。

代码扫描:sonar

额说得有点重了。LDAP作为所有工具链的一个认证,这样用户信息就统一起来了。

来个场景吧.

1. BA接收到需求之后将其录入Redmine, 指定好开发人员。

2. 开发人员接收到任务之后,然后从gerrit拉取代码到本地,然后进行开发,开发完成后,将写好的代码弄成一个评审单上传到gerrit,并通知相关的评审人员进行评审。

3. 在你提交上去的那个刻,jenkins收到你创建评审单事件,然后开发触发构建的你配置的任务,先拉取你最新提交的代码,然后进行编译构建,扫描你的代码是否符合。代码符合之后,然后进行测试(在构建的时候会先进行单元测试),然后把构建好的包,在测试环境上进行部署,然后拉取自动测试脚本进行测试,测试没有问题之后。jenkins会对你本次的评审单进行打分。通过了就打2分,不过打-2分。这样就避免了浪费大家的时间,在打分通过了的情况下,评审人员才会去评审。

4. 评审人员到gerrit上进行评审,如果评审不合格,直接拒绝,开发人员重新进行开发。在提交然后再重复3步骤。如果评审通过,进行代码合入,然后再次触发jenkins的构建任务,不过这个任务是构建beta测试版本,构建到测试版本之后,然后发布到制品库中,然后通知测试人员可以进行测试了。然后这个时候将redmine的任务状态更改会开发完成。这个时候会通知测试人员可以进行测试了。

5.测试人员收到测试任务之后,从制品库中拉取beta包进行部署测试,这个部署测试环境,有了docker容器其实也是可以一键部署哦,然后再用自动化脚本进行测试,对于个别场景可以进行手工测试,如果有bug,测试人员在redmine进行录入,然后通知开发人员,这个时候流程又从1开始,直到这个bug测试通过了,然后redmine会更改bug状态。

6.如果测试人员测试通过了,然后又可以出发一次构建任务。将最新的代码构建成release版本发到制品库中或者是进行自动部署。而且现在有灰度发布,可以一点一点切流程到新的版本上,看一下运行情况,如果不行直接回退。

DevOps概述的更多相关文章

  1. 第一章 DevOps概述

    什么是软件开发 软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程. 软件开发是一项包括需求捕捉,需求分析,实现和测试的系统工程 软件开发有哪些困难? 软件开发的本质困难 复杂性 不可见性 ...

  2. [转载]你所不了解的DevOps

    DevOps开发运维训练营 一旦建立了创新的文化,即使那些并非科学家或者工程师的人——诗人.演员.记者——也能以团体的形式,接受科学文化的意义.他们信奉创新文化的概念.他们以促进这种文化的方式投票.他 ...

  3. 从 DevOps 到 Serverless:通过“不用做”的方式解决“如何更高效做”的问题

    作者 | 徐进茂(罗离) JAVA 开发工程师  导读:近年来,Serverless 一词越来越热,它已经逐渐成为了一种新型的软件设计架构.和 DevOps 概念提倡的是通过一系列工具和自动化的技术来 ...

  4. 云计算时代,你所不了解的 DevOps

    在本文中,我们讨论如何快速地从更高的层面理解DevOps,介绍准备改变文化的最佳实践.我们将讨论DevOps的目标以及从组织管理层得到支持的方法,为DevOps的概念打下基础.我们将试着从根本上介绍使 ...

  5. Devops 导论

    第一章 DevOps概述 第二章 个体软件过程 第三章 敏捷软件开发 第四章 软件架构演化 第五章 云原生与容器技术 第六章 XaaS和IT服务标准 第七章 DevOps工具链 --学习总结自< ...

  6. 基于Kubernetes 的Cloud Native 实战 培训课程安排

    课程安排: 基于Kubernetes 的Cloud Native 实战 课程介绍: 云计算.虚拟化.容器微服务PaaS 技术已经广泛应用于新兴互联网企业(如电商平台.搜索引擎.社交平台网站.位置服务平 ...

  7. [转载]金融行业 DevOps 解决方案概述

    2009 年 6 月份,John Allspaw 及 Paul Hammond 在速度大会 (Velocity) 上分享了在 Flickr 中如何通过加强 Dev(开发团队)和 Ops(运维团队)之间 ...

  8. devops工具链概述

    1. devops工具链概述  1)devops工具篇 2) 持续集成 3) 持续交付 4) 持续部署 2. devops工具链概述

  9. 一,Devops核心要点及kubernetes的架构概述

    目录 1,devops的简述及要点 2,kubernetes的简单介绍与组成 特性 集群构成 pod的基本概念 kubernetes网络 1,devops的简述及要点 DevOps,分层架构 ---& ...

随机推荐

  1. Django解决跨域问题

    原理:浏览器的同源策略,其实我们的请求发送过去了,服务器也进行响应了,就是浏览器把响应给阻止响应而已 第一种方法jsonp 因为浏览器不对 <script> 标签里面的src属性进行阻止, ...

  2. 有趣的8个IT冷知识

    阅读本文大概需要 2.8 分钟. 想要成为一名成功的程序员,我们除了了解不同编程语言的设计思路,也应当了解编程的发展历史,从而判断未来的编程技术将走向何方.接下就为大家普及下计算机发展历程中的8个冷门 ...

  3. Redis in .NET Core 入门:(2) String

    第1篇:https://www.cnblogs.com/cgzl/p/10294175.html‘ 本文简单介绍一下Redis的常用数据类型String. 基本上都是文档上的内容,所以比较无聊.... ...

  4. Mysql常用基础操作(备忘录)

    常常忘记mysql的一些命令行操作,甚至于说,比较复杂的sql格式记不住或忘记了,也可能根本不会考虑去记,因此,做一下汇总,当下次出现恍惚时不至于去百度挨个找,有时就是记不起来,但是只要给点药引子,立 ...

  5. 『发呆』.Net 2.0 ~ .Net 4.0 所实现了那些底层

    随着时间的推移,程序越写越大,代码越写越少. 今天突然发呆,就想比较全面的汇总一下 .Net 2.0 和 .Net 4.0 都实现的功能. .Net 2.0 的大部分常见程序集 (已经过滤掉了一部分和 ...

  6. [Leetcode]643. Maximum Average Subarray I

    Given an array consisting of n integers, find the contiguous subarray of given length k that has the ...

  7. .NET Core Dapper操作mysql数据库

    前言 现在ORM盛行,市面上已经出现了N款不同的ORM套餐了.今天,我们不谈EF,也不聊神马黑马,就说说 Dapper.如何在.NET Core中使用Dapper操作Mysql数据库呢,让我们跟随镜头 ...

  8. 【.NETCore开源】开弓没有回头箭

    2019.2.11 开工大吉!经过了半个月的休假,今天回归岗位重新拾起工作,却发现熟悉的代码生疏了.年前的计划回忆不起来了,俗称"节后综合症". 忆半月圈子 过年放假的前几天有多篇 ...

  9. ArcGIS JS 3.x使用webgl绘制热力图

        ArcGIS Js Api 3.x 热力图在数据量达到三万左右的时候,绘制速度不尽人意,数据量再大些,缩放时候就会很卡,非常影响客户体验.     参考了一下网上webgl热力图,能达到更流畅 ...

  10. php7连接mysql测试代码

    php7连接mysql测试代码 <?php $mysqli = new mysqli("localhost", "root", "passwor ...