阿里巴巴专家教你如何在家安全高效开发软件

本文涉及的产品
云效 DevOps 流水线,基础版人数 不受限
云效 DevOps 制品仓库,基础版人数 不受限
云效 DevOps 测试管理,基础版人数 不受限
简介: 为响应国家号召,各“大厂”纷纷发出在家办公,延迟上班的通知,一时间“在线协同办公”成为热点。不同于大型集团公司,有足够财力和能力构建远程办公系统,中小企业既缺乏足够的预算又缺乏相应的经验。阿里云云效一直致力于成为数字企业的研发效能引擎,在这个特殊时期,我们希望可以将自己的经验和工具分享给中小企业,让他们在家也能安全高效地开发软件。

抗疫情工具+方案+资源持续更新,点击“战疫情,我们在一起!”专题了解。

为响应国家号召,各“大厂”纷纷发出在家办公,延迟上班的通知,一时间“在线协同办公”成为热点。不同于大型集团公司,有足够财力和能力构建远程办公系统,中小企业既缺乏足够的预算又缺乏相应的经验。阿里云云效一直致力于成为数字企业的研发效能引擎,在这个特殊时期,我们希望可以将自己的经验和工具分享给中小企业,让他们在家也能安全高效地开发软件。

因此我们特别邀请了阿里巴巴高级技术专家张燎原,详解“在线协同开发”的要诀。

image.png

对于知识经济活动,高可见性,快速连接能力意味着灵活协作的可能,而在线化是这一切的基础,在线化让人们有机会在任何时候任何地方,快速集结、组织协作,让SOHO这样的远程办公方式成为可能。

下面我们将从“在线项目协同”“在线代码协同”“在线交付协同”三个方面,阐述如何实现在线协同研发,让身处不同地域,不同时区的你我他,能够快速连接起来,真正进入到数字化研发时代。

在线项目协同

需求协作,从拉通和可视化端到端的价值流动开始

可见,是协作的基础。通过电子看板,以需求为流动单元,端到端可视化价值流,以流动效率为核心组织需求交付。可视化端到端价值流必须做到:价值驱动,即每一个流动单元体现的都是体现用户价值的业务需求;前后拉通,即可视化的目标是“端到端”的价值流,始于用户问题的提出,终于用户问题的解决

image.png

我们可以通过以下三个标准来检验可视化的效果,即:

  • 是否能反映端到端的交付过程
  • 是否能即时体现影响价值流动的瓶颈和问题
  • 是否能依据可视化的信息进行协作和做决定

同时,打通从项目协作到软件发布的全链路,代码提交和发布信息同样可以即时反映到需求卡片上,集中及时的工作状态同步,减少沟通基本靠吼的套路,使得项目管理的目标更关注在价值交付和问题解决上。

管理价值流动,构建价值反馈闭环,让交付更可控

软件交付的关键,是客户价值的流动,而组织壁垒、沟通延迟、协作阻塞是主要障碍。基于端到端可视化的价值流看板,产品需求排期,还是团队每日站会的任务指派,围绕需求看板,来组织日常的项目协作。自右往左检视需求的交付状态,从测试工程师、开发工程师到产品经理,跨职能协同。同时,需求的任何风险及问题,高亮显性地展示在看板上,以钉钉等即时通信工具,快速反馈到责任人,做到即时发现、即时响应,就问题快速链接集结。

形成从需求规划、需求排期、每日站会,再到需求复盘的完整价值反馈闭环。从整体交付节奏上,形成月规划、周排期、日站会的节奏。而这一切,完全可以通过在线化的电子看板进行。

image.png

限制在制品数量,加速业务需求交付

影响需求(价值)流动效率的关键是批量和并行,通过限制在制品数量(我们称之为束水攻沙),加速需求交付。同时,数字化协作,有利于研发过程中,效能数据的沉淀,建立效能改进的基线和愿景目标,以客户响应周期和质量提升为目标,驱动问题的发现和解决,建立持续改进的基础。

在线代码协同

代码协作是代码集体所有制(CollectiveCodeOwnership)

团队成员共同为代码负责。基于Git分布式版本控制系统,实现了基本的代码托管理能力。在当前的代码协作概念中,分支即是协作的载体,世界各地的开发者们可以根据产品需求,建立不同分支,同时开发。恰当的分支模式,让分散的工作,快速集成在一起,并在版本上可追溯。每个代码库的readme信息详细说明代码设计,建立基本的代码质理管理标准(如单元测试和自动化的增量代码静态扫描),保证持续增量代码不会影响已有功能,让协作成为可能。

提升代码的可见性,助力代码协作

