使用體驗(yàn)神似VS Code,華為云CloudIDE的前世今生都有哪些故事?

在華為開發(fā)者大會(huì)HDC.Cloud上,華為云發(fā)布了基于鯤鵬計(jì)算的開發(fā)者服務(wù) — CloudIDE服務(wù),為鯤鵬開發(fā)者提供了很好的云端開發(fā)體驗(yàn)。

體驗(yàn)過CloudIDE的小伙伴都會(huì)有這樣一個(gè)感覺,使用體驗(yàn)非常接近于Visual Studio Code(VS Code),包括界面布置、插件體驗(yàn)都很熟悉,甚至不需要重新學(xué)習(xí)就可以把本地的開發(fā)工作直接移植到云端。

那這樣一款云端IDE服務(wù)是怎么被打造出來的呢?

一聲令下云起航

華為持續(xù)投入云計(jì)算及相關(guān)技術(shù)和產(chǎn)品研發(fā)已近10年,在虛擬化、存儲(chǔ)、計(jì)算、云數(shù)據(jù)中心等領(lǐng)域不斷進(jìn)步。

2017年,華為成立Cloud BU,強(qiáng)力投入公有云,致力于為企業(yè)提供穩(wěn)定可靠、安全可信、可持續(xù)創(chuàng)新的云服務(wù)。

展望未來,華為云將基于自身軟硬件的技術(shù)優(yōu)勢(shì),攜手伙伴,持續(xù)為企業(yè)客戶打造全球最佳體驗(yàn)的混合云,成為企業(yè)首選的云服務(wù)伙伴。

為了服務(wù)華為云開發(fā)者,2016年推出軟件開發(fā)服務(wù) DevCloud,并逐步成為華為云軟件開發(fā)平臺(tái)。

華為云DevCloud是集華為研發(fā)實(shí)踐、前沿研發(fā)理念、先進(jìn)研發(fā)工具為一體的研發(fā)平臺(tái),面向開發(fā)者提供研發(fā)工具服務(wù),讓軟件開發(fā)簡(jiǎn)單高效。

華為云DevCloud產(chǎn)品家族全集圖

在落實(shí)云服務(wù)開發(fā)DevOps實(shí)踐過程中,我們發(fā)現(xiàn)開發(fā)者可以把需求、代碼、構(gòu)建、測(cè)試、發(fā)布、部署、運(yùn)維、運(yùn)營等工作全部從本地轉(zhuǎn)移到云端,享受云服務(wù)帶來的移動(dòng)性和便利性。

僅有Coding一直缺乏有效的上云方式,導(dǎo)致開發(fā)者手中沒有“趁手的家伙事兒”,傳統(tǒng)IDE和云資源之間相對(duì)低效的開發(fā)體驗(yàn),一直是橫在全云化開發(fā)面前的一個(gè)“坎兒”。

據(jù)此,我們決心打造一款云上Coding的開發(fā)工具 —— 華為云CloudIDE。

十分挑剔覓玄鐵(選定原型)

2015年 資源方案,Kubernetes避免了容器裸奔

為了給用戶提供云端穩(wěn)定的開發(fā)環(huán)境,起初CloudIDE研發(fā)團(tuán)隊(duì)考察了無數(shù)種資源方案,云桌面、虛擬機(jī)、沙箱、容器,但就資源易獲取和編排管理能力而言,各種方案都沒有完美的解決,但最終容器的易獲取性和資源靈活性還是打動(dòng)了我們。

Kubernetes(簡(jiǎn)稱K8s),是一個(gè)提供跨主機(jī)集群的自動(dòng)部署、擴(kuò)展以及運(yùn)行應(yīng)用容器的平臺(tái),從支持OpenAPI起,K8s就成為了實(shí)際意義上的最主流的容器集群管理平臺(tái)。

華為云隨即上線了兼容K8s能力的CCE服務(wù),為開發(fā)環(huán)境服務(wù)提供資源管理和適配能力,容器裸奔時(shí)代就正式結(jié)束了。

2016年 Eclipse Che牛刀小試

當(dāng)時(shí)業(yè)界主流的IDE工具無非幾種,Eclipse、Visual Studio、IntelliJ,直到今天這幾款也依然是桌面開發(fā)者的首選。

