阿里云云原生 DevOps - DevOps 基础概念

本文涉及的产品
性能测试 PTS,5000VUM额度
应用实时监控服务-应用监控,每月50GB免费额度
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 阿里云云原生 DevOps - DevOps 基础概念

开发者学习笔记【阿里云云原生助理工程师认证(ACA)课程:阿里云云原生 DevOps - DevOps 基础概念】

课程地址:https://edu.aliyun.com/course/3112075/lesson/19057


阿里云云原生 DevOps - DevOps 基础概念


内容介绍

一、开发实例二、传统开发模式讲解

二、DevOps 基础概念

三、DevOps 与传统开发模式对比

四、DevOps 与传统开发模式对比

 

课程目标
希望通过本章节的学习,能够掌握 DevOps 的基本概念及核心组成,了解企业开发在云原生时代的困境及诉求,以及阿里云是如何助力企业轻松实现一站式 DevOps 平台,最后以企业开发所面临的困境为切入点,带领体验阿里云云效成是如何构建企业 DevOps 解决方案的

 

一、开发实例

image.png

1、问题现象

此处列举了一个具有代表性的例子,某企业有20人左右,分工明确的一个开发团队,有产品经理、开发人员。部署人员、测试人员等,以传统的瀑布式开发模式运行,整个开发过程如下,开发12天,联调(集成)5天,测试(端到端)8天,上线8小时,计算出发布一个需要一个月的时间,此过程还存在异常情况的发生,需要消耗额外的精力排查和修复。

2、问题分析

从两个方向对该现象进行分析,一是各阶段周期时间拆分二是各个环节中的等待、阻塞及资源浪费情况,最后定位出关键问题。

3、问题定位

(1)系统紧耦合问题较严重,相互影响和阻塞。

该项目本身是由多个子系统组成的复杂性,且没有采用微服务的架构,而是传统的多系统间的紧耦合,模块之间相互依赖,这样会造成多个子系统间无法并行交付,相互之间影响较多。一个子系统上线,其他相应的子系统就需要做相应的集成和联调,并且故障的传播是不可控的,只要一端出现问题,整个版本会被阻塞。

(2)各端未控制质量,集成时问题爆发。

首先,开发人员的自测不足,带有隐患的输出物直接进入后续环节,导致大量的缺陷在集成阶段集中暴露;其次,自动化能力的缺失,大量依赖人工处理,包括部署、测试、交付在内的所有操作均需要人工方式来执行;此外,团队间存在资源争抢问题,相互之间的冲突比较严重。

(3)环境交付未归一化,发布效率低。

一个版本开发完成后,首先会被部署到测试环节,测试完成后再放到类生产环节,最后才能部署上线。在此过程中,需要以手工的方式做多次版本的迁移,很容易导致线上线下不一致,同时测试环节、类生产环节也需要专门的维护,耗费大量的成本;并且串行式的发布上线,需要长时间的停服。为了尽可能减少对业务的影响,经常看到很多团队在凌晨进行版本升级,但是对于电商、短视频等许多行业,即使凌晨停服升级,在业务上也是无法接受的。

 

二、传统开发模式讲解

传统的开发模式如下,将业务、开发、测试、运维等许多环节都区分很清晰,PD 将需求写出,开发者根据需求完成代码的书写,传达到 SCM , SCM 将代码带包,打包后传达给 QA , QA 运维完成后通知 Ops 上线, Ops 进行上线部署,最后整个需求 relieve 版本。
image.png

这种方式的优势在于分工明确、职责清晰以及质量有保证,层层制约容易把控;劣势也较明显,开发和运维团队是完全独立的,在这种情况中会容易产生两个问题,一是整个过程需要多个部门人员的参与,沟通成本高,如开发人员需要了解需求才明确如何写代码, QA 也需要了解需求才能明确如何做测试, Ops 同样需要了解需求才能够维持线上版本的稳定;二是在过程中存在大量的人工操作,每个环节的质量都是不可控的,每个环节都可能成为项目推进的瓶颈。

 