无论从简单的复杂度、重复度分析、依赖分析,再到领域语言识别,安全敏感信息识别等,像阿里巴巴代码规约等工具,提大提升了代码的可见性,程序员们已经完全可以从大量的代码中,抓住关键信息。

同时,借助云端IDE、云端分布式代码托管工具,有效地促进社交化编程,无论是结对编程,还是代码评审,让代码本身及编码过程显性化:

  • 促进团队内部知识共享,提高团队整体水平,确保团队统一规范,不出现“天书”代码;
  • 工具的早期介入潜在缺陷发现率可以提升30%;
  • 透明的代码,多人的讨论可以促进正向鼓励,主动思考和追求卓越。

代码安全

代码在线化协同,代码共享、复用文化的建立都依赖于代码平台复杂的权限控制体系,这是一把双刃剑,越开放意味着代码泄露的风险越大,但是越封闭意味着协同效率低下。为了让开发者可以更好地享受代码协作带来的红利,需要重点注意以下几个方面:

  • 代码中的敏感信息:比如数据库密码,被有意或无意泄露后会导致公司业务出现致命打击。
  • 访问权限控制:常见的有访问IP控制,离职权限回收,代码库可见范围设置等。
  • 异常行为风险识别:拥有事后审计,事前预警的能力,比如大量下载代码异常行为检测和预警。

代码协作是技术卓越的追求,是培养软件匠艺精神的机会,借助先进的代码协作工具及技术手段,促进代码及编码过程的可见性,同时,让每一位程序员能够有信心地提交每一行代码。

在线发布协同

现代化企业级软件交付过程常常是多人多角色协作,跨越多个系统交互,同时为了保障交付可靠,交付流程往往也是复杂和难以完全标准化。而阿里巴巴为什么能紧跟市场变化,快速写出高质量软件,这得益于多年沉淀出的一套完整DevOps方法论和产品,确保软件交付过程在线高效可靠。

从流程标准,工序改进,建立在线发布协作

在线发布协同,需要基于同一个交付流水线进行,首先,需要拉通软件集成发布的完整流程。打通从变更到交付的完整系统;将流程工具化,通过工具串起整个集成交付过程;同时,明确流程中各阶段的准入准出标准,下游活动基于上游产出质量。其次,按工序建立质量守护系统,并使每一道工序自动化。再次,建立反馈机制,有问题能够精准定位,即时响应,快速修复。建立相应的度量反馈机制,还能对流程和工序进行持续优化。

真正的在线发布协同,应该是满足:流程工具化、部署无人化、测试自动化、反馈数字化的要求。

特性分支驱动多人多角色在线协作

为了实现多人研发不打扰,代码功能可以自由可靠组合交付,阿里巴巴生产经验积累出一套AoneFlow代码分支管理方法,以特性变更为单元,使用CI/CD流水线完整的覆盖了从构建、测试到部署整个持续交付过程,过程中的每一个步骤和任务的信息都可以通过消息、邮件、钉钉机器人等告知和追溯,使研发、测试、运维、配管等角色能在线协同,异步工作。

用云原生技术打破开发与运维的边界

以Kubernetes、Serverless、ServiceMesh、CloudIDE为代表的多项云原生技术在过去一年让人印象深刻。这套开箱即用的开源软件,让中小公司快速的获得了以往互联网大厂才有的精英软件交付能力,比如复杂的流量治理能力,灰度发布能力,A/BTest能力,多环境管理能力,基础设施一键拉起,快速扩缩能力等等。但在企业采纳新技术的同时,也面临着诸多挑战,比如开源软件复杂的搭建
过程,黑屏化的交互设计,缺乏研发管理方法,缺乏企业权限管理能力等。阿里巴巴也在积极将CI/CD工具、测试环境管理方法、应用运维理念、DevOps协同方法论等与云原生技术融合贯通,为开发者提供开箱即用的新技术解决方案。

使用“云效”轻松实现一站式在线研发协同

工欲善其事必先利其器,云效可以提供从“需求->开发->测试->发布->运维->运营”端到端的在线协同服务和研发工具,让你轻松实现一站式研发协同。

image.png

我们可以这样使用云效来完成一天的工作:

  • 晨会上团队基于精益看板进行需求、任务对齐,完成任务指派
  • 开发同学根据特性开发,创建变更分支
  • 通过线下或云端开发环境进行编程工作,然后提交代码
  • 代码自动触发自动的代码扫描,并发送给指定的代码评审员进行评审
  • 完成评审的代码自动触发集成发布流水线,自动化的完成构建,生成Docker镜像,分别在开发环境、集成环境及预发环境进行部署,完成相应的验证工作;验证完之后处于待发布状态,触发上线审核流程,运维完成审核发布上线
  • 过程中任何问题通过钉钉,遵循nonewsisgoodnews的原则,及时反馈到指定负责人,做到准确反馈、即时响应,快速恢复。尽量避免垃圾短信式反馈,过多的噪音,反而会降低协作的效率。