基于提供多語言適配能力開發(fā)工具的初衷,以及考慮到商業(yè)許可及用戶接受度,我們選擇了基于Eclipse Che來構(gòu)建第一代CloudIDE服務(wù)的方案。

使用體驗(yàn)神似VS Code,華為云CloudIDE的前世今生都有哪些故事?


這種新出現(xiàn)的WebIDE把本地開發(fā)工作搬到了云端,開發(fā)者可以在云端保存自己的開發(fā)環(huán)境,編寫代碼,運(yùn)行和調(diào)試應(yīng)用,甚至我們還可以對(duì)接云服務(wù),提供類似代碼檢查這樣的集成化場(chǎng)景能力。

2017年 CloudIDE “公測(cè)”了,在磨礪中積累經(jīng)驗(yàn)

自從2017年CloudIDE服務(wù)開始公測(cè),就不斷接到用戶各種吐槽:

“啟動(dòng)這么慢,要3分鐘,還會(huì)失敗!”

“你們不是基于Eclipse嗎,長(zhǎng)得一個(gè)Eclipse模樣,怎么用起來和Eclipse差距這么大呢,快捷鍵呢?”

“怎么調(diào)試和運(yùn)行,連個(gè)缺省的調(diào)試能力都沒有嗎?沒有調(diào)試功能還算IDE嗎,這充其量只能算個(gè)玩具吧?”

“編碼提示呢,那么多保留字全靠我自己記,我記不住啊”

“不是有個(gè)容器嗎,容器讓不讓我訪問啊”

從用戶不斷質(zhì)疑的聲音中,逐步找到了開發(fā)者對(duì)于一款云端IDE的關(guān)注點(diǎn):

體驗(yàn):

開發(fā)者已經(jīng)掌握了一到兩種桌面IDE的使用,再去學(xué)習(xí)新的IDE開發(fā)體驗(yàn)會(huì)給日常工作帶來額外的負(fù)擔(dān),另辟蹊徑的操作體驗(yàn)未必會(huì)被開發(fā)者接受。

Visual Studio Code之所以能以輕量之身霸占熱度之首,憑借的就是兼容各種開發(fā)語言的能力。不用再學(xué)習(xí)啦,節(jié)約多少時(shí)間!

成本:

沒人不關(guān)心錢的問題,只是程度不同。如果位于云端的IDE管理服務(wù)和語言服務(wù)過于重載,要么服務(wù)商吃不住(運(yùn)營成本太高),要么用戶受不了(要求配置太高)。

原有的IDE框架還是過于重載,甚至需要兩個(gè)容器才能支持一個(gè)用戶實(shí)例。成本太高啦,勸退多少用戶!

生態(tài):

“獨(dú)行快,眾行遠(yuǎn)”,任何平臺(tái)都需要伙伴的聚合與共贏,不能指望自己可以搞定所有的事情,但是可以提供相關(guān)的方法。

插件,就是為了滿足定制化需要而出現(xiàn)的機(jī)制,可以說在各種桌面系統(tǒng)上已經(jīng)有了極好的效果,支持插件也是一個(gè)必要的選項(xiàng)。開放插件生態(tài),聚合多少伙伴!

價(jià)值:

每一個(gè)服務(wù)都有它的商業(yè)價(jià)值,IDE服務(wù)除了完成編寫代碼和運(yùn)行調(diào)試的基本能力,還要可以融入業(yè)務(wù)場(chǎng)景。

Eclipse就是特別好的例子,當(dāng)年IBM Rational基于Eclipse發(fā)布的ClearCase和ClearQuest客戶端,結(jié)合日常編碼,造就了良好的程序員工作閉環(huán)。基于場(chǎng)景集成,簡(jiǎn)化多少操作!

有了方向和目標(biāo),CloudIDE團(tuán)隊(duì)對(duì)極致體驗(yàn)的追求、對(duì)服務(wù)價(jià)值的尋覓、對(duì)自身能力的進(jìn)化,從未停下腳步!

2019年 眼前一亮,Theia的包容并蓄

在伴隨Eclipse Che社區(qū)前行的路途上,團(tuán)隊(duì)步履蹣跚、心情沉重。本地化IDE產(chǎn)品的優(yōu)秀體驗(yàn)不斷激發(fā)著我們,VS Code因生態(tài)繁榮而蟬聯(lián)最受歡迎的IDE工具,IntelliJ實(shí)現(xiàn)了極致的Java開發(fā)體驗(yàn)。

