开放原子开源峰会 - SmartIDE正式开源并发布v1.0版本丨IDCF

e33a0576544cb6eb02fb35a82002992f.gif

在上周刚刚结束的【2022开放原子全球开源峰会】上 SmartIDE作为正在进行开放原子基金会TOC审核的开源项目,在云原生论坛上向全球的开源开发者介绍了下一代云原生CloudIDE的全新使用体验,并且正式发布了 SmartIDE v1.0 版本。

作者:徐磊

文章首发地址:https://smartide.cn/zh/blog/2022-0729-openatom-summit/

‍中央电视台CCTV报道2022开放原子开源峰会‍

开放原子开源基金会是致力于推动全球开源事业发展的非营利机构,于 2020 年 6 月在北京成立,由 阿里巴巴、百度、华为、浪潮、360、腾讯、招商银行 等多家龙头科技企业联合发起。本次开源峰会是开放原子的年度品牌活动、全球开源领域的高端峰会。包括 工信部副部长王江平、北京市副市长靳伟、中国科学院院士梅宏,Linux基金会执行董事Jim Zemlin,Eclipse基金会执行董事Mike Milinkovich 以及来自阿里,腾讯,蚂蚁,华为,中软国际,英特尔等来自国内外的重磅嘉宾参与了本次会议。SmartIDE在本次峰会的云原生论坛上展示了项目当前的进展以及下一代云原生CloudIDE的使用场景。

产品开源地址:

  • https://github.com/SmartIDE

  • https://gitee.com/SmartIDE

14538d242795a1547817f963a9e76d72.png

彻底解决软件开发环境标准化问题

fcdee6134f2c07202ec71653fd3a5aa9.png

如今,软件确实已经深入我们生活的方方面面,没有软件你甚至无法点餐,无法购物,无法交水电费;我们生活的每一个环节都已经被软件包裹。在这些软件的背后是云计算,大数据和人工智能等各种高新科技;这些现代IT基础设施在过去的几年得了非常显著的发展,我们每个人都是这些高科技成果的受益者 … … 但是,提供这些高科技成果的 开发者们自己所使用的软件(开发工具)却仍然像 “刀耕火种” 一般落后。

你可能会觉得这是危言耸听,那么让我来举一个简单的例子:大家一定都通过微信给自己的朋友发送过图片,这个过程非常简单,拿出手机,拍照,打开微信点击发送图片,完成。收到图片的朋友直接打开就可以看到你拍摄的照片了。但是对于开发者来说,如果要将一份代码发给另外一位开发者,那么对方可能要用几个小时甚至几天的时间才能看到这份代码运行的样子。 作为普通人,你无法理解这是为什么,如果你是一名开发者,你一定知道我在说什么!

767bb2851025bab5af08f8aba0264e72.png

上面漫画中的场景是不是很熟悉?开发环境的搭建对于开发者来说理所当然的是要占用大量时间和精力的,但是对于 “产品经理/领导/老板” 来说,开始写代码就应该像打开Word写个文档一样简单,只有开发者自己知道这其实很不简单。当然,这件事情确实应该更简单,只不过开发者整天 忙着让别人的生活变得简单,却忽视了自己的生活正在变得越来越复杂。

解决以上问题的终极方案就是云端工作区,从IDE产品本身的发展历程来看,在经历了超过30年的三代产品的发展演进后,主流IDE厂商都在向着云端工作区的方向发展。SmartIDE正是在这个大背景下应运而生的下一代IDE云端工作区管理工具。

76f1c63862febd834d035b10ae30dc0d.png

用云原生技术赋能开发者

5bd641323fa31c339ee9742bb6599e25.png

