阿里云云原生 DevOps - 企业开发过程的困境

本文涉及的产品
函数计算FC,每月15万CU 3个月
可观测监控 Prometheus 版,每月50GB免费额度
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 阿里云云原生 DevOps - 企业开发过程的困境

开发者学习笔记【阿里云云原生助理工程师认证(ACA)课程:阿里云云原生 DevOps - 企业开发过程的困境】

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


阿里云云原生 DevOps - 企业开发过程的困境

 

内容介绍:

一、软件发布链路多,开发周期长

二、基础设施环境复杂

三、缺少自助式的持续交付平台

四、 DevOps 工具链自建复杂度高

 

一、软件发布链路多,开发周期长

传统的软件企业在开发过程中会遇到一些困境,以漫画形式做展示。
image.png
漫画中用户需要修改需求,此时产品经理找到研发人员要求修改代码,修改代码需要重复一次开发流程,从定需求到排期开发,部署调试,测试,预发布,验收直到正式发布,传统的开发模式如遇到需求的变更,由于开发的链路很长会导致消耗的人工成本很大,开发人员完成了需求更改,完成提交部署,当用户收到了没有更改的产品,研发人员发现由于误操作,将代码部署到了测试环节,由于环节复杂,部署时研发人员很容易误操作,对于这种在工作中常见的场景。
总结如下,软件发布链路环节多,开发周期长,传统软件企业以软件开发为主;开发部门是整个公司最大的部门,开发部门下设许多项目组,如:需求、开发、测试等,不同的组别之间的沟通成本很高,如产品组更关注用户的体验而不考虑开发的性能和合理性,研发组的驱动力通常是频繁交付新特性,完成产品组提出的需求,测试组则关注研发组是否能够按照需求完成所有的功能,运维组更关注无故障运行,从产品到研发、测试、运维过程看似正确,但是由于每个环节当中的角色的目标不匹配,导致组与组之间产生鸿沟,从而减慢了交付业务的速度。

 

二、基础设施环境复杂

在传统的软件研发中,普遍没有使用容器化技术,部署过程中流程非常复杂,测试环境、开发环境、生产环境之间的配置不一致,导致部署过程中容易出错,此时需要大量的人工成本做调试,此过程中代码打包也缺乏自动化、可视化的管理,同样会导致在发布过程中出现错误或误操作,并且出错后无法及时进行代码回退和修正。

 

三、缺少自助式的持续交付平台

由于出现的开发链路长,部署失误等问题,公司的研发团队进行了深入讨论,决定整合开发流程,压缩开发周期,并且考虑能否实现自主化的部署来替代繁琐的部署工作,经讨论,团队成员挑选了开源工具链来搭建完备的自动化工具链,但是由于开源工具过多,每一样都需要挑选和甄别,用户提出了很多紧急需求,没有大量实践构建工具链,此时就需要一体化的自动化平台来梳理项目部署开发流程,但是自建系统的复杂度大,需要根据公司团队的具体情况选择最合适的方案来解决开发部署中遇到的问题。
总结如下,缺少自助式的持续交付平台,在开发、测试和运维中各自有自己的一套工具来完成自己关心的任务,为了更好完成任务,会制作小工具,这些工具之间既不相同,也不相互关联,软件包在不同工具之间的转移更多依靠人工来完成。虽然在开发模式上采用了敏捷的开发,但是由于在软件工具上没有做好统一,此时带来的成本也非常大。

 

四、DevOps 工具链自建复杂度高

开源工具集很多,涉及的技术也十分全面,企业可以选择自研的方式来开发工具集,但是会因此耗费团队大量的时间,如需要对工具链进行选择和测试,需要专业的团队运维,并且在开发过程中需要不断的调整和更新,以保证研发流水线的畅通。由上得出,工具链自建的复杂程度和成本都很高,但企业缺少一个自助化的交付平台,这就是企业在开发过程中所遇到的困境。

 

五、企业 DevOps 最佳路径

自建一套企业自助化平台需要耗费很大的物力和人力,对于多数企业而言都是一笔不小的开销,尤其是创业型公司,可以引用第三方的云原生加工体系来实现自动化的 DevOps 的实现,如存在一台自动化 DevOps 平台,则上程的客户只需要开发好代码构建测试等后续的流程都可以自动化的完成,开发人员只需要专注于代码的研发,并且提交代码到 DevOps 平台。其中,源代码的管理和代码分支管理,包括从 CI 集成到 CD 持续交付,持续部署等都是通过自动化来完成的,此时开发人员会有更多的精力来关注代码的研发和代码质量。
image.png