三、DevOps 基础概念

为了解决上述问题, DevOps 应运而生,在这种模式下都发生了改变,不再是每个人做完自身事情交给下一个人,而是通过工具驱动所有的流程往前走,如开发写完代码,通过工具驱动自动打包、自动测试、自动升级、自动部署,同时还会配置监控,在工具的外围,确保工具中的每一个环节能够正常运转,同时还要保障工具中的模块能够支撑新的业务变化。
image.png

DevOps 分工模式的好处很明显,可以减少沟通成本及等待风险和降低正常需求交付所需时间,使得各个团队减少时间损耗,能够更加高效协同工作; DevOps 分工模式的劣势是,每个环节参与的角色较多,风险较高,另外对于业务形态多的企业,工具支撑成本高,因为每一种业务形态都需要 DevOps 工具集做支撑,工作量十分巨大。

DevOps 是一套集组织文化、团队协作、工程实践和工具为一身的工作方式, DevOps 并不是一个工具集,也不是一个开发流程,它是一种工作方式,以帮助企业高效、快速、高质量地交付应用程序和服务为目的,从而更好地实现客户价值为目标,它的出现正是可以帮助企业能够帮助企业跨越业务高速发展和研发低效交付的鸿沟。
image.png

DevOps 这个词是由 Development 和 Operations 组成的,它是一种促进开发和运维团队之间的协作,以自动化和可重复的方式更快的将代码部署到生产中的文化, DevOps 帮助团体提高软件和服务的交付速度,使团队能够更好的为客户服务并提高在市场中的竞争力,简而言之, DevOps 可以定义为通过更好的沟通和协作,使开发和运维保持一致,进而减少团队间的损耗,更加高效的协同工作。 DevOps 实现了技术与流程的自动化,是一种组织管理和流程方式,是软件质量和监控的关键环节,同时也是一种企业文化。

 

四、DevOps 与传统开发模式对比

研发运维一体化是很早以前就已经提出的敏捷开发的概念,它提倡团队在开发和运维的过程中进行有效的沟通,从而形成一种敏捷的开发模式。 DevOps 1.0 就是在这种敏捷开发模式的基础上提出的,它的核心是为了解决开发和运维过程中的沟通和协调问题,但是因为一些技术问题,并没有完全实现自动化测试,自动集成和自动部署,系统架构也都为分布式的,并没有完全实现微服务的架构。 DevOps 2.0时,就能通过技术手段实现自动化的流水线,能够自动化的集成和自动化的部署,由此, DevOps 也进入了云原生的时代,下面从软件的架构特性、开发周期、代码和系统质量、部署难度和时间以及实施成本这五个角度逐一进行对比。

image.png

软件架构,传统模式下采用的是单体架构,每个小模块的升级改造都会对整个系统产生影响,导致上线存在很多风险,在一个大型的项目中,往往需要几十甚至上百人连续通宵多个晚上才能够实现版本的上线; DevOps 1.0虽然才采用了分布式的模式,但是缺乏自动化的流程,所以软件开发周期基本是以周为单位; DevOps 2.0 的时代采用了微服务的架构,以小功能模块为服务单元,升级时只需要升级特定的服务单元,从而大大的提高了软件的交付效率,可以做到小时甚至分钟为单位进行迭代,一天能够迭代十几次甚至更多。
代码和系统质量,传统模式往往使用一种语言模式做开发,这会导致一些场景上的开发受到限制,子系统间紧耦合,没有很好的代码质量保障; DevOps 1.0 系统可以是异构的,不同层次之间可以使用不同的语言,但核心后台数据库的质量对系统影响严重; DevOps 2.0 时代使用了微服务,每一个模块都可以绑定自己的存储,使用不同的存储方式,可以使用不同的语言来解决特定的问题,子服务更加益于单独测试,代码的质量也更加有保障,系统能够以子服务为单位做到扩容和故障隔离。
部署难度,传统模式部署是以月为单位,并且有大量的工作依赖于手工操作,难度大、风险高、易出错; DevOps 1.0时代部署是以虚拟机为单位,可以通过云服务厂商提供的模板降低部署难度,但是部署回退的问题依然没有解决; DevOps 2.0以容器为单位的发布和更新,支持灰度、蓝绿等发布风格,可以方便的回退。实施成本,传统模式下,开发、部署和运维会浪费非常多的成本; DevOps 1.0 采用了敏捷模式开发,大大提升了开发的效率,采用自动化运维工具,也降低了很多运维成本; DevOps 2.0需要投入更多的成本在前期阶段,开发之群需要有一个整体的流程,需要配置自动化的代码流水线还有相应的工具集,在整个流水线架构完成之后,后续的开发成本会大大降低,同时带来了部署和运维的时间成本的极度优化。

