【云计算•云原生】5.云原生之初识DevOps

1.DevOps背景

软件开发必须包含两个团队:开发团队和运维团队

  • 开发团队负责开发项目,系统迭代更新
  • 运维团队负责项目测试以及部署上线,维持系统稳定运行

一个软件周期中是由这两个团队相互协作完成的,开发人员写好一部分功能后交给运维人员,就需要等带运维人员的反馈,导致延长软件开发周期。而现在推崇敏捷开发模型,加快软件开发效率,DevOps就可以达到这个效果。

DevOps 是敏捷开发方法的进一步发展。它是一种将开发和运营团队整合在一起的文化转型

2.DevOps概念

DevOps核心就在于简化Dev和Ops两个团队之间的工作流程,让软件的整体开发过程更加快捷。

可以把它理解为是一种软件开发模型,在这个开发模型中可以整合各种工具来配合从而加快项目开发
在这里插入图片描述

  • PLAN:开发团队根据用户的目标制定开发计划
  • CODE:根据plan进行编码
  • BUILD:构建项目并运行
  • TEST:测试代码
  • DEPLOY:对项目进行部署
  • OPERATE:运维团队将代码部署到生产环境中
  • MONITOR:项目部署上线后持续监控产品
  • INTEGRATE:将监控阶段收到的反馈发送回 PLAN 阶段,整体反复,持续集成、持续部署

3.DevOps工具链

DevOps 工具链主要有两种形式:一体式或开放式的工具链。一体式 DevOps 工具链可提供完整的解决方案,通常不会与其他第三方工具集成。开放式工具链可以根据团队的需求使用不同工具进行定制。

  • 发现

主要是对产品进行设计,工具有:Jira Product Discovery, mural, miro

  • 规划

尽早从用户那里获取信息,并根据用户反馈优化产品。工具:Jira Software, confluence, slack

  • 构建

    • 项目的开发环境。工具:kubernetes, docker
    • 源码控制和协作。工具:github, gitlab
    • 持续交付。工具:jenkins
  • 测试

Zephyr Squad, mend, veracode, stackhawk等

  • 部署

部署仪表板或者自动化部署:Jira Software, bitbucket

  • 运维

Jira Software

  • 观察

应用程序和性能监控:appdynamics, slack等

  • 持续反馈

持续反馈包括定期收集反馈的文化和流程,以及从反馈中获取洞察信息的工具。持续反馈实践包括收集和审查 NPS 数据、客户流失调查、缺陷报告、支持工作单,甚至还有推文。工具:slack等