DevOps理念的技术本质揭秘(10)

简介: DevOps(Development+Operations)强调共同对业务目标负责,以实现用户价值作为唯一的评判标准:保证产品功能及时实现、成功部署和稳定使用。1、是一种重视软件开发人员(Dev)和IT运维技术人员(Ops)之间沟通合作的文化、运动或惯例,改善团队之间的协作关系2、是一组过程、方法与系统的统称,包含开发、测试和运维3、用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合4、透过自动化“软件交付”和“架构变更”的流程,使得构建、测试、发布软件能够更加地快捷、频繁和可靠,按时交付软件产品和服务

DevOps(Development+Operations)强调共同对业务目标负责,以实现用户价值作为唯一的评判标准:保证产品功能及时实现、成功部署和稳定使用。
1、是一种重视软件开发人员(Dev)和IT运维技术人员(Ops)之间沟通合作的文化、运动或惯例,改善团队之间的协作关系
2、是一组过程、方法与系统的统称,包含开发、测试和运维
3、用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合
4、透过自动化“软件交付”和“架构变更”的流程,使得构建、测试、发布软件能够更加地快捷、频繁和可靠,按时交付软件产品和服务

image.png


总的说来:

DevOps 是把人员、流程、产品进行结合,给用户提供持续价值的一个过程,既涉及到人员、流程、工具,也涉及到产品。
DevOps 最终目的是给客户提供持续交付的价值,流程包括:产品的规划跟踪、软件开发、构建测试、产品部署、运维、监控和优化。
通常把 DevOps 这些流程通过一个流水线的方式串联起来称为一个 DevOps 的流水线,其核心目标就是持续给用户交付有价值的产品。
简而言之,DevOps不仅涉及技术背景,还包括非技术的文化方面。
在软件开发和应用周期中,提供了一个机制或模式来培育“协作”意识,帮助不同角色的成员紧密协作,充分利用现有资源,遵循交付的商业价值,共同对“输出”负责,对质量负责。

DevOps的好处与价值

对于业务与产品而言,DevOps的好处更多基于持续部署与交付。
从组织结构而言,DevOps是部门间沟通协作的一组流程和方法,有助于改善公司组织文化、提高员工的参与感。

  • 代码的提交直接触发:消除等待时间,快速反馈
  • 每个变化对应一个交付管道:使问题定位和调试变得简单
  • 全开发流程高效自动化:稳定,快速,交付结果可预测
  • 持续进行自动化回归测试:提升交付质量
  • 设施共享并按需提供:资源利用最大化

可能的几个关注点

DevOps绝不是推荐一定要在某一方面达到极致,而是从“整体”入手,充分激发“体系”的最佳效率。

  • 虽然真正实现DevOps的成本高昂,但任何时候都是实现DevOps的最佳时机,因为随着业务发展,成本一定是越来越高的;
  • 组织文化上的变革,鼓励不同的个体与部门共同协作,减少“内耗”;
  • 合适的DevOps人员(最起码保证在“向DevOps转换阶段”中,研发人员知晓运维,运维人员了解业务);
  • 统一的标准、环境、工具、流程,例如:开发/测试环境尽可能地和生产环境保持一致;
  • 自动化和持续交付,简化重复性工作和减少不必要的等待
  • 涉及多个技术支撑:敏捷开发、持续集成&部署、微服务、容器、云环境等;
  • 个体和团队的成效都放在整个产品开发&运维生命周期内来进行评价;

DevOps与持续集成、持续交付

DevOps的应用场景往往是一个庞大复杂的背景和流程的场景,大都包含一个持续交付流水线。

1、开发人员:IDE、Git等开发和编译工具
2、版本控制系统:分支策略、语义化版本
3、构建服务器:持续集成、代码质量检查
4、工件库:存放二进制包
5、系统的包管理器:编译或测试环境系统上管理二进制包
6、环境一致性
7、预发布或生产:预发布环境与生产环境互换(蓝绿发布)
8、发布管理:在高程度自动化测试的基础上实践自动化或半自动化(人工介入)部署
9、问题管理系统

因此,DevOps 是一个完整的面向IT运维的工作流,以 IT 自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统运维等所有环节。
DevOps的技术要点由“持续集成/部署“”一线贯穿,主干开发是进行持续集成的前提,自动化以及代码周边集中管理是实施持续集成的必要条件。
换而言之,DevOps 是持续集成思想的延伸,持续集成/部署是 DevOps 的技术核心,在没有自动化测试、持续集成/部署之下,DevOps就是空中楼阁。

一个完整的过程

1、开发团队接到任务,需要完成一个变更
2、为了更加顺利地开发,将这个变更分拆为几个小变更
3、开发人员在本地开发并且测试,如果使用了测试驱动开发,在编写功能代码之前会先编写测试,然后编写能够4让测试通过的实际代码
4、开发人员将代码提交到企业内部的Git版本控制系统上
5、构建服务器获取这个变更并初始化构建流程,单元测试之后,变更可以被发布到二进制库里
6、配置管理系统根据“策略”,在测试环境中安装应用了新的变更
7、新安装触发自动化回归测试,测试成功后,质量保证团队开始做人工测试
8、人工测试通过后,质量保证团队将“已通过”标识给予这个变革
9、变更在预发布环境中进行验收测试
10、验收测试完成后,预发布环境被切换成生产环境,而生产环境变为新的预发布环境

