在華為開發(fā)者大會HDC.Cloud上,華為云發(fā)布了基于鯤鵬計(jì)算的開發(fā)者服務(wù) — CloudIDE服務(wù),為鯤鵬開發(fā)者提供了很好的云端開發(fā)體驗(yàn)。
體驗(yàn)過CloudIDE的小伙伴都會有這樣一個(gè)感覺,使用體驗(yàn)非常接近于Visual Studio Code(VS Code),包括界面布置、插件體驗(yàn)都很熟悉,甚至不需要重新學(xué)習(xí)就可以把本地的開發(fā)工作直接移植到云端。
那這樣一款云端IDE服務(wù)是怎么被打造出來的呢?
一聲令下云起航
華為持續(xù)投入云計(jì)算及相關(guān)技術(shù)和產(chǎn)品研發(fā)已近10年,在虛擬化、存儲、計(jì)算、云數(shù)據(jù)中心等領(lǐng)域不斷進(jìn)步。
2017年,華為成立Cloud BU,強(qiáng)力投入公有云,致力于為企業(yè)提供穩(wěn)定可靠、安全可信、可持續(xù)創(chuàng)新的云服務(wù)。
展望未來,華為云將基于自身軟硬件的技術(shù)優(yōu)勢,攜手伙伴,持續(xù)為企業(yè)客戶打造全球最佳體驗(yàn)的混合云,成為企業(yè)首選的云服務(wù)伙伴。
為了服務(wù)華為云開發(fā)者,2016年推出軟件開發(fā)服務(wù) DevCloud,并逐步成為華為云軟件開發(fā)平臺。
華為云DevCloud是集華為研發(fā)實(shí)踐、前沿研發(fā)理念、先進(jìn)研發(fā)工具為一體的研發(fā)平臺,面向開發(fā)者提供研發(fā)工具服務(wù),讓軟件開發(fā)簡單高效。
華為云DevCloud產(chǎn)品家族全集圖
在落實(shí)云服務(wù)開發(fā)DevOps實(shí)踐過程中,我們發(fā)現(xiàn)開發(fā)者可以把需求、代碼、構(gòu)建、測試、發(fā)布、部署、運(yùn)維、運(yùn)營等工作全部從本地轉(zhuǎn)移到云端,享受云服務(wù)帶來的移動(dòng)性和便利性。
僅有Coding一直缺乏有效的上云方式,導(dǎo)致開發(fā)者手中沒有“趁手的家伙事兒”,傳統(tǒng)IDE和云資源之間相對低效的開發(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(簡稱K8s),是一個(gè)提供跨主機(jī)集群的自動(dòng)部署、擴(kuò)展以及運(yùn)行應(yīng)用容器的平臺,從支持OpenAPI起,K8s就成為了實(shí)際意義上的最主流的容器集群管理平臺。
華為云隨即上線了兼容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ù)的方案。
這種新出現(xiàn)的WebIDE把本地開發(fā)工作搬到了云端,開發(fā)者可以在云端保存自己的開發(fā)環(huán)境,編寫代碼,運(yùn)行和調(diào)試應(yīng)用,甚至我們還可以對接云服務(wù),提供類似代碼檢查這樣的集成化場景能力。
2017年 CloudIDE “公測”了,在磨礪中積累經(jīng)驗(yàn)
自從2017年CloudIDE服務(wù)開始公測,就不斷接到用戶各種吐槽:
“啟動(dòng)這么慢,要3分鐘,還會失敗!”
“你們不是基于Eclipse嗎,長得一個(gè)Eclipse模樣,怎么用起來和Eclipse差距這么大呢,快捷鍵呢?”
“怎么調(diào)試和運(yùn)行,連個(gè)缺省的調(diào)試能力都沒有嗎?沒有調(diào)試功能還算IDE嗎,這充其量只能算個(gè)玩具吧?”
“編碼提示呢,那么多保留字全靠我自己記,我記不住啊”
“不是有個(gè)容器嗎,容器讓不讓我訪問啊”
從用戶不斷質(zhì)疑的聲音中,逐步找到了開發(fā)者對于一款云端IDE的關(guān)注點(diǎn):
體驗(yàn):
開發(fā)者已經(jīng)掌握了一到兩種桌面IDE的使用,再去學(xué)習(xí)新的IDE開發(fā)體驗(yàn)會給日常工作帶來額外的負(fù)擔(dān),另辟蹊徑的操作體驗(yàn)未必會被開發(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)”,任何平臺都需要伙伴的聚合與共贏,不能指望自己可以搞定所有的事情,但是可以提供相關(guān)的方法。