導讀:華為雲端IDE服務是怎麼被打造出來的呢?一文帶你了解他的前世今生。
在華為開發者大會HDC.Cloud上,華為雲釋出了基於鯤鵬計算的開發者服務— CloudIDE服務,為鯤鵬開發者提供了很好的雲端開發體驗。體驗過CloudIDE的小夥伴都會有這樣一個感覺,使用體驗非常接近於Visual Studio Code(VS Code),包括介面佈置、外掛體驗都很熟悉,甚至不需要重新學習就可以把本地的開發工作直接移植到雲端。那這樣一款雲端IDE服務是怎麼被打造出來的呢?
一聲令下雲起航實際上,華為持續投入雲端計算及相關技術和產品研發已近10年,在虛擬化、儲存、計算、雲資料中心等領域不斷進步。2017年,華為成立Cloud BU,強力投入公有云,致力於為企業提供穩定可靠、安全可信、可持續創新的雲服務。展望未來,華為雲將基於自身軟硬體的技術優勢,攜手夥伴,持續為企業客戶打造全球最佳體驗的混合雲,成為企業首選的雲服務夥伴。
為了服務華為雲開發者,2016年推出軟體開發雲DevCloud,並逐步成為華為雲軟體開發平臺。華為雲DevCloud是集華為研發實踐、前沿研發理念、先進研發工具為一體的研發平臺,面向開發者提供研發工具服務,讓軟體開發簡單高效。
在落實雲服務開發DevOps實踐過程中,我們發現開發者可以把需求、程式碼、構建、測試、釋出、部署、運維、運營等工作全部從本地轉移到雲端,享受雲服務帶來的移動性和便利性。僅有Coding一直缺乏有效的上雲方式,導致開發者手中沒有“趁手的傢伙事兒”,傳統IDE和雲資源之間相對低效的開發體驗,一直是橫在全雲化開發面前的一個“坎兒”。據此,我們決心打造一款雲上Coding的開發工具—— 華為雲CloudIDE。
十分挑剔覓玄鐵(選定原型)2015年,資源方案,Kubernetes避免了容器裸奔
為了給使用者提供雲端穩定的開發環境,起初CloudIDE研發團隊考察了無數種資源方案,雲桌面、虛擬機器、沙箱、容器,但就資源易獲取和編排管理能力而言,各種方案都沒有完美的解決,但最終容器的易獲取性和資源靈活性還是打動了我們。Kubernetes(簡稱K8s),是一個提供跨主機叢集的自動部署、擴充套件以及執行應用容器的平臺,從支援OpenAPI起,K8s就成為了實際意義上的最主流的容器叢集管理平臺。華為雲隨即上線了相容K8s能力的CCE服務,為開發環境服務提供資源管理和適配能力,容器裸奔時代就正式結束了。
2016年,Eclipse Che牛刀小試
當時業界主流的IDE工具無非幾種,Eclipse、Visual Studio、IntelliJ,直到今天這幾款也依然是桌面開發者的首選。基於提供多語言適配能力開發工具的初衷,以及考慮到商業許可及使用者接受度,我們選擇了基於Eclipse Che來構建第一代CloudIDE服務的方案。
這種新出現的WebIDE把本地開發工作搬到了雲端,開發者可以在雲端儲存自己的開發環境,編寫程式碼,執行和除錯應用,甚至我們還可以對接雲服務,提供類似程式碼檢查這樣的整合化場景能力。
2017年,CloudIDE“公測”了,在磨礪中積累經驗
自從2017年CloudIDE服務開始公測,就不斷接到使用者各種吐槽:
“啟動這麼慢,要3分鐘,還會失敗!”
“你們不是基於Eclipse嗎,長得一個Eclipse模樣,怎麼用起來和Eclipse差距這麼大呢,快捷鍵呢?”
“怎麼除錯和執行,連個預設的除錯能力都沒有嗎?沒有除錯功能還算IDE嗎,這充其量只能算個玩具吧?”
“編碼提示呢,那麼多保留字全靠我自己記,我記不住啊”
“不是有個容器嗎,容器讓不讓我訪問啊”
從使用者不斷質疑的聲音中,逐步找到了開發者對於一款雲端IDE的關注點:
體驗:開發者已經掌握了一到兩種桌面IDE的使用,再去學習新的IDE開發體驗會給日常工作帶來額外的負擔,另闢蹊徑的操作體驗未必會被開發者接受。Visual Studio Code之所以能以輕量之身霸佔熱度之首,憑藉的就是相容各種開發語言的能力。不用再學習啦,節約多少時間!成本:沒人不關心錢的問題,只是程度不同。如果位於雲端的IDE管理服務和語言服務過於過載,要麼服務商吃不住(運營成本太高),要麼使用者受不了(要求配置太高)。原有的IDE框架還是過於過載,甚至需要兩個容器才能支援一個使用者例項。成本太高啦,勸退多少使用者!生態:“獨行快,眾行遠”,任何平臺都需要夥伴的聚合與共贏,不能指望自己可以搞定所有的事情,但是可以提供相關的方法。外掛,就是為了滿足定製化需要而出現的機制,可以說在各種桌面系統上已經有了極好的效果,支援外掛也是一個必要的選項。開放外掛生態,聚合多少夥伴!價值:每一個服務都有它的商業價值,IDE服務除了完成編寫程式碼和執行除錯的基本能力,還要可以融入業務場景。Eclipse就是特別好的例子,當年IBM Rational基於Eclipse釋出的ClearCase和ClearQuest客戶端,結合日常編碼,造就了良好的程式設計師工作閉環。基於場景整合,簡化多少操作!有了方向和目標,CloudIDE團隊對極致體驗的追求、對服務價值的尋覓、對自身能力的進化,從未停下腳步!
2019年,眼前一亮,Theia的包容並蓄
在伴隨Eclipse Che社群前行的路途上,團隊步履蹣跚、心情沉重。本地化IDE產品的優秀體驗不斷激發著我們,VS Code因生態繁榮而蟬聯最受歡迎的IDE工具,IntelliJ實現了極致的Java開發體驗。2019年,Eclipse Che 7.0預覽版的出現讓團隊看到了曙光,其良好的前端體驗讓我們眼前一亮。通過研究,我們聚焦到了其前端核心服務 Eclipse Theia。什麼是Theia?
Theia,好一款Cloud & Desktop IDE!多麼的神奇,出現了一款同時可以用於桌面和雲端的IDE工具,它的介面一如熟悉的VS Code,操作體驗流暢自然,外掛體系成熟穩定,服務核心精簡高效,語言支援與框架分離,前沿的技術運用,友好的商業許可(License),積極開放的發展目標,Perfect!!!
由於Theia的操作介面與VS Code非常接近,操作體驗基本一致,有不少人都會誤認為這就是VS Code的線上版本。其實對於開發者而言,不需要重新學習一個新的開發工具,難道不是一件好事?Theia從設計初期就充分考慮了桌面和雲的不同特點,支援容器部署和虛擬機器部署,瀏覽器訪問。Theia核心非常精簡,只需要很低配置就可以執行起來。對於VS Code外掛擴充套件體系的直接支援尤其吸引人。眾所周知VS Code的外掛市場是業界最大的生態系統,從語言支援、業務對接、平臺支援等諸多方面都給終端使用者帶來定製化能力。Theia相容VS Code外掛擴充套件標準,好處不言自明。這也就說明了為什麼諸多雲廠商都採用Theia方案,來進行自己的雲IDE研發。
百鍊千錘鑄利劍(技術完善)當今時代,是擁抱開源開放、共享共贏的時代。不重複造輪子,站在巨人肩膀上做事情的考慮,我們積極擁抱Theia開源社群,結合華為自身技術、資源、服務能力,CloudIDE進行深度優化和能力衍生。
服務鯤鵬生態,惠及開發者
眾所周知的原因,華為加快了鯤鵬計算平面能力建設。為了服務鯤鵬開發者,CloudIDE推出了鯤鵬基座的IDE例項,讓鯤鵬開發者可以在最短時間內獲取程式碼開發和除錯的真實環境,免去了交叉編譯和工具鏈缺陷的煩惱,實現服務應用對鯤鵬調優。在鯤鵬計算平臺,釋放鯤鵬ARM架構多核算力優勢,CloudIDE在Theia核心、語言服務、編譯加速、資源排程等方面都做出了大量優化工作。未來,針對鯤鵬開發者的開發、除錯、優化的更多能力會逐步上線。
在華為開發者大會HDC.Cloud上,為促進華為鯤鵬生態建設,普惠鯤鵬開發者,華為雲與計算BGQuattroporte侯金龍先生正式宣佈“2020年CloudIDE鯤鵬例項免費”。即日起,即可在華為雲CloudIDE服務體驗使用。
完善開發體驗
Eclipse Theia對語言支援採用鬆散框架,通過支援LanguageServer Protocol(LSP)和Debug Adapter Protocol(DAP)這種開放協議和相關外掛實現多語言的編碼和除錯適配。CloudIDE在程式碼自動補全、Java語言除錯、Python語言外掛、檔案編碼等重要體驗能力上修復了很多重大問題。針對超大型規模程式碼倉的開啟效率,專門做了優化提速。基於雲原生開發的和雲基礎設施的特點,CloudIDE還提供了使用者鑑權、示例模板建立、外部埠訪問等實用功能。
增強外掛能力
為了滿足支援華為雲和鯤鵬開發者快速實現外掛的目標,CloudIDE團隊設計了全新的外掛擴充套件框架,上手成本更低、互動機制更好、支援動態多檢視和事件訂閱,後續會開源出來方便開發者參與生態共建。同時作為IDE中的“零號”外掛,我們也提供了自有外掛市場,支援使用者安裝外掛實現定製化需求。未來還會逐步支援使用者自己釋出外掛。
提升服務能力
華為雲已經提供了非常成熟的叢集管理服務(CCE)、雲硬碟服務(EVS)、計算資源(ECS)、網路服務(ELB、EIP、NAT等)、資料庫(RDS),把華為雲端眾多基礎服務整合成高度可用、支援使用者按需獲取資源、支援高併發訪問、支援良好使用體驗、保障使用者資料安全的開發服務。CloudIDE在使用者資料隔離保護,服務程式碼安全加固,節點智慧選擇排程,資源規模彈性伸縮,服務韌性可靠性提升等方面,我們都進行了技術攻關和專項研發,保證提供給使用者的是可信軟體服務。
擴充套件服務場景
雲時代的CloudIDE,不僅開發體驗追求高效極致,應用場景也力圖包羅永珍。提供了針對雲服務部署的Developer Console外掛,可以把雲原生應用一鍵式部署到華為雲CCI形成容器服務例項,大大縮短閉環體驗時間;提供WECODE TOOLKIT外掛,支援使用者雲端開發端到端的WeLink輕應用(We碼小程式),實現移動應用移動開發;提供針對教育培訓場景外掛,滿足高校師生教學和作業要求;提供許可權控制和OpenAPI,滿足企業使用者和整合商使用雲開發能力;提供量子計算、區塊鏈合約開發、程式碼託管對接、商業智慧(EI)開發等相關雲服務的原生對接能力,服務廣大開發者使用。
回饋開源社群
Theia是一個多元化的社群,CloudIDE產品團隊成員積極參與Theia社群建設,迅速成長出一個社群Committer和多名Contributors,大部分團隊成員都向社群貢獻過程式碼。未來,我們會更多的參與社群的建設。
華為雲CloudIDE服務的所有技術創新都是圍繞一個目標“做最好用的雲端IDE服務”,向開發者提供優秀的體驗,持續高效交付價值,鯤鵬開發者必將實現“手中有劍,心中有夢,鯤鵬展翅,翱翔雲端”!