我们的使命是 用云原生技术赋能开发者,我们定位于“开源云原生CloudIDE”,希望将云原生中各种先进技术针对开发者的工作场景进行优化,让开发者也能享受云原生带来的好处。同时,针对现有CloudIDE存在的种种弊端,SmartIDE也会从开发者的诉求出发予以优化,比如:当前的CloudIDE大多数采用WebIDE+容器的技术基础来搭建,但是WebIDE本身有很多局限会影响开发者的体验和工作效率,比如:快捷键、多窗口、操作延迟等;针对这个问题,SmartIDE提供了Hybrid模式,允许开发者使用本地IDE(VSCode或者JetBrains)连接到云端工作区进行操作,让开发者既可以享受云端开发的强大又不需要改变自己的操作习惯。

f1f70b36e13580546ad0dcbf6b75007c.png

容器技术虽然对于应用运维来说提供了很多优化,但是因为容器技术从一开始就是为了生产环境而设计的,并不适合直接用于承载开发调试环境。为了能够为开发者提供适合作为开发调测环境的容器,SmartIDE特别研发了VMLC(类虚拟机容器)容器,给予开发者在容器内极大的自由度,同时又可以确保对主机环境的安全保障。

d37ac24d9ecd13000ad81d16062cff9a.png

在本次峰会的云原生论坛上,SmartIDE现场演示了以上两个场景。我们也会继续践行我们的使命,设计和开发一款真正为开发者解决问题、消除痛点、提高效率的开发者乐于使用的CloudIDE产品。

从新定义IDE

7e9143c45f8da70a9be8ead622c4ae03.png

如果把Vscode和JetBrain这些IDE称为传统IDE的话,他们最大的问题是:虽然在 I (Integration) 和 D (Development) 上面传统IDE都做的非常不错,但是他们都没有解决 E (Environment) 的问题。

SmartIDE是 第一个提供完整环境标准化能力 的新一代IDE产品,拓展了传统IDE的的边界,对IDE的概念从新定义并且专注打造围绕这一全新IDE概念的开发者生态系统。加入开放原子基金会是SmartIDE继续拓展新一代开发者生态的重要里一步,我们将继续围绕开发者的体验重新定位现有的研发工具链体系,为个人开发者和企业提供一体化研发环境标准化解决方案,补齐传统IDE的短板。

SmartIDE可以完成开发环境的一键搭建,如果你熟悉命令行操作,那么安装我们的cli,只需要学会一个命令 smartide start 就可以一键完成任何项目的开发调测环境搭建,不再需要安装任何工具,SDK,调试器,编译器,环境变量等繁琐的操作。如果不喜欢命令行操作,也可以使用我们的 Server 通过网页完成全部操作。

SmartIDE提供了三种运行形态,针对个人开发者以及企业研发面临的不同场景,提供了简单方便一站式的开发调试环境解决方案。彻底解决环境(E)的问题。

54622d08b45b104a85b64685ea7728b3.png

  • 本地模式: 面向 个人开发者 提供完整闭环的容器化开发调试环境调度,开发者可以在Windows/MacOS/Linux三种操作系统上使用 smartide start 指令一键启动任何开发语言的项目代码,直接进入调试状态,不必安装任何SDK以及开发工具。

  • 远程主机模式: 面向 专业开发者和团队 的远程容器化工作区(云端工作区)启动模式,开发者可以将任何linux主机转变为一台全功能的CloudIDE服务器,使用同样的 smartide start 指令就可以完成远程服务器的管理和维护。对于需要使用云端服务器的强大算力、高速网络以及超大规模存储的人工智能,大数据,微服务开发场景,可以极大简化开发者管理远程开发环境的复杂度。

  • k8s模式: 对于 企业团队开发 场景而言,能够将开发环境集中管理并标准化可以大幅减少开发团队花费在环境管理上的精力,同时提升 开发环境的安全性,稳定性以及开发效率。大型企业中使用标准化开发框架是普遍的实践,但是如何简单高效的推广这些开发框架是是一件非常困难的的事情,使用SmartIDE的k8s模式可以很好的解决这些问题。当前企业中已经有大量的k8s集群在使用,但绝大多数仅被用于测试和生产环境的管理,开发调测的环境在很多企业处于无管理或者疏于管理的状态,这为企业级研发来了大量的安全和稳定性隐患。SmartIDE k8s模式是针对企业级开发调测环境管理而设计的完整解决方案,为以上痛点提供了体系化的解决方案。

