簡介:云端開發在阿里的典型應用場景,云端開發指開發者可基于云平臺完成編碼、測驗、發布等研發流程,一個完整的云端開發平臺不僅是提供了一個云端的編碼環境,還提供了一整套研發工具和配套設施,讓開發者做到在云端即可完成應用程式的需求、編碼、測驗和運維的全生命周期管理,
本文作者:弗止,阿里云云效技術專家;辰顏,阿里云云效高級開發工程師本文源自:阿里云云效團隊出品的《阿里巴巴DevOps實踐指南》,前往:https://developer.aliyun.com/topic/devops,下載完整版電子書,了解阿里十年DevOps實踐經驗, 云端開發指開發者可基于云平臺完成編碼、測驗、發布等研發流程,一個完整的云端開發平臺不僅是提供了一個云端的編碼環境,還提供了一整套研發工具和配套設施,讓開發者做到在云端即可完成應用程式的需求、編碼、測驗和運維的全生命周期管理,
傳統的本地開發的問題
如下圖所示,在傳統的開發模式中,企業研發人員通常在本地完成代碼的撰寫和測驗,然后把代碼推送到遠端服務器,通過一系列的構建和集,最終發布到生產環境,并持續利用線上的運維體系完成線上系統的監控和運維;同時,企業也會采集部分研發程序中的關鍵資料,用來度量團隊及個人的效能,
隨著各種軟硬體技術逐漸更替,公司規模也越來越大,為了適應這種變化:
? 公司需要不斷為企業研發人員配備合適的本地研發工具(如:多核高記憶體的計算機設備、Mac 筆記本電腦),這些設備可能價值不菲,而且需要定期的更新換代;
? 新加入的員工,在正式開始開發前,需要配置復雜的本地開發環境,安裝特定的軟體及插件,并熟悉專案的研發流程及各個線上系統;部分專案因為網路配置等問題,可能第一時間還無法在本地啟動,還會耽誤不少額外的配置及除錯時間;
? 公司需要投入較多的資源,才能構建起匹配管理者需求的效能度量系統和安全管控系統,并且因為云端體系天生對開發者本地環境的弱管控性,效果只能差強人意;
阿里巴巴也不例外,隨著近些年各項業務的飛速發展,人員的快速擴充,如何解決發展程序中帶來的類似問題變得迫在眉睫,而云端研發作為一種新興的技術形式,其獨特的優勢恰好可以用來解決上述問題,云端開發的典型應用案例
案例 2. 前端組件的開發
在阿里內部,存在大量的基于 Node.js 構建的前端工程,這些前端工程普遍采用模塊化的組織方式,在開發程序中會隨著需求迭代產生眾多的模塊(或組件),同時,有些前端工程會邀請業務方參與共建,即由提出功能需求的團隊在大的標準下自行開發組件,并發布上線,在平臺中集成自己的場景,
在這樣的背景下,組件的開發會被高度的抽象,大部分的步驟都可以由工具輔助完成(如下圖中,業務開發人員只需要關注自己的業務邏輯即可),這樣既提升了研發效率,又提升了組件的開發質量, 前端組件開發程序:
云端開發的開箱即用,恰好可以解決類似的問題,開發者打開瀏覽器就是一個配置好的環境,實作零配置上手;而環境配置可以由專案組的資深同事維護,配置好針對某個專案的系統版本、程式運行時、SDK 和 IDE 插件集合,相比使用本地的研發工具,云端開發可以實作:
? 研發流程的產品化,從組件的新建到最終的發布一氣呵成,不用再在多個平臺工具上來回跳轉;
? 屏蔽用戶作業系統的差異,提供統一的研發環境,不用再解決 Windows/Mac 的差異,不用擔心本地Node.js 的版本問題;
? 所有環境都會預裝好必要的開發提效工具,如:規約掃描和修復工具、預覽除錯工具、各環境發布工具等;
? 充分釋放本地磁盤空間,不用擔心磁盤被 node_modules 占滿;
案例 2. 代碼安全管控與研發程序數字化度量
在政務、金融以及部分高科技企業的研發場景中,對代碼的安全管控要求極其嚴格,但近幾年,公司內部源代碼泄露的事件時有發生,有的被明碼標價進行出售,標價數十萬甚至上百萬美元;有的直接被公開在網路上,任何人都可以訪問下載,一旦發生類似事件,將會直接或間接造成商業資訊泄露及公司聲譽受損,
當使用本地開發時,原始碼的傳輸環境、本地的持久化介質不可控,對于員工有意泄露原始碼的行為似乎無可奈何,當使用云端開發時,一切都迎刃而解:開發者可以從代碼庫或需求直接打開網頁開始云端開發,研發程序中代碼不落本地磁盤,既能減少傳輸風險,又避免了員工本地環境被植入木馬、從而在不知情的情況下泄露原始碼的可能;同時,在云端開發環境中可以對用戶的瀏覽、拷貝行為做不同程度的管控,結合告警和系統自動攔截,可有效降低原始碼泄露的風險, 在阿里內部,當涉及到對保密性要求極高的專案,或者當企業外部成員參與對代碼保密性有要求的專案時,我們會推薦專案團隊使用云端進行研發,從而有效防止原始碼的泄露, 此外,隨著越來越多的企業進入到數字化轉型階段,管理者期望能更加全面的看到企業員工的投入與產出,并且針對專案人員分布與研發程序效率做出更加及時的調整與改進,在過去,所有的數字化資訊都依賴人工的反饋和統計,反饋的是否準確、統計程序中是否有紕漏都會直接影響管理層的判斷,但如果把研發程序搬到云上,所有的研發程序資料就能生在云上、用在云上,想要借助數字化提升研發效率變得更加容易, 在阿里內部,團隊中經常會出現一名正式員工帶領多名企業外部成員完成專案的情況,在需要對企業外部成員的作業進行績效評定時,傳統的評定方式通常是參考需求完成數量、代碼缺陷率等指標,但實際作業中需求有大有小、有難有易,完全基于結果指標進行評定很難做到公平公正,讓優秀的員工脫穎而出,借助云端開發,可以讓所有研發程序中的資料也透明出來,如各需求的編碼時長、臨時版本發布次數、程序代碼與最終有效代碼的比例、單位時間代碼產出量等,通過結合研發程序資料,也可以讓績效評定更加透明公正,總結
云端開發具備靈活定制、開箱即用的特點,借助好這兩個特性,就可以創新性的解決掉傳統本地開發程序中的頑疾,除了上述兩個案例外,我們認為,當前適合云端開發落地的場景還可以是:
- 云原生場景中的輕量代碼開發,如 Serverless 場景,這類場景中研發人員只需要集中式的撰寫業務邏輯,大量的框架類代碼已被默認隱藏,并且除錯、部署方式有別于傳統研發程序,更適合云端開發的落地,
- 各類垂直化的場景,這類場景通常需要有針對性的定制,與特定的線上系統進行打通,只要能利用好云端開發靈活定制的特性,就有望實作開發階段 10 倍效能的提升,
目前,阿里巴巴內部的云端開發平臺目前已通過阿里云云效對外輸出,前往ide.aliyun.com,秒級體驗云端編碼、代碼智能補全等黑科技,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/299087.html
標籤:其他
上一篇:卷積神經網路CNN
