那么,DevOps 到底是什么?
从字面上来看,“DevOps”一词是由英文 Development(开发)和 Operations(运维)组合而成,但它所代表的理念和实践要比单独或组合的两个词广阔的多。DevOps 涵盖了安全、协作方式、数据分析等许多方面。但它是什么呢?
DevOps 旨在实现既快又稳的工作流程,使每个想法(比如一个新的软件功能,一个功能增强请求或者一个 bug 修复)在从开发到生产环境部署的整个流程中,都能不断地为用户带来价值。这种方式需要开发团队和运维团队密切交流、高效协作并且彼此体谅。此外,DevOps 还要能够方便扩展,灵活部署。借助 DevOps,可通过自助服务和自动化完成最耗时的任务。通常在标准开发环境编写代码的开发人员也可与 IT 运维人员紧密合作,加速软件的构建、测试和发布,同时保障开发成果的稳定可靠。
当然,这意味着更改代码会更频繁,基础架构的使用也会更灵活。因此,传统的管理策略无法满足这种需求。您也需要应势而变,赢得先机。
DevOps 文化
DevOps 十分依赖协作文化,需要与开源原则和透明敏捷的工作方法协同一致。您可以通过为期 5 天的“DevOps 文化与实践支持(DO500)”大师班,探索 DevOps 与敏捷价值相辅相成的关系。
开源软件项目的文化几乎就是构建 DevOps 文化的范本。自由共享信息是开源社区默认的协作之道。这种方法有助于实施一系列文化变革,比如提高决策透明度、鼓励实验,战胜对失败的恐惧,或者实施奖励制度,鼓励彼此信任和协作。许多企业组织都通过数字化转型咨询服务来实现此类计划。
有了正确的领导和激励计划,您的开发和运维团队将能更好地促进开放文化。当整个企业组织都贯行这种文化,DevOps 也就实现了最佳成效。固然 DevOps 字面上指的是开发和运维,但它需要每一个人的参与。
红帽的文化根植于开放和透明的基础上。在过去逾 25 年里,红帽人一直秉承着这一思想理念。协助客户采用开源技术策略时,我们始终遵循开放原则,热忱地帮助其逐步实现 DevOps 业务模式。
第 1 季第 4 集:DevOps,推倒那堵墙
在《代码英雄》播客的这一集中,Saron Yitbarek、Scott Hanselman 和 Gordon Haff 将为您介绍 DevOps 文化、流程、平台和工具
DevOps 流程
现代应用的开发流程不同于以往。许多团队都开始采用敏捷软件开发方法。在他们看来,DevOps 并不是什么新概念。事实上,“持续不断地尽早交付软件以满足客户需要”是《敏捷宣言》12 大原则中第一条原则。这就是持续集成和持续部署(CI/CD)对 DevOps 团队如此重要的原因。
但仅仅改变开发和运维流程还不够。您还需要系统化思考,找到办法真正地优化软件交付方式。也就是说,DevOps 既会为需要开发工作的业务部门带来改变,也会让支持终端用户的团队进行革新。关键是从终端用户到业务的持续反馈周期。
您的流程需要改变的不仅仅是工作方式。您的工作内容也不可避免地会发生变化。DevOps 不仅包括加快创建原来的单体式软件,还包括创建更适合这种持续交付节奏的新软件。
因此,DevOps 团队经常会使用微服务架构来构建软件,并通过 API 将这些服务彼此相连。通过构建较小的功能单元,开发团队就可以加速交付。因此,您必须关注如何管理这些服务和 API,并制定敏捷集成等策略,让它们能够协同工作。
这样的变革需要付出大量努力,但有了合适的技术,您就可以马上开始。自动化能够加快流程,并最终帮助您将 DevOps 工作负载迁移至云中。自动化使基础架构能够承受 DevOps 带来的持续性代码更改,且使环境能够轻松实现持续扩展。自动化有助于减轻重复性单调任务的负担,以便让能力最强的员工负责最重要的事项。
DevOps 流程较新的一项发展是引入了平台工程。平台工程不仅仅要关注技术层面的改进,还要关注于理解和优化开发者和用户的实际体验,在 DevOps 的基础上找到了更好的方法来实现应用交付自动化、改善协作和沟通、减少错误、增强安全性和合规性、提高效率,并且最重要的是——将开发人员的优势重新集中到最需要的地方。
人们通常认为,DevOps 与 IT 服务管理(ITSM)的 ITIL 方法相冲突,但这种二元论忽略了很多方面。
DevOps 平台和工具
选择支持流程的工具对于 DevOps 的成功至关重要。要跟上快速的开发周期,运维团队需要利用高度灵活的平台,且像开发团队对待代码那样对待基础架构。手动部署不仅速度慢,而且可能出错。
因此,您也可通过自动化来简化平台置备和部署。站点可靠性工程(SRE)承担这些手动运维任务,并使用软件和自动化对其进行管理。SRE 方法可以进一步支持 DevOps 团队的目标。
借助红帽 OpenShift 为 DevOps 团队、平台工程师和 SRE 提供的各种特性和功能,可轻松实现 CI/CD、安全防护、零信任安全架构并满足企业组织的合规要求。此外,结合使用 OpenShift 与红帽开发人员中心,平台工程团队就能获享高效构建和管理内部开发人员平台(IDP)所需的工具,并轻松创建构建“黄金路径”所需的项目模板、文档和工作流。
DevOps 和 Kubernetes
DevOps 方法加上 Linux® 容器,可为您的团队提供云原生开发所需的底层技术。容器支持集开发、交付、集成和自动化于一体的统一环境。
Kubernetes 是实现 Linux 容器运维自动化的现代方法。Kubernetes 可帮助您轻松高效地管理在公共云、私有云或混合云中运行 Linux 容器的集群。
选择容器内外的可靠平台,如红帽® 企业 Linux 和红帽 OpenShift®,可以保障顺利可靠的扩展和自动化。选择好合适的平台后,您就可以充分利用已经实施的文化和流程变革。
DevOps 可让您通过持续部署来实现扩展
持续集成和持续部署管道(CI/CD)是实施 DevOps 的一大重要成果。CI/CD 可帮助您频繁地向客户交付应用并检验软件质量,而且只需极少的人工干预。
具体而言,CI/CD 在整个应用生命周期内(从集成和测试阶段到交付和部署)都引入了持续自动化和持续监控,让您能够快速发现问题和缺陷并加以解决和更正。这些关联的事务通常被统称为“CI/CD 管道”,由开发和运维团队以敏捷方式协同支持。
我们主要使用 [红帽企业 Linux] 实现自动化。譬如,它可以帮助我部署应用。我们正在计划采用持续交付和持续集成方法,要用的就是这款产品。