SmartIDE v1.0 已经发布

1a319ecfd497d2297dd11f6a27b8fdd8.png

SmartIDE v1.0版本(CLI Build v1.0.23.4650,Server Build v1.0.23.4646)已经发布,在发布了超过4000 Builds 之后,我们终于发布了v1.0版本。当前的版本已经完成了企业级云原生CloudIDE的特性闭环,允许个人/团队/企业用户 在 Windows/Mac/Linux 上使用 VSCode/JetBrains全家桶/OpenSumi 三种IDE开发7种技术栈下的任何项目,并且支持WebIDE,Hybrid混合模式以及WebTerminal 的三种工作区访问方式。

f27646722e1a48106dcda7df96cc7e06.png

SmartIDE产品体系包含 CLI,Server,开发者容器与模版以及插件市场四大组件,构成了企业级CloudIDE的完整生态环境。四大组件全部开源,为企业构建自主可控的私有化CloudIDE提供了一站式的解决方案。

个人开发者和企业用户可以从以下地址获取相关安装包、脚本和说明文档,立即开始体验(点击文末原文链接直接获取地址)

  • CLI 工具

  • 安装https://smartide.cn/zh/docs/install/cli/

  • 快读启动教程https://smartide.cn/zh/docs/quickstart/cli/

  • Server

  • 安装https://smartide.cn/zh/docs/install/server/

  • 快速启动教程https://smartide.cn/zh/docs/quickstart/server/

  • 开发者镜像和模版

  • 使用说明https://smartide.cn/zh/docs/templates/

  • 开发者镜像和模版指令列表https://smartide.cn/zh/docs/templates/#镜像和模版指令列 

  • 模版使用说明https://smartide.cn/zh/docs/templates/#模版库

  • 插件市场

  • 安装https://smartide.cn/zh/docs/install/marketplace/

  • 配置IDE使用SmartIDE插件市场      https://smartide.cn/zh/docs/manual/marketplace/config/

  • 配置自动插件同步机制https://smartide.cn/zh/docs/manual/marketplace/extension- sync/

  • 将你的插件发布到SmartIDE插件市场 https://smartide.cn/zh/docs/manual/marketplace/publish- extension/

  • 插件安装手册 https://smartide.cn/zh/docs/manual/marketplace/ usage/

  • 使用自签名证书进行插件市场私有化部署https://smartide.cn/zh/docs/manual/marketplace/self- signed-certificate/

我们也提供了多种开发语言技术栈的快速启动文档,方便开发者使用

  • Node/前端开发 https://smartide.cn/zh/docs/quickstart/node/

  • Java https://smartide.cn/zh/docs/quickstart/java/

  • DotNet https://smartide.cn/zh/docs/quickstart/dotnet/

  • Python Jupyter Notebook https://smartide.cn/zh/docs/quickstart/jupyter/

30a034212aa6f1b6f34b1255acb2b5ed.png

  • CLI: 是一个使用go语言开发的简单易用的命令行工具,可以在Windows/MacOS/Linux三种操作系统上运行,同时支持x86和arm两种cpu架构。覆盖了当前几乎所有主流的桌面,笔记本,服务器,边缘服务,IoT设备和移动操作系统环境。为SmartIDE提供了在任何平台上进行CloudIDE管理和调度的能力。其关键特性包括:

  • 一键创建容器化工作区

  • 本地、远程主机、k8s三种模式支持

  • 自动创建SSH安全隧道,避免开放远程主机端口

  • 使用环境模版一键创建预制的环境和代码框架

  • 工作区状态管理登录SmartIDE Server实现远程端口监听

  • Headless运行模式,支持流水线集成(比如:在GitLab CI中利用cli创建云端工作区环境)