2019年,Eclipse Che 7.0預(yù)覽版的出現(xiàn)讓團(tuán)隊(duì)看到了曙光,其良好的前端體驗(yàn)讓我們眼前一亮。通過研究,我們聚焦到了其前端核心服務(wù) Eclipse Theia。

什么是Theia?

Theia,好一款Cloud & Desktop IDE!多么的神奇,出現(xiàn)了一款同時(shí)可以用于桌面和云端的IDE工具,它的界面一如熟悉的VS Code,操作體驗(yàn)流暢自然,插件體系成熟穩(wěn)定,服務(wù)內(nèi)核精簡(jiǎn)高效,語言支持與框架分離,前沿的技術(shù)運(yùn)用,友好的商業(yè)許可(License),積極開放的發(fā)展目標(biāo),Perfect!!!

由于Theia的操作界面與VS Code非常接近,操作體驗(yàn)基本一致,有不少人都會(huì)誤認(rèn)為這就是VS Code的線上版本。

其實(shí)對(duì)于開發(fā)者而言,不需要重新學(xué)習(xí)一個(gè)新的開發(fā)工具,難道不是一件好事?

Theia從設(shè)計(jì)初期就充分考慮了桌面和云的不同特點(diǎn),支持容器部署和虛擬機(jī)部署,瀏覽器訪問。

Theia內(nèi)核非常精簡(jiǎn),只需要很低配置就可以運(yùn)行起來。對(duì)于VS Code插件擴(kuò)展體系的直接支持尤其吸引人。

眾所周知VS Code的插件市場(chǎng)是業(yè)界最大的生態(tài)系統(tǒng),從語言支持、業(yè)務(wù)對(duì)接、平臺(tái)支持等諸多方面都給最終用戶帶來定制化能力。

Theia兼容VS Code插件擴(kuò)展標(biāo)準(zhǔn),好處不言自明。這也就說明了為什么諸多云廠商都采用Theia方案,來進(jìn)行自己的云IDE研發(fā)。

百煉千錘鑄利劍(技術(shù)完善)

當(dāng)今時(shí)代,是擁抱開源開放、共享共贏的時(shí)代。不重復(fù)造輪子,站在巨人肩膀上做事情的考慮,我們積極擁抱Theia開源社區(qū),結(jié)合華為自身技術(shù)、資源、服務(wù)能力, CloudIDE進(jìn)行深度優(yōu)化和能力衍生。

服務(wù)鯤鵬生態(tài),惠及開發(fā)者

眾所周知的原因,華為加快了鯤鵬計(jì)算平面能力建設(shè)。為了服務(wù)鯤鵬開發(fā)者,CloudIDE推出了鯤鵬基座的IDE實(shí)例,讓鯤鵬開發(fā)者可以在最短時(shí)間內(nèi)獲取代碼開發(fā)和調(diào)試的真實(shí)環(huán)境,免去了交叉編譯和工具鏈缺陷的煩惱,實(shí)現(xiàn)服務(wù)應(yīng)用對(duì)鯤鵬調(diào)優(yōu)。

在鯤鵬計(jì)算平臺(tái),釋放鯤鵬架構(gòu)多核算力優(yōu)勢(shì),CloudIDE在Theia內(nèi)核、語言服務(wù)、編譯加速、資源調(diào)度等方面都做出了大量?jī)?yōu)化工作。未來,針對(duì)鯤鵬開發(fā)者的開發(fā)、調(diào)試、優(yōu)化的更多能力會(huì)逐步上線。

在華為開發(fā)者大會(huì)HDC.Cloud上,為促進(jìn)華為鯤鵬生態(tài)建設(shè),普惠鯤鵬開發(fā)者,華為云與計(jì)算BG總裁侯金龍先生正式宣布“2020年CloudIDE鯤鵬實(shí)例免費(fèi)”。即日起,即可在華為云CloudIDE服務(wù)體驗(yàn)使用。

完善開發(fā)體驗(yàn)

Eclipse Theia對(duì)語言支持采用松散框架,通過支持Language Server Protocol(LSP)和Debug Adapter Protocol(DAP)這種開放協(xié)議和相關(guān)插件實(shí)現(xiàn)多語言的編碼和調(diào)試適配。