总之,对于资源丰富的企业,可以考虑自建 DevOps 平台;对于中小型企业,可选用第三方的服务来完成自动化体系的建设,通过这种方式,将时间和精力留给核心工作。

 

 

相关文章
|
4月前
|
监控 安全 Devops
DevOps实践中,如何平衡开发速度和安全审核的效率
DevOps实践中,如何平衡开发速度和安全审核的效率
|
2月前
|
存储 NoSQL Cloud Native
MongoDB云原生化:为企业开发注入高效动力
MongoDB云原生化为企业开发注入高效动力,分为三部分:1. 介绍阿里云和MongoDB的服务;2. 阿里云MongoDB解决自建模型痛点的功能,包括隔离性、海量数据处理、弹性能力及运维操作优化;3. 客户案例展示。通过云原生架构,MongoDB实现了灵活的扩展、高效的备份恢复和快速的回档能力,显著提升了企业的业务迭代速度和数据管理效率。典型客户如吉比特、莉莉丝、掌阅等受益于这些功能,实现了更稳定和高效的数据库服务。
|
3月前
|
Kubernetes Cloud Native 开发者
通义灵码对云原生应用开发的支持
通义灵码是阿里巴巴云推出的一款强大的云原生应用开发工具,支持容器化、编排技术等,提供从Dockerfile生成、容器镜像构建与推送,到Kubernetes配置文件生成及与Kubernetes集群集成的全方位支持,极大简化了云原生应用开发流程,提升了开发效率和应用质量。
通义灵码对云原生应用开发的支持
|
3月前
|
监控 安全 Devops
DevOps实践中,如何平衡开发速度和安全审核的效率
在DevOps实践中,为平衡开发速度与安全审核效率,可采取自动化安全测试、安全编码实践、持续监控与日志分析、集成安全工具、合规性代码审查、基础设施即代码、权限和访问控制、安全培训、漏洞及补丁管理和持续反馈改进等措施,确保高效安全的开发流程。
|
3月前
|
监控 安全 Devops
DevOps实践中,如何平衡开发速度和安全审核的效率?
DevOps实践中,如何平衡开发速度和安全审核的效率?
|
5月前
|
人工智能 Cloud Native Serverless
来云栖大会!探展云上开发,沉浸式体验云原生 + AI 新奇玩法
计算馆将展示中国最先进的云计算产业链全景,从底层硬件到数据创新,从云计算基础设施到数据管理服务、人工智能平台和模型服务,全景式呈现 AI 时代云计算最新技术形态和产品进展。计算馆有哪些推荐?往下看!
|
5月前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
284 3
|
5月前
|
运维 Cloud Native Devops
云原生时代的DevOps实践:自动化、持续集成与持续部署
【9月更文挑战第3天】未来,随着人工智能、大数据等技术的不断融入,DevOps实践将更加智能化和自动化。我们将看到更多创新的技术和工具涌现出来,为软件开发和运维带来更多便利和效益。同时,跨团队协作和集成也将得到进一步加强,推动软件开发向更加高效、可靠和灵活的方向发展。
|
6月前
|
运维 Devops 持续交付
自动化运维之路:从脚本到DevOps探索后端开发:从基础到高级实践
【8月更文挑战第28天】在数字化时代的浪潮中,企业对于IT运维的要求越来越高。从最初的手动执行脚本,到如今的自动化运维和DevOps实践,本文将带你领略运维的演变之旅。我们将探索如何通过编写简单的自动化脚本来提升效率,进而介绍DevOps文化的兴起及其对现代运维的影响。文章将为你揭示,通过持续集成、持续部署和微服务架构的实践,如何构建一个高效、可靠的运维体系。准备好让你的运维工作变得更加智能化和自动化了吗?让我们一起踏上这段旅程。 【8月更文挑战第28天】 本文旨在为初学者和有一定经验的开发者提供一个深入浅出的后端开发之旅。我们将一起探索后端开发的多个方面,包括语言选择、框架应用、数据库设计
|
6月前
|
前端开发 Java UED
JSF遇上Material Design:一场视觉革命,如何让传统Java Web应用焕发新生?
【8月更文挑战第31天】在当前的Web开发领域,用户体验和界面美观性至关重要。Google推出的Material Design凭借其独特的动画、鲜艳的颜色和简洁的布局广受好评。将其应用于JavaServer Faces(JSF)项目,能显著提升应用的现代感和用户交互体验。本文介绍如何通过PrimeFaces等组件库在JSF应用中实现Material Design风格,包括添加依赖、使用组件及响应式布局等步骤,为用户提供美观且功能丰富的界面。
71 0