bb9d866827367a74e5a19e8390119b89.png

  • Server: 采用vue.js + go语言开发的 开源企业级CloudIDE管理平台,支持单机和高可用两种部署模式,可以在隔离的企业环境内部署,支持多集群管理。主要特性包括:

  • 资源集中管控,支持纳管多台Linux主机或者k8s集群

  • 端到端的代码安全,实现研发过程全程代码不落地

  • 工作区入口,聚合所有研发资源

  • 环境模版,一键创建标准化开发环境

  • 团队管理,自由组合开发人员,按团队分配资源

  • 工作区策略、统一管理开发人员“本地”环境配置

  • 环境共享和协同开发

f279df35ab0cc5f198630d6983a656df.png

  • 开发者镜像&模板: 一整套完整的容器化环境镜像和可扩展的模板系统,支持7类主流开发语言并可以扩展到任何开发语言和框架的支持。主要特性包括:

  • 加速工作区加载

  • 三种主流IDE支持,VSCode, JetBrains全家桶和阿里OpenSumi

  • 多种工作区接入方式:包括WebIDE、Hybrid混动、WebTerminal和  Web文件管理器以及SSH直连

  • Hybrid混动模式同时支持 VSCode Remote和 JetBrains Gateway两种接入模式

  • Rootless安全保障,使用非root用户运行容器内进程,避免容器越权

  • 支持在容器内运行嵌套完整Docker和Kubernetes集群(VMLC,Rootless安全模式),完美支持云原生开发场景

35f996b38c9ebc2f681e412f63cfe625.png

  • IDE插件市场: 现代IDE需要使用大量插件扩展自身能力,在企业内部提供统一受控的插件市场有助于企业对开发调测环境、代码安全以及应用架构进行有效管控。我们基于Eclipse OpenVSX扩展开发了SmartIDE Marketplace,支持在隔离私有网络进行本地化部署并提供插件同步机制。主要特性包括:

  • 插件自动同步,使用预制脚本自动同步插件(包括历史版本)

  • 支持多种类VSCode IDE,比如:VSCodium, Code-Server,OpenVSCode Server,Eclipse Theia,OpenSumi

6854b45cd6a70f30cd45d3557501ee61.png

产品进展

7376836c439dd90974ec78e0fc58118d.png

SmartIDE的开发工作采用敏捷(Scrum&Kanban)方式进行,2周一个Sprint并且采用了高度自动化的流水线完成代码的构建,自动化测试和发布工作。到今天为止,我们已经完成了 超过4000个版本的发布,CLI每周下载量超过1000次。

过去的6个月中,我们完成了超过 400个特性的开发和交付,CLI完成了698次构建,Server完成了701次构建。

165994858e8163a88915efc70dbf0239.png

4a3a06540006c8e98c9151f86944f108.png

09ef4124d9722a3a90d99828cfb40fe7.png

当前我们已经有来自几十家企业的超过200名早期使用者

12f14612a90b8f8d71bcb72cdbcd5760.png

开源进展

7b81a804dd8a621b281fc921aef70f08.png

SmartIDE采用 GitHub和Gitee双地址开源 方式,并且支持社区开发者使用任何一个开源平台与我们的产品团队进行协作。为了满足开源社区协作和产品商业化开发同步推进的诉求,我们设计了 SmartIDE开源工作体系,帮助产品团队和社区开发者统一认知,高效协作。

具体可以参考:开源工作体系《SmartIDE开源工作体系丨IDCF

29213c4bcb3828f1e12de207e2b5b799.png

在GitHub和Gitee有非常多的小伙伴与我们互动,收获了超过 500个star和80个Fork。同时也被gitee评选为 2022最有价值开源项目

1464eab139652fa68044e542fecf2680.png

当前,SmartIDE已经进入 开放原子基金会项目捐赠的TOC审核阶段,我们认同并相信 “软件定义世界,开源共筑未来” 的理念,希望借助开放原子基金会的力量,继续扩大我们的社区影响力,吸引更多的共建单位一起构建开发者生态。以IDE这一软件开发基础软件为切入点,为更多的开发者和企业赋能,在开源开发者工作模式、企业级研发效能和信创领域打造世界级的下一代IDE工具平台。

