写点什么

华为云 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:121545

评论

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

大规模 K8s 集群管理经验分享 · 上篇

尔达Erda

程序员 云原生 k8s K8s 多集群管理 经验分享、

年末冲刺!坚持就是胜利,12月日更来啦~

InfoQ写作社区官方

12月日更 热门活动

社区知识库|常见问答 FAQ 集合第 1 期

Apache Pulsar

Java 开源 Apache Pulsar 代码人生 社区

云原生:详解|容器云平台应用解析

息之

容器安全 容器应用

如何设置Activity背景颜色与ProgressBar进度条颜色

Changing Lin

12月日更

Istio 实践手册 | 迎接新一代微服务架构

xcbeyond

istio 服务网格 28天写作 12月日更 Istio 实践手册

使用 @Transactional 时常犯的N种错误

程序猿DD

spring Spring Boot 事务

区块链应用食品溯源,为食品安全保驾护航

电微13828808271

搭建企业级实时数据融合平台难吗?Tapdata + ES + MongoDB 就能搞定

tapdata

[架构实战营] 模块五作业

张祥

架构实战营

贝壳Flutter调试工具-FDB

贝壳大前端技术团队

flutter 调试工具 内存监控

浪潮云说直播间-云溪数据库之ClickHouse原理解析今晚开讲

云计算,

四步做好Code Review

百度开发者中心

Code Review

秒过!度目智慧通行让常态化防疫更高效

百度开发者中心

人工智能

打造全新批流融合:详解 Apache Flink 1.14.0 发布的 Pulsar Flink Connector

Apache Pulsar

Java 大数据 分布式 云原生 Apache Pulsar

云原生:详解|容器核心技术解析

息之

Docker 镜像 技术优势

《鱿鱼游戏》中的 AI 是绝对公平的吗?

澳鹏Appen

人工智能 人脸识别

云原生:详解|K8s核心对象技术

息之

k8s pod service Deployment

区块链IM社交系统开发,区块链即时通讯直播系统搭建

电微13828808271

智慧社区服务平台搭建,智慧安防社区建设方案

电微13828808271

WeTest小程序质量专项方案推出,小程序异常监控内测招募中

WeTest

【量化】股市技术分析利器之TA-Lib(二)

恒生LIGHT云社区

量化投资 量化

科技热点周刊|PHP 基金会成立、Rust 内讧、Amazon Linux 2022 预览版发布

青云技术社区

云计算

如何更快上手使用 OceanBase 社区版?

OceanBase 数据库

数据库 直播 课程 OceanBase 开源

架构实战营模块五作业

spark99

架构实战营

官宣!yMatrix 完成A轮融资,打造超融合时序数据库!

YMatrix 超融合数据库

高层与基层思考上的差异与解决办法

光环PMO社群

项目管理

ZEGO 即构科技首发适配鸿蒙系统的 Express SDK 1.0 版本,并正式启动公测!(内附源码)

ZEGO即构

音视频 HarmonyOS 鸿蒙开发 即构科技

【有奖征文】第一届 OceanBase 技术征文大赛来啦!

OceanBase 数据库

数据库 开源 征文大赛 oceanbase

Linux/CentOS/Ubuntu查看文件内容命令总结

入门小站

Linux

云原生:Docker实战之容器命令解析(附视频教程)

息之

Docker 视频课 解析

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