云端开发在阿里的典型应用场景 | 阿里巴巴DevOps实践指南(十)

简介: 云端开发指开发者可基于云平台完成编码、测试、发布等研发流程。一个完整的云端开发平台不仅是提供了一个云端的编码环境,还提供了一整套研发工具和配套设施,让开发者做到在云端即可完成应用程序的需求、编码、测试和运维的全生命周期管理。

本文作者:弗止,阿里云云效技术专家;辰颜,阿里云云效高级开发工程师

本文源自:阿里云云效团队出品的《阿里巴巴DevOps实践指南》,前往:https://developer.aliyun.com/topic/devops,下载完整版电子书,了解阿里十年DevOps实践经验。


云端开发指开发者可基于云平台完成编码、测试、发布等研发流程。一个完整的云端开发平台不仅是提供了一个云端的编码环境,还提供了一整套研发工具和配套设施,让开发者做到在云端即可完成应用程序的需求、编码、测试和运维的全生命周期管理。

传统的本地开发的问题

如下图所示,在传统的开发模式中,企业研发人员通常在本地完成代码的编写和测试,然后把代码推送到远端服务器,通过一系列的构建和集成,最终发布到生产环境,并持续利用线上的运维体系完成线上系统的监控和运维;同时,企业也会采集部分研发过程中的关键数据,用来度量团队及个人的效能。

image.png

随着各种软硬件技术逐渐更替,公司规模也越来越大,为了适应这种变化:

  • 公司需要不断为企业研发人员配备合适的本地研发工具(如:多核高内存的计算机设备、Mac 笔记本电脑),这些设备可能价值不菲,而且需要定期的更新换代;
  • 新加入的员工,在正式开始开发前,需要配置复杂的本地开发环境,安装特定的软件及插件,并熟悉项目的研发流程及各个线上系统;部分项目因为网络配置等问题,可能第一时间还无法在本地启动,还会耽误不少额外的配置及调试时间;
  • 公司需要投入较多的资源,才能构建起匹配管理者需求的效能度量系统和安全管控系统,并且因为云端体系天生对开发者本地环境的弱管控性,效果只能差强人意;

阿里巴巴也不例外,随着近些年各项业务的飞速发展,人员的快速扩充,如何解决发展过程中带来的类似问题变得迫在眉睫。而云端研发作为一种新兴的技术形式,其独特的优势恰好可以用来解决上述问题。

云端开发的典型应用案例

案例 1:前端组件的开发

在阿里内部,存在大量的基于 Node.js 构建的前端工程,这些前端工程普遍采用模块化的组织方式,在开发过程中会随着需求迭代产生众多的模块(或组件)。同时,有些前端工程会邀请业务方参与共建,即由提出功能需求的团队在大的标准下自行开发组件,并发布上线,在平台中集成自己的场景。

在这样的背景下,组件的开发会被高度的抽象,大部分的步骤都可以由工具辅助完成(如下图中,业务开发人员只需要关注自己的业务逻辑即可),这样既提升了研发效率,又提升了组件的开发质量。

前端组件开发过程:

image.png

云端开发的开箱即用,恰好可以解决类似的问题。开发者打开浏览器就是一个配置好的环境,实现零配置上手;而环境配置可以由项目组的资深同事维护,配置好针对某个项目的系统版本、程序运行时、SDK 和 IDE 插件集合。相比使用本地的研发工具,云端开发可以实现:

  • 研发流程的产品化,从组件的新建到最终的发布一气呵成,不用再在多个平台工具上来回跳转;
  • 屏蔽用户操作系统的差异,提供统一的研发环境,不用再解决 Windows/Mac 的差异,不用担心本地Node.js 的版本问题;
  • 所有环境都会预装好必要的开发提效工具,如:规约扫描和修复工具、预览调试工具、各环境发布工具等;
  • 充分释放本地磁盘空间,不用担心磁盘被 node_modules 占满;

案例 2. 代码安全管控与研发过程数字化度量

