NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

使用体验神似 VS Code?三步带你了解华为云 CloudIDE 前世今生

  • 2020-04-10
  • 本文字数:4024 字

    阅读完需:约 13 分钟

使用体验神似VS Code?三步带你了解华为云CloudIDE前世今生

在华为开发者大会 HDC.Cloud 上,华为云发布了基于鲲鹏计算的开发者服务 — CloudIDE 服务,为鲲鹏开发者提供了很好的云端开发体验。体验过 CloudIDE 的小伙伴都会有这样一个感觉,使用体验非常接近于 Visual Studio Code(VS Code),包括界面布置、插件体验都很熟悉,甚至不需要重新学习就可以把本地的开发工作直接移植到云端。那这样一款云端 IDE 服务是怎么被打造出来的呢?

一声令下云起航

华为持续投入云计算及相关技术和产品研发已近 10 年,在虚拟化、存储、计算、云数据中心等领域不断进步。2017 年,华为成立 Cloud BU,强力投入公有云,致力于为企业提供稳定可靠、安全可信、可持续创新的云服务。展望未来,华为云将基于自身软硬件的技术优势,携手伙伴,持续为企业客户打造全球最佳体验的混合云,成为企业首选的云服务伙伴。


为了服务华为云开发者,2016 年推出软件开发云 DevCloud,并逐步成为华为云软件开发平台。华为云 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 内核、语言服务、编译加速、资源调度等方面都做出了大量优化工作。未来,针对鲲鹏开发者的开发、调试、优化的更多能力会逐步上线。


在华为 HDC2020 大会上,为促进华为鲲鹏生态建设,普惠鲲鹏开发者,华为云与计算 BG 总裁侯金龙先生正式宣布“2020 年 CloudIDE 鲲鹏实例免费”。即日起,即可在华为云 CloudIDE 服务体验使用。


完善开发体验


Eclipse Theia 对语言支持采用松散框架,通过支持 Language Server 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 服务”,向开发者提供优秀的体验,持续高效交付价值,鲲鹏开发者必将实现“手中有剑,心中有梦,鲲鹏展翅,翱翔云端”!


2020-04-10 18:161121

评论

发布
暂无评论
发现更多内容

Scala语言入门:初学者的基础语法指南

Java随想录

Java scala 大数据

如何搭建一个集成导航与在线工具的个性化浏览器私有书签(附详细搭建教程)

百度搜索:蓝易云

云计算 Linux 运维 书签 Mtab

小游戏的来龙去脉及入局方式

Onegun

小游戏 小游戏开发

深入理解树状数组 | 京东物流技术团队

京东科技开发者

bit #数据结构 企业号10月PK榜 树状数组

关系数据库:定义、模型、排名

Frank

关系型数据库

开放原子开源大赛 | OpenAnolis赛题正式启动,诚邀报名!

开放原子开源基金会

Mac平台的视频编辑和调色软件 DaVinci Resolve Studio 18

展初云

Mac软件 视频编辑 达芬奇18

飞桨大模型套件:一站式体验,性能极致,生态兼容

飞桨PaddlePaddle

nlp 大模型 套件 大语言模型

Spring扩展-自定义标签

有限状态机在国际计费中的应用探索 | 京东物流技术团队

京东科技开发者

状态机 有限状态机 企业号10月PK榜 系统应用

小程序等轻应用技术是不是对企业有价值?

Onegun

小程序 轻应用

Lightroom Classic 2022 for mac(Lrc中文版) 11.5完整激活版

mac

LRC2022 图像处理软件 苹果mac Windows软件 Lightroom Classic 2022

【稳定性】稳定性建设之弹性设计 | 京东物流技术团队

京东科技开发者

系统稳定性 限流算法 企业号10月PK榜 弹性设计

全场景流量验证系统 | 京东物流技术团队

京东科技开发者

系统设计 测试 企业号10月PK榜 流量验证

央国企数字化转型的破局者:低代码引领变革,高效应对未来挑战

优秀

低代码 数字化转型 央国企数字化转型

与客户携手共进|博睿数据客户最佳实践精选

博睿数据

可观测性

数划云受邀参与2023甄云用户大会,分享数据驱动经营新经济企业业财一体新路径

数划云

ICCV 2023 | 当尺度感知调制遇上Transformer,会碰撞出怎样的火花?

阿里云大数据AI技术

人工智能

HBase入门指南

Java随想录

Java 大数据 habse

Java21上手体验-分代ZGC和虚拟线程 | 京东云技术团队

京东科技开发者

Java ZGC 虚拟线程 企业号10月PK榜

泰山众筹APP开发,泰山众筹商城开发

V\TG【ch3nguang】

Redis中的Big Key问题:排查与解决思路

Java随想录

Java redis

DAPP钱包单币丨多币丨LP质押挖矿系统开发

l8l259l3365

官宣|2023开放原子开发者大会来了!

开放原子开源基金会

Spark入门指南:从基础概念到实践应用全解析

Java随想录

Java 大数据 spark

MySQL分区表详解

Java随想录

Java MySQL

基于火山引擎云搜索服务的排序学习实战

字节跳动云原生计算

大数据 搜索引擎 云原生

可以拯救陈年老视频的Topaz Video AI

展初云

Mac软件 视频修复工具

数字赋能,联通未来——数划云亮相“2023创源工业互联网创新大赛暨优秀项目路演”

数划云

软件测试/测试开发丨利用ChatGPT 生成自动化测试脚本

测试人

人工智能 程序员 软件测试 测试开发 ChatGPT

使用体验神似VS Code?三步带你了解华为云CloudIDE前世今生_语言 & 开发_华为云开发者联盟_InfoQ精选文章