CloudIDE在代碼自動(dòng)補(bǔ)全、Java語言調(diào)試、Python語言插件、文件編碼等重要體驗(yàn)?zāi)芰ι闲迯?fù)了很多重大問題。針對(duì)超大型規(guī)模代碼倉的打開效率,專門做了優(yōu)化提速。基于云原生開發(fā)的和云基礎(chǔ)設(shè)施的特點(diǎn),CloudIDE還提供了用戶鑒權(quán)、示例模板創(chuàng)建、外部端口訪問等實(shí)用功能。

增強(qiáng)插件能力

為了滿足支持華為云和鯤鵬開發(fā)者快速實(shí)現(xiàn)插件的目標(biāo),CloudIDE團(tuán)隊(duì)設(shè)計(jì)了全新的插件擴(kuò)展框架,上手成本更低、交互機(jī)制更好、支持動(dòng)態(tài)多視圖和事件訂閱,后續(xù)會(huì)開源出來方便開發(fā)者參與生態(tài)共建。

同時(shí)作為IDE中的“零號(hào)”插件,我們也提供了自有插件市場(chǎng),支持用戶安裝插件實(shí)現(xiàn)定制化需求。未來還會(huì)逐步支持用戶自己發(fā)布插件。

提升服務(wù)能力

華為云已經(jīng)提供了非常成熟的集群管理服務(wù)(CCE)、云硬盤服務(wù)(EVS)、計(jì)算資源(ECS)、網(wǎng)絡(luò)服務(wù)(ELB、EIP、NAT等)、數(shù)據(jù)庫(RDS),把華為云端眾多基礎(chǔ)服務(wù)整合成高度可用、支持用戶按需獲取資源、支持高并發(fā)訪問、支持良好使用體驗(yàn)、保障用戶數(shù)據(jù)安全的開發(fā)服務(wù)。

CloudIDE在用戶數(shù)據(jù)隔離保護(hù),服務(wù)代碼安全加固,節(jié)點(diǎn)智能選擇調(diào)度,資源規(guī)模彈性伸縮,服務(wù)韌性可靠性提升等方面,我們都進(jìn)行了技術(shù)攻關(guān)和專項(xiàng)研發(fā),保證提供給用戶的是可信軟件服務(wù)。

擴(kuò)展服務(wù)場(chǎng)景

云時(shí)代的CloudIDE,不僅開發(fā)體驗(yàn)追求高效極致,應(yīng)用場(chǎng)景也力圖包羅萬象。

◆提供了針對(duì)云服務(wù)部署的Developer Console插件,可以把云原生應(yīng)用一鍵式部署到華為云CCI形成容器服務(wù)實(shí)例,大大縮短閉環(huán)體驗(yàn)時(shí)間;

◆提供WECODE TOOLKIT插件,支持用戶云端開發(fā)端到端的WeLink輕應(yīng)用(We碼小程序),實(shí)現(xiàn)移動(dòng)應(yīng)用移動(dòng)開發(fā);

◆提供針對(duì)教育培訓(xùn)場(chǎng)景插件,滿足高校師生教學(xué)和作業(yè)要求;

◆提供權(quán)限控制和OpenAPI,滿足企業(yè)用戶和集成商使用云開發(fā)能力;

◆提供量子計(jì)算、區(qū)塊鏈合約開發(fā)、代碼托管對(duì)接、商業(yè)智能(EI)開發(fā)等相關(guān)云服務(wù)的原生對(duì)接能力,服務(wù)廣大開發(fā)者使用。

回饋開源社區(qū)

Theia是一個(gè)多元化的社區(qū),CloudIDE產(chǎn)品團(tuán)隊(duì)成員積極參與Theia社區(qū)建設(shè),迅速成長(zhǎng)出一個(gè)社區(qū)Committer和多名Contributors,大部分團(tuán)隊(duì)成員都向社區(qū)貢獻(xiàn)過代碼。未來,我們會(huì)更多的參與社區(qū)的建設(shè)。

華為云CloudIDE服務(wù)的所有技術(shù)創(chuàng)新都是圍繞一個(gè)目標(biāo)“做最好用的云端IDE服務(wù)”,向開發(fā)者提供優(yōu)秀的體驗(yàn),持續(xù)高效交付價(jià)值,鯤鵬開發(fā)者必將實(shí)現(xiàn)“手中有劍,心中有夢(mèng),鯤鵬展翅,翱翔云端”!

(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )