开发运维——DevOps CI CD

171人浏览

名词解释

  • DevOps(Development And Operations 开发和运维)是一套方法论,而不是工具。DevOps是一个面向运维的工作流,以自动化持续集成(CI)、持续部署(CD)为基础,来优化开发、测试、系统运维等环节。
  • CI(Continuous Integration 持续集成)
  • CD(Continuous Deployment 持续部署)

DevOps背景

    随着软件发布迭代的频率越来越高,传统的“瀑布型”(开发—测试—发布)开发模式已经不能满足快速交付的需求。IT领域运营的复杂性在不断增加,云原生或其他Serverless技术发展不断演化IT技术架构,如微服务模块拆分,需要更短时间相应部署。开发运维一体化,通过高度自动化工具与流程,使得软件构建、测试、发布更加快捷、频繁和可靠。让项目团队变敏捷,在保持质量的前提下提升交付/迭代效率。

Devops价值

  • 代码提交直接触发部署,消除等待时间;
  • 使问题定位和调试变得简单;
  • 全开发流程高效自动化;
  • 持续进行自动化回归测试,提升交付质量;
  • 设施共享,资源利用最大化;

CI/CD工具

  • Jenkins 管控CI任务,可以利用各种丰富插件。
  • Gitlab-CI 与代码工程结合,可以省略Jenkins上配置,易用性好;

DevOps涉及的技术栈与工具链

  • 流程管理:进度看板,Sprint周期,可以采用Jira,Trello等工具。
  • 身份及访问管理:用户权限管理的重要组成;
  • 产品管理:产品的需求,定义,依赖,推广等产品线的全面管理;
  • 配置管理:产品的配置维护(Nacos);
  • 环境管理:资源配给和负载均衡(Nginx/SLB、K8S);
  • 版本控制:代码库的创建和维护,分支管理(Git/SVN);
  • 持续集成:任务调度和执行,例如Jenkins,提供产品和组件自动编译、打包和部署的能力,支持编译和部署的流程编制,进度跟踪和日志查看;
  • 自动化测试:自动化测试框架,例如Appium,Selenium 以及Mock技术;
  • 质量反馈:产品质量管理和监控,包括测试用例,缺陷跟踪和质量监控(Jira、禅道、bugzila);
  • 文档管理:开发、运维、部署文档的统一管理;
  • 运营管理:业务系统的运营操作;面向运维的统一Monitor,alarm,fault handling,资源使用和运行状况,例如Zabbix;
  • 沟通管理:敏捷原则之一是沟通优于文档,Wechat/Slack。

DevOps实施成功的关键,涉及到团队管理,项目管理,技术管理等诸多方面;技术栈和工具链是DevOps的基础,运用得当可以提高团队的生产力。