在政务、金融以及部分高科技企业的研发场景中,对代码的安全管控要求极其严格。但近几年,公司内部源代码泄露的事件时有发生,有的被明码标价进行出售,标价数十万甚至上百万美元;有的直接被公开在网络上,任何人都可以访问下载。一旦发生类似事件,将会直接或间接造成商业信息泄露及公司声誉受损。

当使用本地开发时,源码的传输环境、本地的持久化介质不可控,对于员工有意泄露源码的行为似乎无可奈何。当使用云端开发时,一切都迎刃而解:开发者可以从代码库或需求直接打开网页开始云端开发,研发过程中代码不落本地磁盘,既能减少传输风险,又避免了员工本地环境被植入木马、从而在不知情的情况下泄露源码的可能;同时,在云端开发环境中可以对用户的浏览、拷贝行为做不同程度的管控,结合告警和系统自动拦截,可有效降低源码泄露的风险。

在阿里内部,当涉及到对保密性要求极高的项目,或者当企业外部成员参与对代码保密性有要求的项目时,我们会推荐项目团队使用云端进行研发,从而有效防止源码的泄露。

此外,随着越来越多的企业进入到数字化转型阶段,管理者期望能更加全面的看到企业员工的投入与产出,并且针对项目人员分布与研发过程效率做出更加及时的调整与改进。在过去,所有的数字化信息都依赖人工的反馈和统计,反馈的是否准确、统计过程中是否有纰漏都会直接影响管理层的判断。但如果把研发过程搬到云上,所有的研发过程数据就能生在云上、用在云上,想要借助数字化提升研发效率变得更加容易。

在阿里内部,团队中经常会出现一名正式员工带领多名企业外部成员完成项目的情况。在需要对企业外部成员的工作进行绩效评定时,传统的评定方式通常是参考需求完成数量、代码缺陷率等指标,但实际工作中需求有大有小、有难有易,完全基于结果指标进行评定很难做到公平公正,让优秀的员工脱颖而出。借助云端开发,可以让所有研发过程中的数据也透明出来,如各需求的编码时长、临时版本发布次数、过程代码与最终有效代码的比例、单位时间代码产出量等。通过结合研发过程数据,也可以让绩效评定更加透明公正。

总结

云端开发具备灵活定制、开箱即用的特点,借助好这两个特性,就可以创新性的解决掉传统本地开发过程中的顽疾。除了上述两个案例外,我们认为,当前适合云端开发落地的场景还可以是:

  1. 云原生场景中的轻量代码开发,如 Serverless 场景,这类场景中研发人员只需要集中式的编写业务逻辑,大量的框架类代码已被默认隐藏,并且调试、部署方式有别于传统研发过程,更适合云端开发的落地。
  2. 各类垂直化的场景,这类场景通常需要有针对性的定制,与特定的线上系统进行打通,只要能利用好云端开发灵活定制的特性,就有望实现开发阶段 10 倍效能的提升。

目前,阿里巴巴内部的云端开发平台目前已通过阿里云云效对外输出

image.png


免费下载《阿里巴巴DevOps实践指南》

阿里巴巴合伙人和业界多位大佬力荐、何勉、陈鑫等17位阿里资深技术专家联袂出品、阿里十年DevOps经验沉淀总结、阿里巴巴DevOps落地实践一本通。

前往:https://developer.aliyun.com/topic/devops,下载完整版电子书。

image.png

