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

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

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

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

传统的本地开发的问题。

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

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

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

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

云端开发的典型应用案例

案例 1:前端组件的开发

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

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

前端组件开发过程:

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

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

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

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

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

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

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

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

总结

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

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

目前,阿里巴巴内部的云端开发平台目前已通过阿里云云效对外输出,前往ide.aliyun.com,秒级体验云端编码、代码智能补全等黑科技。
阿里巴巴合伙人和业界多位大佬力荐、何勉、陈鑫等17位阿里资深技术专家联袂出品、阿里十年DevOps经验沉淀总结、阿里巴巴DevOps落地实践一本通。

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

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

云端开发在阿里的典型应用场景相关推荐

  1. 阿里云在线web IDE:云效云端开发 DevStudio(ide.aliyun.com)

    欢迎使用云效云端开发 DevStudio https://help.aliyun.com/document_detail/261191.html 工具地址:https://ide.aliyun.com ...

  2. 细数阿里云服务器的十二种典型应用场景

    原文链接:http://click.aliyun.com/m/13910/ 免费开通大数据服务:https://www.aliyun.com/product/odps 文章转载:小白杨1990 如今, ...

  3. 阿里云服务器的典型应用场景

    阿里云的产品可谓是多种多样,纷繁复杂.面对各种各样的技术和产品,ECS.RDS.OSS-等等一系列的东西,很容易让人找不到头绪,尤其是刚刚开始接触网站建设的朋友.因此为大家整理一些阿里云典型的应用场景 ...

  4. 细说社交化经销商服务的十大典型应用场景

    这期云服务百言堂将用友优普运营经理沙猛介绍社交化的经销商服务.沙猛介绍道,用友从为企业提供财务软件的1.0时代.管理软件的2.0时代,到现在提供社会化商业服务平台的3.0时代,每一个时代的背景都是来源 ...

  5. SAP解决方案(典型业务场景)

    一.SAP解决方案(典型业务场景) 在华为云上部署SAP业务,能够充分利用华为云大规格.高性能.高安全和高可靠的能力,以及全生命周期的管理服务,帮助企业简化管理.节省成本.高效运营,快速实现数字化转型 ...

  6. 5G+智能制造十大典型应用场景 | 附下载

    5G技术切合了传统制造企业智能制造转型对无线网络的应用需求,能满足工业环境下设备互联和远程交互应用需求,在协同设计. 自动控制.柔性生产.辅助装配等十大工业典型应用领域中起着关键支撑作用. 下面我们来 ...

  7. 抗击疫情四大5G典型应用场景,催化5G深刻改变社会

    ● 核心观点: _ 1.抗击疫情带来5G发展机遇:抗击疫情"医疗医护场景"."生活娱乐场景"."公共安全"和"远程办公和在线教育& ...

  8. ZooKeeper典型应用场景一览

    原文地址:http://jm-blog.aliapp.com/?p=1232 ZooKeeper典型应用场景一览 数据发布与订阅(配置中心) 发布与订阅模型,即所谓的配置中心,顾名思义就是发布者将数据 ...

  9. 【ZooKeeper Notes 28】ZooKeeper典型应用场景一览

    ZooKeeper是一个高可用的分布式数据管理与系统协调框架.基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题.网上 ...

最新文章

  1. 【一个诡异的问题】用饿了么的自定义主题之后发现表格顶部的复选框checkbox错位了
  2. 成为顶级CIO ,应该怎么做?
  3. zip unzip 命令
  4. 极端情况下收缩 Go 进程的线程数
  5. python开发网页视频播放器_HTML5 VideoAPI,打造自己的Web视频播放器
  6. android 粒子动画火焰,canvas粒子火焰跟随动画特效
  7. 3dm格式catia能打开吗_CATIA 3DXML文件格式介绍 | 坐倚北风
  8. GBDT+LR算法入门理解
  9. resin 系统日志_resin学习随笔
  10. Tomcat+Servlet面试题都在这里(修订版)
  11. Android图表控件MPAndroidChart——BarChart实现多列柱状图以及堆积柱状图
  12. Vue项目中个人中心头像的上传方法
  13. 东汉末年的事态格局的变迁原因即三国各个厉害角色的性格中的底层原因分析
  14. Putty的使用及登录
  15. MVE-Ubuntu手工打造的三维重建软件(依赖很少的第三方库)
  16. 安装打印机后默认不是中文的原因及解决方法
  17. 80后站长建站的经验总结
  18. 微信第三方登录接口开发
  19. C# Winfrom 自定义控件——带图片的TextBox
  20. 导师催论文的操作指南

热门文章

  1. 客观评价OA的优劣所在
  2. 模拟实验室合成器插件-Arturia Analog Lab v5.2.0 WiN
  3. kubernetes搭建 二、Etcd集群
  4. Visual Studio下载速度慢解决办法
  5. 远程预付费电能管理系统在商业广场的应用
  6. AD10 网络表添加
  7. 数仓建模—用户旅程地图
  8. 【AI实时变声器,声音甜甜的小姐姐背后竟是抠脚大汉】
  9. 山东移动咪咕MG2000_KJ_S905L2B_RTL8822BS_线刷固件包
  10. mysql aarch64_aarch64华为鲲鹏服务器安装Mysql5.7