欢迎更多的开发者和企业加入SmartIDE的开发协作,让我们一起做一个自己喜欢的工具。

a78150c6d894b68c3afa0881d0d92535.jpeg

4c66c93277dd7a0553f1ce30b18766b8.gif

#IDCF DevOps黑客马拉松挑战赛,独创端到端DevOps体验,精益创业+敏捷开发+DevOps流水线的完美结合。

2022年首场将在美丽的海滨城市-大连举办,8月6-7日,36小时内从0到1打造并发布一款产品。150a08720e421806ba11ddc81a50a059.png

企业组队参赛&个人参赛均可,赶紧上车~👇

aceb9cc6f348f8c31dfbda808826e42b.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/283160.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

修改docker的默认存储位置及镜像存储位置

2019独角兽企业重金招聘Python工程师标准>>> 方法一、软链接 默认情况下Docker的存放位置为:/var/lib/docker 可以通过下面命令查看具体位置: sudo docker info | grep "Docker Root Dir" 解决这个问题,最直接的方法当然…

微信小程序第三方服务公司有哪些

虽然微信小程序还没有正式推出,但围绕着微信小程序第三方服务公司之间的战争早已经开始。他们在小程序生成工具(一键生成小程序,无需开发)、微信小程序开发工具、小程序数据统计等领域展开激烈竞争,我们一起来看看微信…

Blazor University (49)依赖注入 —— 比较依赖范围

原文链接:https://blazor-university.com/dependency-injection/dependency-lifetimes-and-scopes/comparing-dependency-scopes/比较依赖范围源代码[1]在本节中,我们将创建一个 Blazor 应用程序来演示各种依赖注入作用域的不同生命周期。为此&#xff0…

设计模式概论

此文转载于 http://blog.csdn.net/hguisu/article/details/74968191. 设计模式设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性…

只需要2个工具,百度云盘大文件就能用迅雷和IDM下载

不会代码,不懂脚本,没关系 ,能找到一座通往它们的桥梁,照样能到达彼岸。 这里以360极速浏览器为例。 在浏览器地址框输入以下地址直接到达浏览器安装扩展插件的地方(偷个懒,复制网址吧)&#xf…

rsync服务器的配置

一、rsync 简介Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用 Rsync 同步本地硬盘中的不同目录。 Rsync 是用于取代rcp的一个工具,Rsync使用所谓的 “Rsync 算法…

Vue学习笔记入门篇——数据及DOM

