0%

(转载)全面解读 DevOps 概念:与 k8s、容器、 CI/CD 有什么关系?

DevOps 是指对企业文化、业务自动化和平台设计等方面进行全方位变革,从而实现迅捷、优质的服务交付,提升企业响应能力和价值。只有通过快速迭代的 IT 服务交付,这一切才能实现。DevOps 可以将传统应用和最新的云原生应用与基础架构彼此相连。

文章转自https://www.redhat.com/zh/topics/devops#?

DevOps 到底是什么意思?

从字面上来看,“DevOps”一词是由英文 Development(开发)和 Operations (运维)组合而成,但它所代表的理念和实践要比这广阔的多。DevOps 涵盖了安全、协作方式、数据分析等许多方面。但它是什么呢?

DevOps 强调通过一系列手段来实现既快又稳的工作流程,使每个想法(比如一个新的软件功能,一个功能增强请求或者一个 bug 修复)在从开发到生产环境部署的整个流程中,都能不断地为用户带来价值。这种方式需要开发团队和运维团队密切交流、高效协作并且彼此体谅。此外,DevOps 还要能够方便扩展,灵活部署。有了 DevOps,需求最迫切的工作就能通过自助服务和自动化得到解决;通常在标准开发环境编写代码的开发人员也可与 IT 运维人员紧密合作,加速软件的构建、测试和发布,同时保障开发成果的稳定可靠。

当然,这意味着更改代码会更频繁,基础架构的使用也会更灵活。所以传统的管理策略无法满足这种需求。您也需要应势而变,赢得先机。

DevOps 与容器

DevOps 可以加快一个想法从提出到部署的整个过程。DevOps 的核心在于,在应用的整个生命周期中,都要确保日常运维任务自动化和环境的标准化。容器可以提供标准化的环境,您需要一个平台来管理它们,同时提供内置的自动化功能并支持各种基础架构。红帽 OpenShift 4 就是一个支持 DevOps 的企业就绪型 Kubernetes 平台。

DevOps 文化、流程和平台

DevOps文化

开发运维依赖于一种协作文化,需要与开源原则和透明敏捷的工作方法协同一致。您可以通过为期 5 天的“文化与实践支持(DO500)”大师班,探索开发运维与敏捷价值相辅相成的关系。

可将开源软件项目的文化作为蓝图,据此构建开发运维文化。自由共享信息是开源社区默认的协作之道。这有助于实施一系列文化变革,比如提高决策透明度、鼓励实验,战胜对失败的恐惧,或者实施奖励制度,鼓励彼此信任和协作。

有了正确的领导和激励计划,您的开发和运维团队将能更好地促进开放文化。当整个公司都贯彻了这种文化,开发运维就能发挥最佳成效。固然开发运维字面上指的是开发和运维,但它需要每一个人的参与。

红帽的文化根植于开放和透明的基础上。在过去逾 25 年里,红帽人一直秉承着这一思想理念。协助客户采用开源技术策略时,我们始终遵循开放原则,热忱地帮助其逐步实现 DevOps 业务模式。

DevOps流程

现代应用程序的开发流程不同于以往。许多团队都开始采用敏捷软件开发方法。在他们看来,DevOps 并不是什么新概念。事实上,“持续不断地尽早交付软件以满足客户需要”是《敏捷宣言》12 大原则中第一条原则。这就是为什么持续集成和持续部署(CI/CD)对 DevOps 团队至关重要。

但仅仅改变开发和运维流程还不够。您还需要系统化思考,找到办法真正地优化软件交付方式。也就是说,DevOps 既会为需要开发工作的业务部门带来改变,也会让支持终端用户的团队进行革新。关键是从终端用户到业务的持续反馈周期。

您的流程需要改变的不仅仅是工作方式。您的工作内容也不可避免地会发生变化。DevOps 不仅是为了加速创建原来的单体式应用,还要创建更适合这种持续交付节奏的新软件。

因此,DevOps 团队经常会使用微服务架构来构建软件,并通过 API 将这些服务彼此相连。通过构建较小的功能单元,开发团队就可以加速交付。因此,您必须关注如何管理这些服务和 API,并制定敏捷集成等策略,让它们能够协同工作。

这样的变革需要付出大量努力,但有了合适的技术,您就可以马上开始。自动化能够加快流程,并最终帮助你将 DevOps 工作负载迁移至云中。IDC 的一项研究1 表明,85% 的 IT 领导者认为自动化对于其 DevOps 战略至关重要。这是因为自动化使基础架构能够承受 DevOps 带来的代码频繁更改,并让环境能够轻松地连续扩展。自动化可以解决重复繁琐的日常任务,让您的 IT 精英将精力投入到更重要的工作上。

我们的专家可帮助您的组织开发所需的实践、工具和文化,以便更有效地现代化改造现有应用并构建新的应用。

DevOps平台和工具

选择支持流程的工具对于 DevOps 的成功至关重要。运维团队要跟上快速开发周期,就需要利用高度灵活的平台,并像开发团队对待代码一样,对待平台的基础架构。手动部署不仅速度慢,而且可能出错。

因此,您也可通过自动化来简化平台置备和部署。站点可靠性工程(SRE)承担这些手动操作任务,并使用软件和自动化对其进行管理。SRE 方法可以进一步支持 DevOps 团队的目标。

容器可以方便地在开发、测试和生产环境之间移动应用。开发人员可以利用容器打包并隔离应用及其运行所需的一切,包括应用程序文件、运行时环境、依赖库和配置。

DevOps 与 k8s

DevOps 方法加上 Linux® 容器,可为您的团队提供云原生开发所需的底层技术。容器支持集开发、交付、集成和自动化于一体的统一环境。

而 Kubernetes 是实现 Linux 容器操作自动化的现代方法。Kubernetes 可帮助您轻松高效地管理在公共云、私有云或混合云中运行 Linux 容器的集群。

选择容器内外的可靠平台,如红帽® 企业 Linux红帽 OpenShift®,可以保障顺利可靠的扩展和自动化。选择好合适的平台后,您就可以充分利用已经实施的文化和流程变更。

DevOps 与 CI/CD

持续集成和持续部署管道(CI/CD)是实施开发运维 的一大重要成果。CI/CD 可帮助您频繁地向客户交付应用并检验软件质量,而且只需极少的人工干预。

具体而言,CI/CD 在整个应用生命周期内(从集成和测试阶段,到交付和部署)都引入了持续自动化和持续监控,让您能够快速识别和改正问题与缺陷。这些关联的事务通常被统称为”CI/CD 管道“,由开发和运维团队以敏捷方式协同支持。

DevOps 与安全防护

正如我们前面所说,DevOps 不仅仅涉及开发和运维团队。为了充分利用 DevOps,企业还必须考虑安全防护如何在应用生命周期内发挥作用。所以,您从规划阶段开始就得要考虑核心安防问题。同时,您还应在一些安全功能方面采用自动化技术,防止 DevOps 工作流程阻滞变慢。选择合适的工具来集成安全功能,有助于您实现 DevOps 安全目标。

但是高效的 DevOps 安防需要的不仅是新工具。它更需要整个公司实现 DevOps 文化变革,从而在流程早期就集成进安全团队的工作。DevOps 通过紧密连接开发和运维之间来加速交付速度,但糟糕的安全规划则可能会拖慢速度。

从前,安全防护只是单个团队的责任,在开发的最后阶段才会介入。如今,在 DevOps 协作框架下,安全防护是整个 IT 团队的共同责任,需要贯穿至整个生命周期的每一个环节。