典型的CICD流水线过程

1、项目开发编写代码,然后把代码推送到 GitLab 里存储,通过 GitLab 的 hook 使 Jenkins 执行一些 CI 的过程,比如做一些单元测试,构建 Docker image
2、再把这个 Docker image 调用 helm 部署到开发环境或测试环境
3、在测试环境里通过 Jenkins 触发一个集成测试的功能
4、完成后就可以把它部署到生产环境
5、通过 Kubernetes addon 的方式,把 Prometheus、Grafana 等监控组件部署到集群里,实现一整套从 CI 到 CD 的监控过程
image.png

相关文章
|
5月前
|
监控 Devops 测试技术
利用DevOps提升开发效率:技术实践与策略
【7月更文挑战第4天】DevOps通过自动化、CI/CD、协作与沟通等手段,显著提升了软件开发的效率和质量。随着云计算、容器化、自动化测试等技术的不断发展,DevOps的实践将更加深入和广泛。未来,更多的企业将采用DevOps文化,构建高效、灵活、可靠的软件开发和运维体系,以应对快速变化的市场需求。 总之,利用DevOps提升开发效率是软件开发领域的重要趋势。通过实施上述实践策略,企业可以加速产品迭代,提高市场竞争力,实现可持续发展。
|
3月前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
235 3
|
4月前
|
Devops 虚拟化 Docker
DevOps 中的标准虚拟化技术
【8月更文挑战第27天】
66 5
|
4月前
|
运维 监控 Devops
DevOps 入门:基础知识与核心理念
【8月更文第30天】随着软件开发的复杂性和速度不断增加,传统的开发模式已经无法满足市场需求。DevOps 应运而生,它不仅是一种实践方法,也是一种文化和理念,旨在通过自动化和持续改进来提高软件交付的速度和质量。
115 1
|
4月前
|
存储 运维 Devops
|
4月前
|
运维 监控 Devops
构建高效稳定的云基础设施:DevOps与容器化技术融合实践
【7月更文挑战第58天】 在当今的软件开发领域,"DevOps"和"容器化"已成为提升项目交付速度、确保环境一致性以及实现持续集成和持续部署(CI/CD)的关键策略。本文深入探讨了如何将DevOps理念与容器化技术相结合,以构建一个既高效又稳定的云基础设施。通过分析现代运维的挑战,我们提出了一套实践方案,并讨论了该方案在现实环境中的具体应用及潜在益处。文章不仅为读者提供了理论指导,还分享了来自一线实践的经验教训,旨在帮助组织优化其云基础设施管理,提高业务竞争力。
|
5月前
|
Kubernetes Devops 持续交付
容器化技术在DevOps中的应用
【7月更文挑战第6天】容器化技术在DevOps中的应用极大地提高了软件开发的效率和可靠性。通过自动化部署、持续集成与持续交付、环境一致性以及资源管理和监控等功能,容器化技术为开发人员和运维人员提供了更加便捷、高效的管理和部署方式。随着云计算技术的不断发展和普及,容器化技术将在DevOps中发挥越来越重要的作用。
|
6月前
|
运维 Devops jenkins
云效DevOps:打破技术瓶颈,你的职场新利器!
【6月更文挑战第11天】云效DevOps是新兴的开发工具套件和协作平台,通过自动化和集成化提升开发、测试和运维效率。它提供一站式服务,包括代码管理、持续集成和自动化部署,减少人为错误,加快软件交付速度。示例代码展示了使用Jenkinsfile在云效DevOps中实现自动化构建和部署的过程。此外,云效DevOps还支持丰富的协作工具,促进团队沟通与合作,助力企业技术团队提升竞争力。因此,掌握云效DevOps对于现代技术人员至关重要。
69 1
|
5月前
|
缓存 Devops 微服务
微服务01好处,随着代码越多耦合度越多,升级维护困难,微服务技术栈,异步通信技术,缓存技术,DevOps技术,搜索技术,单体架构,分布式架构将业务功能进行拆分,部署时费劲,集连失败如何解决
微服务01好处,随着代码越多耦合度越多,升级维护困难,微服务技术栈,异步通信技术,缓存技术,DevOps技术,搜索技术,单体架构,分布式架构将业务功能进行拆分,部署时费劲,集连失败如何解决
|
7月前
|
运维 Devops 持续交付
构建高效稳定的云基础设施:DevOps与容器技术融合实践
【5月更文挑战第31天】 随着云计算的普及和企业数字化转型的加速,传统的IT运维模式已无法满足快速迭代和持续交付的需求。本文探讨了将DevOps理念与容器技术相结合,构建一套高效、稳定且易于管理的云基础设施的实践方法。通过案例分析和技术选型,展示了如何实现自动化部署、监控和扩展,以及如何提高系统的可靠性和安全性,最终实现运维效率的显著提升。