北斗导航系统借智能汽车一双“慧眼”
导读:华为云端IDE服务是怎么被打造出来的呢?一文带你了解他的前世今生。
在华为开发者大会HDC.Cloud上,华为云发布了基于鲲鹏计算的开发者服务— CloudIDE服务,为鲲鹏开发者提供了很好的云端开发体验。体验过CloudIDE的小伙伴都会有这样一个感觉,使用体验非常接近于Visual Studios Q g X 4 ?集华为研发实践、前沿研发理念、先进研发工具为一体的研发平台,面向开发者提供研发工具服务,让软件开发简单高效。
华为云DevCloud产品家族全集图
在落实云服务开发DevOps实践过程中,我们发现开发T @ W者可以把需求、代码、构建、测试、发布、部署、运维、运营等0 o 7 8 n N } } ^工作全部从本地转移到云端,享受云服务带来的移动性和便利性。仅有Coding一直缺乏m P O }有效的上云方式,导致开发者手中没有“P v X {趁手的家伙事儿”,传统IDE和云资G @ M O S源之间相对低效V } K 2 L Y {的开发体验,一直是横在全云化开发面前的一个“坎儿”。据此,= C 8 (我们决心打造一款云上Coding的开发工具—— 华为云CloudIDE。
十分挑剔觅玄铁(选定原型)
2015年,资源方案,Kubernetes避免了容器裸奔
为了给用户提供云端稳定的开发环境,起初CloudIG + X 4 C zDE研发团队考察了无数种资源方案,H c k C F $云桌面、虚拟机、沙箱、容器,但就资源易获取和编排管理能力而言,各种方案都没有完美的解决,但最终容器的易获取性和资源灵活性还是打动了我们。Kubernetes(简称K8s),是一个W ; ; ` X $ ? =提供跨主机集群的自动部署、扩展以及运行应用容器的平台,从3 k v = 2 E 4 P支持OpenAPI起,K8s就成为了实际意义上的最主流的容器集群管理平台。华为云随即上线了兼容v a m # R yK8s能力的CCE服务,为开发环境服务提供资源管理和适配能力,容器裸奔时代就正q 9 2式结束了。
2016年,Eclipse Che牛刀小试
当时业界主流的IDE工具无非几种,Eclipse、Visual Studio、IntelliJ,直到今天这几款也依然是桌面开发者的首选。基于提供多语言适配能力开发工具的初衷,以及考虑到商业许可及用户接受度,我们选择了基于Eclipse Che来构建第一代CloudIDE服务的方案。
这种新出现的WebIDE把本地开发工作搬到了云端,开发者可以在云端保存自己的开发环境,编写代码,运行和调试应用,甚至我们还可以对接云服务,提供类似代码检查这样的集成化场景能力。
2017年,Cm * # . / w O @ 7loudIDE“公测”了,在磨砺中积累经验
自从2017年Cl% ! 8 , V - , M 8oudIDE服务开始公t n T 5 r ; R测,就不断接到用户各种吐槽:
“启动这么慢,要3分钟,还会失败{ r = g T K F .!”
“你们不是基于Eclipse吗,长得一个Eclipse模样,怎么用起s z t |来和Eclipse差距这么大呢,快捷键呢?”
“怎么调试和运行,连个缺省的调试能力都没有吗?没有调试功能还算IDE^ K I吗,这充其量只能算个玩具吧?”
“编码提示呢,那么多保留字全靠我自己记,我记不住啊”
“不是有个容器吗,容器让不让我访问啊”
从用户不断质疑的声音中,逐步找到了开发者对于一款云端IDE的关注点:
- 体验:开发者已经掌握了一到两种桌面IDE的使用,再去学习新的IDE开发体验会给日常工作带来额外的负N j ( % s ; ` q担,另辟蹊径的操作体验未必会被开发者接受。Visual Studio Code之所以能以轻量之身霸占热度之首,凭借的就是兼容各种开2 t $ 1 o @ C 2发语言的能力。不用再学习啦,节约多少时间!
- 成本:没人不关心钱的问题) H Q 2 ] i,只是程度不同。如果 + ) k Q # O位于云端的IDE管理服务和语言服务过于重载,要么服b % h L务商吃不住(运营成本太高),要么用户受不了(要求配置太高)。原有的IDE框架还是过于重载k # 3 w体验让我们眼前一亮。通过研究,我们聚焦到了其前端核心服务 EclipQ * # s X s U zse Theia。什么是; x N , m p开源开放、共享共赢的时代。不重复造轮子,站在巨人肩膀上做事情的考虑,我 { I ,们积极拥抱Theia开源社区,结合华为自身技术、资源、服务能力,CloudIDE进e B . t * _ 7 7 B ~ J。即日起,即可在华为云CloudIDE服务体验使用。
完善- F X w j k q 2开发体验
Eclipse Theia对语言支持采用松散框架+ - { : O,通过Y = ] p - k } n支持LanguageServer Protocol(LSP)和Debug Adapm v ~ y Vter Protocol(DAP)这种开放协议和相关插件实现多语言的编码和调试适k + | `配。CloudIDE在代码自动补全、Java语言调试、Python语言插件、文件编码1 : V U X等重要体验能力上修复了很多重大问题。针对超大 ^ ?型规模代码仓的打开效率,专门做了优化提速。基于云原生开发的和云基础设施的特点,CloudIDE还提供b B ] L了用户鉴权、示例模板创建、外部端口访问等实用功能。
增强插件能力
为了满足支持华为云和鲲鹏开发者快速实现插件的目标,CloudIDE团队设计了全新的插件扩展框架,e 2 1上手成本更低、交互机制更好、支i ^ = u ` m @ V持H ! 8 Y s x动态多视图和事件订阅,后续会开源出来方便开发者参与生态共建。同时作为IDE中的“零号”插件,我们也提供了自有插件市场,支持用户安装插件实现定制化需求。未来还会逐步支持用户自己发布插件。
提升服务能力
华为云已经提供了非常成熟的集群管理服务(CCE)、云硬盘服务(EVS)、计算资源(ECS)、网络服务(ELB、EIP、NAT等)、数据库(RDq : B *S),把g j ; ] | W H p华为云端众多基础服务整合成高度可用、支持用户按需获取资源、支持高并发访问、支持良好使用体验、保障1 D . 9 8用户数据安全的开发服务。CloudIDE在= P - :用户数据隔离保护,服务代码安全加固,节点智能选择调度,资源规模弹性伸缩,服务韧性可靠性提升等方面,我们都进行了技术攻v Q 7 N o关和专项研, G ` r T - G U `发,保证提供给用户的是可信软件服务。
扩展服务场景
云时代的CloudIDE,= L c * a X 9 N不仅开发体验追求高效极致,应用场景也力图包罗万象。提供了针对云服务部署的Developer Con% M nsole插件,可以把云原生应用一键式部! 7 U k V V 5 M s署到华为H | ~ z & $ j z {云CCI形成容器服务实例,大大缩短闭环体验时间;提供WE9 ( M J k 6 wCODE TOOLKIT插件,支持用户云端开发端到端的WeLA o $ : 2 _ k ?ink轻应用(We码小程序),实现移动应用移动开发;提供针对教育培训场景插件,满足高校师生教学和作业要求;提供权限控制和OpenAP( P _ v T 4I,满足企业用户和集成商使用云开发能力;提供量子计算、区块链合约开发、代码托管对接、商业智能(EI)开发等相关云服务的原生对接能力,服务广大开发` @ r f v {者使用。
回馈开源社区
Theia是一个多元化的社区,CloudIDE产品团队成员积极参与Theia社区建设,迅速成长出一个社区Committer和多名Contributors,大部分团队成员都向社区贡献过代码。未来,我们会更多的参与社j ` d [区的建9 + * ~ 4设。
华为云CloudIDE服务的所有技术创新都是围绕一个目标“做最好用的云端: 9 i ? ) M : % 1IDE服务”,向开发者提供优秀的体验,持续高效交付价值,鲲鹏开发者必将实现“手中有剑,心中有梦,鲲鹏展翅,翱翔云端Z w f n w W p o”!