zoukankan      html  css  js  c++  java
  • 【Devops】 DevOps基础与理念

     前言:

    项目在开发过程中,如果项目或者模块日益壮大,产品又需要快速迭代,如何处理多环境下项目的上线质量?如何解决项目团队的敏捷开发需求?如何保证大型集群项目的发布与回滚操作? DevOps应运而生,用于解决上述的问题,那么测试需要了解那些DevOps特性呢?

    什么是DevOps?

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

    可以把DevOps看作开发、技术运营(运维)和质量保障(QA)三者的交集。

    注意有些公司没有专门的运维人员,那么运维的职责可能由开发或者测试来担任。

    为了构成一个健康的DevOps,可能需要组成的人员:【Developer, QA, PM(项目管理人员 ,产品经理), PO(过程改进人员,一般是指跨部门沟通产品,出产品规划的人员), OP(运维人员),SA(产品体验人员,或者客服) 】

    可能需要的软件【1. 各种敏捷开发组件  2. 可持续集成的软件开发流程 时下最流行的是kubernetes + docker+ jenkins】

    DevOps的理念

    传统的开发模式开发周期,测试周期都很长,而且部署也慢; 明显不能满足日前快速迭代的需求;【老掉牙的开发模式,目前大部分都放弃了】

    而敏捷开发模式一般情况是制作了多个分支,测试前置后与开发一起推动项目,一定程度上会优于瀑布式开发 【互联网行业较为推荐,996的根源】

    DevOps则完全不同于以上的开发模式,提出了随时部署,敏捷开发与测试,自动化流水线完成项目从开发--测试--上线全流程 【头部企业已经全转型这种模式,但是需要一定的技能人员支撑+ Boss的推动】

     一套支撑DevOps的工作流

    我们发现上图有如下特点:

    1. 开发过程敏捷化, 每个分支可以单独提交,测试可以提前介入测试,而不是统一提交测试;

    2. 每个阶段打包是自动构建, 同时触发自动化测试并生成报告

    3. 上线前可以分为多个测试阶段(一般是测试环境+集成测试环境),环环相扣;

    4. 测试过程规范化,包含冒烟测试,端到端测试,集成测试,自动化测试等多种手段

    测试需要了解的DevOps组件

    代码管理: Gitlab 

    镜像管理: docker, harbor(可以创建一个公司内部使用的镜像仓库)

    发布: jenkins ,K8s

    测试: Jmeter, junit,sonar,各种自动化测试框架等

    查看日志: kibana (filebeat,logstash用于日志采集, elasticsearch用于可伸缩查询,最好把结果集成到kibana上)

  • 相关阅读:
    redis概要学习
    http协议格式详解
    浅谈mysql
    linux常用命令
    Linux 程序管理
    认识与分析日志文件
    认识与学习bash
    例行任务管理
    软件安装的三大方法
    关于一些感慨
  • 原文地址:https://www.cnblogs.com/Ronaldo-HD/p/12965805.html
Copyright © 2011-2022 走看看