写点什么

华为云 CloudIDE 的前世今生

  • 2020-04-17
  • 本文字数:3705 字

    阅读完需:约 12 分钟

华为云CloudIDE的前世今生

一声令下云起航

华为持续投入云计算及相关技术和产品研发已近 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 实例,让鲲鹏开发者可以在最短时间内获取代码开发和调试的真实环境,免去了交叉编译和工具链缺陷的烦恼,实现服务应用对鲲鹏调优。


在鲲鹏计算平台,释放鲲鹏架构多核算力优势,CloudIDE 在 Theia 内核、语言服务、编译加速、资源调度等方面都做出了大量优化工作。未来,针对鲲鹏开发者的开发、调试、优化的更多能力会逐步上线。


在华为开发者大会 HDC.Cloud 上,为促进华为鲲鹏生态建设,普惠鲲鹏开发者,华为云与计算 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)开发等相关云服务的原生对接能力,服务广大开发者使用。


本文转载自 华为云产品与解决方案 公众号。


原文链接:https://mp.weixin.qq.com/s/v5ZbXbtvvb9REg35aHFodQ


2020-04-17 16:121515

评论

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

瓴羊Quick BI数据门户功能:让数据分析变得简单而高效!

夜雨微澜

摊牌了,这才是真实的字节跳动程序员工作!

字节跳动技术范儿

719作业

天天向上

openGauss+Wasm:构建安全高效的UDF执行引擎

daydayup

openGauss获2022年度创新产品奖!

daydayup

Dify.AI:46,558 行代码,完全开源

Dify

开源 AI LLMOps

使用Cloud Studio&Flutter完成全平台博客网站的搭建

坚果

flutter Cloud Studio

Docker学习路线13:部署容器

小万哥

Java c++ Python Go Docker

向量数据库这杯“啤酒”与“泡沫”

脑极体

AI 向量数据库

Linux系统PHP性能优化详细教程。

百度搜索:蓝易云

php 云计算 Linux 运维 云服务器

openGauss内核分析(八):执行算子探究

daydayup

openGauss内核分析(九):数据库表的创建过程

daydayup

基于新浪微博海量用户行为数据、博文数据数据分析:包括综合指数、移动指数、PC指数三个指数

汀丶人工智能

数据挖掘 机器学习 数据分析

Java 命令行参数解析方式探索(三):Picocli

冰心的小屋

Java 命令行 console Parameter Picocli

看头部银行保险企业如何释放数智生产力|数智新金融论坛精彩回顾

Kyligence

数智化 Kyligence Copilot

Linux系统MySQL数据库性能优化详细教程。

百度搜索:蓝易云

MySQL 云计算 Linux 运维 云服务器

openGauss内核分析(七):SQL by pass & 经典执行器 (二)

daydayup

2023-07-27:最长可整合子数组的长度, 数组中的数字排序之后,相邻两数的差值是1, 这种数组就叫可整合数组。 给定一个数组,求最长可整合子数组的长度。

福大大架构师每日一题

福大大架构师每日一题

从零构建医疗领域知识图谱的KBQA问答系统

汀丶人工智能

人工智能 知识图谱 智能问答

C++实现哈希桶

梦笔生花

openGauss内核分析(七):SQL by pass & 经典执行器 (一)

daydayup

新功能 – Cloud WAN:托管 WAN 服务

亚马逊云科技 (Amazon Web Services)

Amazon VPC

【观察】汇聚中国开源数据库创新力量,openGauss驶入发展“快车道”

daydayup

openGauss内核分析(十):数据库索引的创建过程

daydayup

零代码,使用 Dify 两分钟接入企业微信 AI 机器人

Dify

开源 AI LLMOps

openGauss 年终成绩单出炉,聚开发者之力,建繁荣生态

daydayup

openGauss内核分析(六): 执行计划生成

daydayup

搜索业务广告、Youtube超预期,云计算收入增长Google没败给微软

B Impact

716作业

天天向上

华为云CloudIDE的前世今生_文化 & 方法_华为云产品与解决方案_InfoQ精选文章