DevOps
DevOps中的Dev指的是Development(开发),Ops指的是Operations(运维),DevOps就是打通开发运维的壁垒,实现开发运维一体化。
一、项目开发考虑的维度
Dev:怎么开发。
Ops:怎么运维。
高并发:怎么承接高并发访问。
高可用:怎么做到系统的高可用。
二、什么是DevOps
DevOps 是开发 (Dev) 和运营 (Ops) 的复合词,它将人、流程和技术结合起来,不断地为客户提供价值。
DevOps 对团队意味着什么? DevOps 使以前孤立的角色(开发、IT 运营、质量工程和安全)可以协调和协作,以生产更好、更可靠的产品。通过采用 DevOps 文化、做法和工具,团队能够更好地响应客户需求,增强对所构建应用程序的信心,更快地实现业务目标。
DevOps看作开发、技术运营和质量保障三者的交集。
突出重视开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建、测试、发布更加快速、频繁和可靠。
DevOps希望做到的是软件产品交付过中IT工具链的打通,使得团队减少各个环节的时间,更加高效地协同工作。
三、什么是CI&CD
CI和CD是软件开发中持续集成和持续交付的缩写。
1.持续集成(Continuous Integration)
持续集成是指软件个人研发的部分向软件整体部分交付,频繁进行集成以便更快地发现其中的错误。
CI需要具备:
-全面的自动化测试。
-灵活的基础设施。容器、虚拟机的存在让开发人员和QA人员能够节省很多时间。
-版本控制工具。Git、SVN等。
-自动化的构建和软件发布流程工具。Jenkins等。
-反馈机制。构建、测试的失败可以快速的反馈到相关负责人,以尽快处理问题。
2.持续交付(Continuous Delivery)
持续交付在持续集成的基础上,将集成厚的代码部署到准生产环境中。 持续交付优先于整个产品生命周期的软件部署,简历在高水平自动化持续集成之上。
灰度发布。
只需交付和持续集成的优先非常相似;
-快速发布。能够对业务需求快速响应,更快实现软件价值,为其赋能。
-编码-测试-上线-交付的频繁迭代周期缩短,获取快速反馈。
-高质量的软件发布标准。交付过程有标准化流程、可靠的、可重复。
-交付过程进度可视化。方便团队人员了解项目成熟度。
-更先进的团队协作方式。从需求分析、产品设计、开发、测试、运维等角色密切协作。
3.持续部署(Continuous Deployment)
持续部署指交付代码通过评审之后,自动自动部署到生产环境中。持续部署是持续交付的最高阶段。这意味着,所有通过了一系列的自动化测试的改动都将自动部署到生产环境。