相关文章
|
2天前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 11 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
26天前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 10 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
2月前
|
运维 Cloud Native 数据可视化
阿里云云原生应用组装平台BizWorks满分通过最新评估
阿里云BizWorks满分通过《基于云计算的业务组装平台能力成熟度模型》评测,获得优秀级(最高等级),广东移动联合阿里云BizWorks团队开展的组装式应用实践获得第三届“鼎新杯”数字化转型应用优秀案例一等奖。
209 3
|
2月前
|
Cloud Native 持续交付 云计算
云端新纪元:探索云原生技术的奥秘在当今数字化时代,云计算已成为推动企业创新和增长的关键动力。随着云平台的不断成熟,云原生技术应运而生,以其独特的优势引领着一场新的技术革命。本文将深入探讨云原生的核心概念、主要特点以及它如何改变现代软件开发和部署的方式,为您揭开云原生这一神秘面纱。
云原生是一种构建和运行应用程序的方法,充分利用了云平台的弹性、分布式本质以及声明式基础设施。本文将解析云原生的十二要素,微服务架构的优势,以及容器化、持续集成与持续部署(CI/CD)等核心技术的实践应用。通过深入浅出的方式,让读者理解云原生不仅是一种技术,更是一种文化和方法论,它正在重塑软件开发流程,提高资源利用率和应用系统的可扩展性与容错性。
|
2月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 09 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
2月前
|
人工智能 自然语言处理 关系型数据库
阿里云云原生数据仓库 AnalyticDB PostgreSQL 版已完成和开源LLMOps平台Dify官方集成
近日,阿里云云原生数据仓库 AnalyticDB PostgreSQL 版已完成和开源LLMOps平台Dify官方集成。
|
2月前
|
运维 监控 Cloud Native
深入理解云原生技术:从概念到实践
在数字化转型的浪潮中,云原生技术如同星辰指引航船,引领企业驶向灵活、高效的未来。本文将深入浅出地探讨云原生的核心理念、关键技术及应用实例,旨在为读者揭开云原生的神秘面纱,展示其如何重塑软件开发与运维模式。通过理论与实践的结合,我们将一窥云原生技术的强大动力和无限可能。
|
2月前
|
运维 Cloud Native 持续交付
云原生技术解析:从IO出发,以阿里云原生为例
【10月更文挑战第24天】随着互联网技术的不断发展,传统的单体应用架构逐渐暴露出扩展性差、迭代速度慢等问题。为了应对这些挑战,云原生技术应运而生。云原生是一种利用云计算的优势,以更灵活、可扩展和可靠的方式构建和部署应用程序的方法。它强调以容器、微服务、自动化和持续交付为核心,旨在提高开发效率、增强系统的灵活性和可维护性。阿里云作为国内领先的云服务商,在云原生领域有着深厚的积累和实践。
65 0
|
5天前
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
|
23天前
|
Cloud Native 安全 数据安全/隐私保护
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####