热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

阿里巴巴DevOps实践指南|云端开发

开发者工具打造围绕开发者全生命周期的工具产品https:developer.aliyun.comtool?spma1z389.11499242.0.0.654524137BG3J

开发者工具
打造围绕开发者全生命周期的工具产品 

https://developer.aliyun.com/tool?spm=a1z389.11499242.0.0.654524137BG3JW&utm_content=g_1000283979

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

传统的本地开发的问题

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

image.png

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

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

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

云端开发的典型应用案例

案例 1:前端组件的开发

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

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

前端组件开发过程:

image.png

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

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

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

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

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

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

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

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

总结

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

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

 


推荐阅读
  • 深入解析Serverless架构模式
    本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ... [详细]
  • 本文汇集了一系列与Windows 7开发相关的资源链接,包括官方开发者指南、培训工具包、兼容性工具包以及SDK等,旨在为开发者提供全面的支持。 ... [详细]
  • 微信小程序中实现位置获取的全面指南
    本文详细介绍了如何在微信小程序中实现地理位置的获取,包括通过微信官方API和腾讯地图API两种方式。文中不仅涵盖了必要的准备工作,如申请开发者密钥、下载并配置SDK等,还提供了处理用户授权及位置信息获取的具体代码示例。 ... [详细]
  • 雨林木风 GHOST XP SP3 经典珍藏版 V2017.11
    雨林木风 GHOST XP SP3 经典珍藏版 V2017.11 ... [详细]
  • 本文将详细介绍如何在ThinkPHP6框架中实现多数据库的部署,包括读写分离的策略,以及如何通过负载均衡和MySQL同步技术优化数据库性能。 ... [详细]
  • 本文介绍了Java语言开发的远程教学系统,包括源代码、MySQL数据库配置以及相关文档,适用于计算机专业的毕业设计。系统支持远程调试,采用B/S架构,适合现代教育需求。 ... [详细]
  • 本文介绍了软件测试项目的实际操作过程,包括各角色的职责分配、项目启动、测试流程及测试人员的主要任务,旨在为从事软件测试工作的技术人员提供指导。 ... [详细]
  • 解析EasyCVR平台国标GB28181协议下的TCP与UDP模式
    在使用EasyCVR视频融合平台过程中,用户常遇到关于端口设置的问题,尤其是TCP和UDP模式的区别。本文将详细介绍这两种模式在GB28181协议下的具体应用及差异。 ... [详细]
  • 解读 DevOps:开发与运维的融合之道
    近年来,随着信息技术的快速发展,DevOps作为一种新的IT管理理念逐渐受到重视。本文将探讨DevOps的核心概念及其对现代企业的重要意义。 ... [详细]
  • 智能全栈云风暴:AI引领的企业转型之路
    当提及AI,人们脑海中常浮现的是天才少年独自编写算法,瞬间点亮机器人的双眼。然而,真正的AI革命正由大型企业和机构推动,它们利用全栈全场景AI技术,实现数字化与智能化的深度转型。 ... [详细]
  • 本文介绍了通过动态端口技术增强Windows远程管理(WinRM)及OpenSSH服务的安全性方案。此方案旨在提高服务器抵御DDoS攻击的能力,并减少因固定端口暴露而带来的安全风险。 ... [详细]
  • 腾讯视频 Node.js 服务国庆阅兵直播高并发实战
    本文分享了腾讯视频团队在国庆阅兵直播项目中,如何利用Node.js服务成功应对2.38亿次观看的高并发挑战。文章将从服务架构、可用性保障、缓存策略、日志与告警等方面详细解析。 ... [详细]
  • 在拉斯维加斯举行的Interop 2011大会上,Bitcurrent的Alistair Croll发表了一场主题为“如何以云计算的视角进行思考”的演讲。该演讲深入探讨了传统IT思维与云计算思维之间的差异,并提出了在云计算环境下应具备的新思维方式。Croll强调了灵活性、可扩展性和成本效益等关键要素,以及如何通过这些要素来优化企业IT架构和运营。 ... [详细]
  • 迎接云数据库新时代:程序员如何应对变革?
    在数据无处不在的时代,数据库成为了管理和处理数据的核心工具。从早期的信息记录方式到现代的云数据库,数据库技术经历了巨大的变革。本文将探讨云数据库的特点及其对程序员的影响。 ... [详细]
  • 点击上方“中兴开发者社区”,关注我们每天读一篇一线开发者原创好文DevOps微课系列旨在帮助用户学习DevOps实践。1概述    本文详细介绍一般开发人员使用Gerrit代码评审 ... [详细]
author-avatar
手机用户2502909811
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有