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. Python:游戏:300行代码实现俄罗斯方块

    本文代码基于 python3.6 和 pygame1.9.4. 俄罗斯方块是儿时最经典的游戏之一,刚开始接触 pygame 的时候就想写一个俄罗斯方块.但是想到旋转,停靠,消除等操作,感觉好像很难啊, ...

  2. [PHP] ubuntu下使用uuid扩展获取uuid

    1.php生成uuid网上大部分是使用随机数md5截取的,很有可能会重复冲突 2.uuid的组成中最重要的一个是机器码,大部分是网卡MAC地址, php无法获取到机器码,因此不能直接使用代码来生成一个 ...

  3. js防抖和节流

    今天在网上看到的,里面的内容非常多.说下我自己的理解. 所谓的防抖就是利用延时器来使你的最后一次操作执行.而节流是利用时间差的办法,每一段时间执行一次.下面是我的代码: 这段代码是右侧的小滑块跟随页面 ...

  4. Web前端 css实现元素垂直居中的常用方法

    方法1:table-cell html结构: 1 2 3 <div class="box box1">         <span>垂直居中</spa ...

  5. 读书笔记:深入理解java虚拟机(一)虚拟机的运行时的数据区域

    最近在看深入了解java虚拟机第一版(周志明著),特此写读书笔记,整理其中重要的东西和自己的理解. ”java与c++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却 ...

  6. Sql Server 复制数据库

    确实很实用 https://www.cnblogs.com/ggll611928/p/7451558.html

  7. windowns10安装httpd

    下载页面:https://www.apachehaus.com/cgi-bin/download.plx 下载内容:httpd-2.4.38-o102r-x64-vc14-r2.zip 解压到本地磁盘 ...

  8. Linux 桌面玩家指南:09. X Window 的奥秘

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  9. 缓存穿透,缓存雪崩,热点key及解决办法

    1.穿透 穿透:频繁查询一个不存在的数据,由于缓存不命中,每次都要查询持久层.从而失去缓存的意义. 解决办法: 持久层查询不到就缓存空结果,查询时先判断缓存中是否exists(key) ,如果有直接返 ...

  10. webpack打包The 'mode' option has not been set,错误提示

    学习到webpack打包这个工具的时候,总是报错.在这里记录一下...... 我是window系统 当使用npm安装好webpack后,你去查看如果出现一下问题. 出现以上问题,我的做法是 先将web ...