我们希望将云效多年积累的研发实战经验和先进的工具分享出来,让小企业,具备大智慧,快速开展在家研发软件工作。同时,为降低中小企业的采购成本,云效推出小微企业扶植计划,30人以下研发团队可以免费使用云效全部功能。

image.png

免费体验云效:https://www.aliyun.com/product/yunxiao
如需帮助,可以加入云效开发者交流钉钉群:

  • 云效研发效能交流①群,钉钉群号:11789512(已满)
  • 云效研发效能交流②群,钉钉群号:23362009(欢迎加入)

关于云效:

云效,企业级一站式DevOps解决方案,源于阿里巴巴先进的管理理念和工程实践,致力于成为数字企业的研发效能引擎!云效提供从“需求->开发->测试->发布->运维->运营”端到端的在线协同服务和研发工具,通过人工智能、云原生技术的应用助力开发者提升研发效能,持续快速交付有效价值。

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
SVN版本控制系统
SVN是现在软件开发之中的主流软件版本控制工具,在工作之中利用SVN可以有效的解决多人开发的代码管理问题,本课程将为读者讲解SVN服务器的配置以及基于MyEclipse的SVN客户端插件的配置与使用,并且在讲解之中着重讲解了冲突的产生于解决。
相关文章
|
运维 Kubernetes Devops
思否开源项目推介丨Choerodon:开源多云应用敏捷全链路技术平台
思否开源项目推介丨Choerodon:开源多云应用敏捷全链路技术平台
思否开源项目推介丨Choerodon:开源多云应用敏捷全链路技术平台
|
3月前
|
人工智能 前端开发 Java
Java开发工程师转哪个行业比较好?
Java开发工程师转哪个行业比较好?
341 2
|
弹性计算 运维 Kubernetes
5个免费名额、阿里专家亲自辅导,手把手带领企业落地云原生持续交付
寻5家企业,共创云原生持续交付解决方案,定义下一代云原生持续交付产品。阿里专家面对面沟通、亲自浮躁,带领企业落地云原生持续交付方案
326 0
5个免费名额、阿里专家亲自辅导,手把手带领企业落地云原生持续交付
|
前端开发 开发者 知识图谱
免费下载 !《AliFlutter 体系化建设和实践》
Flutter 技术无疑是近年热度最高的话题之一,每一个移动开发者都在为 Flutter 带来的“快速开发、富有表现力和灵活的 UI、原生性能”的特色和理念而痴狂,那么为什么是 Flutter ?Flutter 体系化建设现状又是如何呢?Flutter的未来是什么方向?
30061 0
免费下载 !《AliFlutter 体系化建设和实践》
|
前端开发 JavaScript 中间件
不四:产品工程师的修炼之路
我是不四,毕业后一直在阿里和蚂蚁工作,不四是我在阿里的花名,社区中一般以另一个花名 “死马” 出现。每一个人的成长轨迹都不一样,一路上遇到的机遇也各不相同,这次分享也仅站在一个普通工程师的角度来分享我的成长经历和贯穿其中的一些个人习惯。
不四:产品工程师的修炼之路
|
Java Android开发 p3c
提升团队研发效能利器,《阿里巴巴Java开发手册》插件全球首发(附插件下载地址)
2017年9月底,阿里巴巴集团发布了《阿里巴巴Java开发手册》PDF终极版,2017年10月14日,在2017杭州云栖大会上,规约插件全球首发。本文为大家分享规约插件下载地址与使用攻略,敬请取阅。
43277 0
|
运维 数据可视化 Cloud Native
阿里巴巴专家教你如何在家安全高效开发软件
为响应国家号召,各“大厂”纷纷发出在家办公,延迟上班的通知,一时间“在线协同办公”成为热点。不同于大型集团公司,有足够财力和能力构建远程办公系统,中小企业既缺乏足够的预算又缺乏相应的经验。
2327 0
阿里巴巴专家教你如何在家安全高效开发软件
|
容器 Serverless Kubernetes
|
自然语言处理 程序员 项目管理
41岁阿里工程师:35岁转管理,真的是必经之路吗?
墨玦,阿里巴巴 iDST 高级技术专家。博士毕业于北京邮电大学,计算机应用专业,目前主要从事语音技术工程化方面的研发。回顾在阿里的三年时光,他感慨良多,写下了这篇总结,与大家共勉。
7621 0