相关文章
|
1月前
|
监控 安全 Devops
DevOps实践中,如何平衡开发速度和安全审核的效率
DevOps实践中,如何平衡开发速度和安全审核的效率
|
4月前
|
监控 Devops 测试技术
利用DevOps提升开发效率:技术实践与策略
【7月更文挑战第4天】DevOps通过自动化、CI/CD、协作与沟通等手段,显著提升了软件开发的效率和质量。随着云计算、容器化、自动化测试等技术的不断发展,DevOps的实践将更加深入和广泛。未来,更多的企业将采用DevOps文化,构建高效、灵活、可靠的软件开发和运维体系,以应对快速变化的市场需求。 总之,利用DevOps提升开发效率是软件开发领域的重要趋势。通过实施上述实践策略,企业可以加速产品迭代,提高市场竞争力,实现可持续发展。
|
3月前
|
运维 Devops 持续交付
自动化运维之路:从脚本到DevOps探索后端开发:从基础到高级实践
【8月更文挑战第28天】在数字化时代的浪潮中,企业对于IT运维的要求越来越高。从最初的手动执行脚本,到如今的自动化运维和DevOps实践,本文将带你领略运维的演变之旅。我们将探索如何通过编写简单的自动化脚本来提升效率,进而介绍DevOps文化的兴起及其对现代运维的影响。文章将为你揭示,通过持续集成、持续部署和微服务架构的实践,如何构建一个高效、可靠的运维体系。准备好让你的运维工作变得更加智能化和自动化了吗?让我们一起踏上这段旅程。 【8月更文挑战第28天】 本文旨在为初学者和有一定经验的开发者提供一个深入浅出的后端开发之旅。我们将一起探索后端开发的多个方面,包括语言选择、框架应用、数据库设计
|
3月前
|
敏捷开发 运维 Devops
DevOps文化:打破开发与运维之间的壁垒
【8月更文挑战第14天】DevOps文化是现代软件开发和运维的重要趋势之一。通过打破开发与运维之间的壁垒,实现自动化、持续集成/持续部署以及紧密协作等关键实践,可以显著提高软件交付的质量和效率。对于任何希望在数字化时代保持竞争力的企业来说,拥抱DevOps文化无疑是一个明智的选择。
|
3月前
|
前端开发 Java UED
JSF遇上Material Design:一场视觉革命,如何让传统Java Web应用焕发新生?
【8月更文挑战第31天】在当前的Web开发领域,用户体验和界面美观性至关重要。Google推出的Material Design凭借其独特的动画、鲜艳的颜色和简洁的布局广受好评。将其应用于JavaServer Faces(JSF)项目,能显著提升应用的现代感和用户交互体验。本文介绍如何通过PrimeFaces等组件库在JSF应用中实现Material Design风格,包括添加依赖、使用组件及响应式布局等步骤,为用户提供美观且功能丰富的界面。
43 0
|
3月前
|
前端开发 Devops 持续交付
【前端自动化新高度】Angular与Azure DevOps完美结合:从零构建持续集成与持续部署的全自动流水线,提升开发效率与软件交付质量!
【8月更文挑战第31天】Angular作为领先的前端框架,以强大功能和灵活性深受开发者喜爱。Azure DevOps提供一站式DevOps服务,涵盖源码管理、持续集成(CI)及持续部署(CD)。本文将指导你如何在Azure DevOps中搭建Angular项目的CI/CD流程,并通过具体示例代码展示整个过程。首先,我们将创建一个Angular项目并初始化Git仓库;然后,在Azure DevOps中设置CI流水线,定义YAML文件以自动化构建和部署流程。最终实现每次提交代码后自动构建并部署至Azure Web App,极大提升了开发效率和软件交付速度,使团队更专注于创新。
34 0
|
3月前
|
运维 Devops 数据库
太卷了!DevOps,就是开发要把运维卷跑了?
太卷了!DevOps,就是开发要把运维卷跑了?
|
5月前
|
监控 Devops 测试技术
告别繁琐流程,云效DevOps让开发更轻松!
【6月更文挑战第11天】云效DevOps是一款集成代码托管、自动化构建、持续集成/部署、测试管理和监控告警的云原生研发协作平台,旨在提高软件开发效率和质量。它提供代码版本控制、协同开发、自动化测试及灰度发布等功能,打破传统开发流程壁垒,实现开发、测试、运维的无缝协作。通过自动化构建和YAML配置,开发者能轻松实现代码编译、打包和部署,确保快速、安全的线上服务。云效DevOps助力开发者更专注业务逻辑,提升软件竞争力。
48 2
|
运维 Cloud Native 数据可视化
阿里云云原生 DevOps - 企业开发过程的困境
阿里云云原生 DevOps - 企业开发过程的困境
阿里云云原生 DevOps - 企业开发过程的困境
|
6月前
|
运维 监控 持续交付
阿里云云效:为企业打造高效、可靠的云端开发体验
阿里云云效:为企业打造高效、可靠的云端开发体验
282 0
下一篇
无影云桌面