本文为转载,原文:Vue学习笔记入门篇——数据及DOM 数据 data 类型 Object | Function 详细 Vue 实例的数据对象。Vue 将会递归将 data 的属性转换为 getter/setter,从而让 data 的属性能够响应数据变化。对象必须是纯粹的对象(含有零个或多个…

BZOJ 3144 [Hnoi2013]切糕

3144: [Hnoi2013]切糕 Description Input 第一行是三个正整数P,Q,R,表示切糕的长P、 宽Q、高R。第二行有一个非负整数D,表示光滑性要求。接下来是R个P行Q列的矩阵,第z个 矩阵的第x行第y列是v(x,y,z) (1≤x≤P, 1≤y≤Q, 1≤z≤R)。 100%的数据…

《ASP.NET Core 6框架揭秘》实例演示[18]:HttpClient处理管道

在《《ASP.NET Core 6框架揭秘》实例演示[17]:利用IHttpClientFactory工厂来创建HttpClient》之后,我们将关注点放到HttpClient对象上。我们知道ASP.NET的核心就是由中间件组成的请求处理管道,HttpClient也采用了类似的设计。HttpClient管道由…

雅诗兰黛天猫超级品牌日:未央唇膏、红装小棕瓶“当红不让”

随着年末圣诞季的临近,各大美妆品牌陆续推出了圣诞套装,红红火火的超豪华套装,算是对用户最实在的回馈。高端美妆品牌的“领头羊”雅诗兰黛,当然也“当红不让”,趁着圣诞季,与天猫超级品牌日联手打造了一场…

JAVA常见算法题(三十一)---冒泡排序

package com.jege.spring.boot.hello.world;/*** java算法之冒泡排序<br>* 将数组按照从大到小的顺序排列<br>* * * author Administrator**/ public class BubbleSort{public static void main(String[] args){int score[] {67, 69, 75, 87, 89, 90, 99, 100};fo…

WPF实现物理效果 拉一个小球

原文:WPF实现物理效果 拉一个小球一直以来都对物理效果有神秘感,完全不知道怎么实现的.直到看到了周银辉在老早前写的一篇博客:http://www.cnblogs.com/zhouyinhui/archive/2007/06/23/793724.html 终于知道是怎么实现的了. CompositionTarget类的Rendering事件.在每一帧成功渲…

C# CM框架下一行代码实现多页面管理

概述之前我分享过一个wpf的项目实践&#xff0c;主页面左侧是个listbox&#xff0c;每次选择改变后呈现对应的页面&#xff0c;界面图如下&#xff1a;要实现这样一个功能&#xff0c;我之前是采用传统方式实现的&#xff0c;本节我采用CM框架下的Conductor<T>去实现&…

关于JAVA异常处理的20个最佳实践

关于JAVA异常处理的20个最佳实践 在我们深入了解异常处理最佳实践的深层概念之前&#xff0c;让我们从一个最重要的概念开始&#xff0c;那就是理解在JAVA中有三种一般类型的可抛类: 检查性异常(checked exceptions)、非检查性异常(unchecked Exceptions) 和 错误(errors)。 异…

SSM框架搭建(四) springmvc和mybatis的配置

SSM框架搭建&#xff08;一&#xff09; JDK和MAVEN环境搭建 SSM框架搭建&#xff08;二&#xff09; 创建MAVEN项目 SSM框架搭建&#xff08;三&#xff09; 数据库创建和MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件 SSM框架搭建&#xff08;四&#xff09; sprin…

10 个有关 String 的面试问题

2019独角兽企业重金招聘Python工程师标准>>> 下面是面试中最容易问到的有关String的问题。 1. 如何比较两个字符串&#xff1f;使用“”还是equals()方法&#xff1f; 简单来讲&#xff0c;“”测试的是两个对象的引用是否相同&#xff0c;而equals()比较的是两个字…

基于ASP.NET Core 6.0的整洁架构

背景最近尝试录制了一个系列视频&#xff1a;《ASP.NET Core 6.0Vue.js 3 实战开发》&#xff0c;本节是视频内部整洁架构的理论和实战的文字稿。因为在录制之前&#xff0c;我通常会编写完整的文字内容作为视频文案&#xff0c;这里分享给大家&#xff0c;希望对你有所帮助。如…

大并发数据队列

图解#include<stdio.h>#include<stdlib.h>#include<memory.h>#define N 100#define mytype intstruct MyQueue{mytype data[N];//数组存储队列int front;//拉屎int rear;//吃东西};typedef struct MyQueue myQ;//初始化void init(myQ *p){p->front p->…

总在用户态调试 C# 程序,终还是搭了一个内核态环境

一&#xff1a;背景 一直在用 WinDbg 调试用户态程序&#xff0c;并没有用它调试过 内核态&#xff0c;毕竟不是做驱动开发&#xff0c;也没有在分析 dump 中需要接触用内核态的需求&#xff0c;但未知的事情总觉得很酷&#xff0c;加上最近在看 《深入解析 Windows 操作系统》…

bat kafka启动_windows下搭建Kafka,并通过命令窗口收发消息

参考网址&#xff1a;前提条件&#xff1a;windows环境需要安装jdk2.由于Kafka依赖于zookeeper&#xff0c;所以也需要下载zookeeper,可以通过官网下载http://zookeeper.apache.org/3.安装zookeeper将压缩包解压后&#xff0c;到bin目录下&#xff0c;启动zkServer.bat即可注意…