v1.0.25 新版发布及Smart Meetup重新开启丨SmartIDE

cffdf34580e0456aca4162ca1e14e3bd.gif

作者:徐磊

文章首发地址:https://smartide.cn/zh/blog/2022-0892-sprint25/

5fe95b27a93ff834bf56fc43fc802c10.jpeg

关于SmartIDE

SmartIDE是一群开发者为所有开发者开发的开源云原生IDE,我们的使命是“为开发者赋予云原生的超能力”!

使用SmartIDE你只需要学会一个简单的指令 smartide start 即可一键搭建任何开发语言的开源环境,包括:Java, DotNet, JavaScript/前端,Go语言,Python,PHP,C/C++七种主流技术栈;你也可以在 Windows/MacOS/Linux 三种操作系统上使用SmartIDE,你还可以选择自己喜欢的IDE工具,包括:VSCode/JetBrains全家桶。

SmartIDE v1.0.25 (CLI build 5383, Server Build 5503) 已经发布,这个版本中我们针对一些关键特性进行了重要重构,比如 统一配置文件 和 工作区策略;同时我们还发布了一键启动链接和 SmartIDE Codespaces for Azure DevOps 插件,允许开发者在Azure DevOps上直接启动SmartIDE工作区;具体列表如下:

  • 统一配置文件:开发者可以使用一个.ide.yaml 文件同时支持本地/远程/k8s三种模式的工作区配置

  • 一键启动链接:允许开发者将这个链接放置在README文件,博客或者任何网页上,直接点击即可启动工作区

  • Azure DevOps插件:允许开发者在Azure DevOps的代码库,流水线和工作项上一键启动SmartIDE工作区

  • 工作区策略改进:增加了credential策略,方便开发者为k8s工作区设置密码,同时允许开发者使用这个密码通过SSH登录工作区

统一配置文件

dd77235b11ccdc905bcfd6b7c0a176aa.png

这个版本中我们开始允许使用一个 .ide.yaml 同时支持本地,远程和k8s三种工作区模式的配置。由于我们使用了 docker-compose 和 k8s manifest 两种环境编排,在之前的版本中用户需要针对2种编排模式提供至少2个不同的 .ide.yaml 文件,并且需要在启动的时候特意指定不同的配置文件,才能在不同类型的资源上启动工作区。现在开始,我们支持使用一个统一的.ide.yaml作为多种环境资源的入口,比如以下配置文件:

version: smartide/v0.3
orchestrator:type: allinoneversion: 3
workspace:dev-container:service-name: boathouse-calculator-devwebide-port: 6800ports: tools-webide-vscode: 6800tools-ssh: 6822apps-application: 3001ide-type: vscode  volumes: git-config: truessh-key: truecommand:- npm config set registry https://registry.npmmirror.com- npm installkube-deploy-files: "k8s-deployment.yaml" docker-compose-file: "docker-compose.yaml"

几个关键点:

  • Line 3 - orchestrator 的类型指定为 allinone,之前的选项是 docker-compose 或者 k8s

  • Line 20 - 指定k8s环境的编排文件

  • Line 21 - 指定本地和主机环境的编排文件

使用统一配置文件之后,开发者可以使用统一的指令格式在三种不同资源上启动工作区,比如以下指令

## 本地启动 (windows/mac/linux)
smartide start https://github.com/idcf-boat-house/boathouse-calculator.git
## 远程主机启动
smartide start --host <hostId> https://github.com/idcf-boat-house/boathouse-calculator.git
## k8s启动
smartide start --k8s <context> https://github.com/idcf-boat-house/boathouse-calculator.git

可以看到,以上启动指令中只是增加了 --host 或者 --k8s 参数,其他部分完全一致。另外,使用了统一配置文件之后,开发者也可以直接使用现有的 docker-compose 文件 或者 k8s 配置文件,不再需要复制这些文件的内容放入到我们的 .ide.yaml 中,这将简化开发者使用SmartIDE的准备工作。

网页链接一键启动

af051c6312f5062a0525866ae933d1a6.png

开发者现在可以使用类似以下的链接格式直接触发工作区的创建

https://dev.smartide.cn/#<Git代码库URL>

比如,以下就是一个可以直接触发工作区创建的链接,点击这个链接将会自动为boathouse-calculator库创建工作区

  • https://dev.smartide.cn/#https://github.com/idcf-boat-house/boathouse-calculator

你也可以在自己的README.md上放置一个 smartide start 的徽章,并在徽章上使用这个链接

fb7dc392c4c976a2f70f902c7bab9aff.png

以下视频展示了使用 网页链接一键启动 Github代码库的场景

36d04195f9e1ad88928c8fe4101439d2.jpeg

SmartIDE Codespaces for Azure DevOps 插件

c6fb9e4ce9be44272fe0a39a0ea72d23.png

基于以上 一键启动链接 能力 ,我们为 Azure DevOps 平台提供了一个插件,允许用户在不同的位置按照当前的上下文启动工作区,自动获取代码库地址,分支名称等参数,简化开发者创建开发环境的准备工作。这些自动化操作可以简化开发者从日常任务中进入编码环境的操作,并实现全线上化操作。

以下视频是在早鸟用户姚圣伟访谈过程中对这个插件的演示过程:

5add203558a9792ce3e184cf35b22c5c.jpeg

这个插件和已经发布到了 Azure DevOps 的插件市场,链接如下

  • SmartIDE Codespaces for Azure DevOps 插件

3b2f612742f38b507db13340f0d701f7.png

这个插件提供了4类入口,分别是

1. 代码库: 用户可以在任何分支或者提交记录上启动工作区,插件会自动识别当前代码库地址和分支名称,并使用这些参数启动一个与当前代码版本一致的开发环境。

7f9a2c1c91c740e07143b4e13afc17d9.png

2. 拉取请求: 使用拉取请求(PR)进行代码评审是非常普遍的开发实践,但是评审者往往会因为无法看到软件的运行情况而无法对当前正在评审的内容进行有效和完整的判断。此时,评审者就可以直接点击 Open in SmartIDE 按钮,即可获取一个和当前被评审代码完全一致的,可运行的环境来辅助进行代码评审,这会让评审工作变得更加简单和高效。评审者在整个过程中也无需安装任何开发工具,SDK和中间件环境,所有的环境都通过SmartIDE自动创建完成。评审结束后这个环境就可以直接销毁。

53c29db9ab9596224decbbfc01829371.png

3. 流水线: 一次流水线执行代表一个软件版本,测试人员一般是需要围绕这样的版本来进行测试的。传统模式下,测试人员需要准备几套测试环境来轮流测试不同的版本,如果出现多个版本并行的情况就很难管理这些测试环境。使用了SmartIDE之后,测试人员可以随时在任何版本(流水线运行记录)上点击 Open in SmartIDE 按钮,即可获取一个和当前流水线运行版本一致的环境进行测试;并且,这个环境中还包含了可供开发人员直接进行调试的IDE工具。测试过程中如果发现问题,测试人员可以将这个环境直接共享给开发者进行问题定位和调试。这种随用随起的测试环境将极大简化测试人员获取可用测试环境,以及在测试环境中定位问题的复杂度,提高开发测试迭代速度。

5be06aafec0d4bad92e0190403cca59d.png

4. 看板工作项: 使用特性分支对应到具体工作任务是大型软件开发团队中常用的分支策略,也是一种高效团队协作模式。以往开发者需要手工创建分支,并在本地开发环境拉取代码并手工切换到这个分支上才能开发工作。如果遇到同时在2个特性上工作的情况,繁琐的分支操作很容易造成操作失误。现在,开发者可以在工作任务上直接点击 Open in SmartIDE 按钮并根据需要创建或者使用已有分支,SmartIDE会自动使用指定分支创建开发环境。对于多特性并行情况,开发者只需要打开2个不同的浏览器窗口即可同时在2个分支上互不影响的进行工作。

f70ace29a97e8fb9e2a7d19c06b03ff6.png

SmartIDE Codespaces for Azure DevOps 插件只是我们计划提供的各种插件的一个示例,未来我们还将为常用的DevOps工具提供类似的入口,比如:Jira, Confluence, GitLab, Jenkins等等。这些扩展将帮助现有的DevOps工具与开发环境及编码过程实现更加紧密的集成,为开发人员提供一体化的工作体验。

工作区策略改进

e8a6be1cf68ac767705dafb738540cc9.png

工作区策略是SmartIDE中针对工作区进行各种控制的通用能力,之前我们已经提供了 Git Config 和 SSH Key 两种策略分别用来控制工作区中的git配置和ssh密钥。这个版本中我们增加了统一设定工作区访问密码的credential策略,一旦设定,开发者就可以使用一个统一的密码来控制对自己工作区的访问,包括SSH访问。

对于原有的SSH Key策略,我们进一步完善了密钥的推送过程,帮助开发者在使用SSH远程连接的时候实现免密登录。

下图:开发者获取SSH登陆指令并直接进入工作控制台终端。

2314320b11630dc477ebee7ed90aed41.gif

开发者也可以使用这个指令将本地VSCode或者JetBrains IDE连接到工作区,整个过程无需输入密码。

下图:使用VSCode远程模式免密进入SmartIDE云端工作区

876f35460743d9289bf23be355c72b11.gif

感谢你对SmartIDE的关注,欢迎从SmartIDE官网(文末链接)下载体验我们的产品,获取加入我们的早鸟群,及时了解SmartIDE的开发进展。

8dbad0049db6a1e3f6b18ff95588442b.jpeg

39607071c69379e5cd212bc90693b4db.gif

#SmartIDE Meetup,终于回来了。

2022年9月13日开始,我们将重新启动Smart Meetup线上直播活动,为大家持续揭秘SmartIDE的各种好玩的特性,并带领大家真正将SmartIDE用到自己日常的开发工作中👇

赶紧扫码预约吧,还有机会抽取SmartIDE主题文化衫哦!

d6ad8a6233d29de9775a96fb6eb73f93.png

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

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

相关文章

vue实现首屏加载等待动画 避免首次加载白屏尴尬

为什么80%的码农都做不了架构师&#xff1f;>>> 0 直接上效果图 1背景&#xff0c;用户体验良好一直是个重要的问题。 2怎么加到自己项目里面&#xff1f; 复制css html代码到自己的index.html即可 代码链接 源码地址 Vue学习前端群493671066&#xff0c;美女多多。…

java-回调机制详解

转&#xff1a;http://blog.csdn.net/llayjun/article/details/50454148 阅读目录 一、前言二、回调的含义和用途三、Java实现接口回调 四、Android中的接口回调五、参考资料一、前言 最近在看android fragment与Activity进行数据传递的部分&#xff0c;看到了接口回调的内容&a…

lfi读取php,php LFI读php文件源码以及直接post webshell

php LFI读php文件源码以及间接post 网站shell假如如下一个场景(&#xff11;) http://vulnerable/fileincl/example&#xff11;.php?pageintro.php(该php文件包孕LFI漏洞)(&#xff12;) 然而你不有中央能够upload你的网站shell代码(三) LFI只能读取到非php文件的源码(由于无…

根据请求上下文动态设置静态文件存储目录

前言上次&#xff0c;我们实现了根据 subpath 特定格式《动态设置静态文件存储目录》。例如&#xff1a;subpath静态文件路径/userAId/1.jpgc:\abc\userAId\1.jpg/userBId/1.jpgd:\xyz\123\userBId\1.jpg但是&#xff0c;如果 subpath 不能有这种特定格式&#xff0c;只能用通用…

ImageView的scaleType理解

2019独角兽企业重金招聘Python工程师标准>>> 1.android:scaleType“center” 保持原图的大小&#xff0c;显示在ImageView的中心。当原图的size大于ImageView的size时&#xff0c;多出来的部分被截掉。 2.android:scaleType“center_inside” 以原图正常显示为目的&…

第一章 引论

1、什么是多道程序设计&#xff1f; 即内存中同时运行多道独立程序&#xff0c;宏观上所有程序同时运行&#xff0c;微观上程序串行&#xff0c;多道程序轮流占用CPU&#xff0c;提高了资源利用率。 2、什么是SPOOLING&#xff1f;读者是否认为将来的高级个人计算机会把SPOOLIN…

《ASP.NET Core 6框架揭秘》实例演示[24]:中间件的多种定义方式

ASP.NET Core的请求处理管道由一个服务器和一组中间件组成&#xff0c;位于 “龙头” 的服务器负责请求的监听、接收、分发和最终的响应&#xff0c;针对请求的处理由后续的中间件来完成。中间件最终体现为一个Func<RequestDelegate, RequestDelegate>委托&#xff0c;但…

Android之 RecyclerView,CardView 详解和相对应的上拉刷新下拉加载

为什么80%的码农都做不了架构师&#xff1f;>>> 随着 Google 推出了全新的设计语言 Material Design&#xff0c;还迎来了新的 Android 支持库 v7&#xff0c;其中就包含了 Material Design 设计语言中关于 Card 卡片概念的实现 —— CardView。RecyclerView也是谷…

Java——Arrays类操作数组的工具类

JDK中提供了一个专门用于操作数组的工具类&#xff0c;即 Arrays 类&#xff0c;位于 Java。util 包中。该类提供了一系列方法来操作数组&#xff0c;如排序、复制、比较、填充等&#xff0c;用户直接调用这些方法即可&#xff0c;不需要自己编码实现&#xff0c;降低了开发难度…

CORS——跨域请求那些事儿

【本期嘉宾介绍】睿得&#xff0c;具有多年研发、运维、安全等IT相关从业经历。目前从事CDN、存储、视频直播点播的技术支持。喜爱钻研&#xff0c;喜爱编码&#xff0c;喜爱分享。 在日常的项目开发时会不可避免的需要进行跨域操作&#xff0c;而在实际进行跨域请求时&#xf…

oracle 数据执行计划,Oracle里常见的执行计划

本文介绍了Oracle数据库里常见的执行计划&#xff0c;使用的Oracle数据库版本为11.2.0.1。1、与表访问相关的执行计划Oracle数据库里与表访问有关的两种方法&#xff1a;全表扫描和ROWID扫描。反映在执行计划上&#xff0c;与全表扫描对应的执行计划中的关键字是“TABLE ACCESS…

.NET MAUI实战 Dispatcher

详细内容这一期分享的内容非常简单&#xff0c;在之前使用过WPF的开发者对MVVM开发模式下ViewModel中后台线程转UI线程并不陌生使用Appplication.Current.Dispatcher。那么在.NET MAUI中也有同样的机制&#xff0c;存在于.NET MAUI Shell对象中。那么什么是Shell&#xff1f;官…

GDB 配置

GDB 配置 使用 GDB 扩展来配置 GDB 事实上我还是觉得原生的 GDB 就挺好&#xff0c;速度快&#xff0c;需要查看什么执行命令就可以。 GDB DashBoard https://github.com/cyrus-and/gdb-dashboard $sudo mkdir -m 777 ~/gdbinit; cd ~/gdbinit $git clone https://github.com/c…

Oracle区分中文和英文,oracle中中英文段落划分实现

oracle中关于中文占用字节数&#xff0c;不同的数据库有不同的情况&#xff0c;有的占用两个字节、有的占用三个字节&#xff0c;现在测试环境的数据库中文占用三个字节&#xff0c;要实现由中英文组成的段落字符串&#xff0c;按照每行占用多少字节重新分段&#xff0c;具体应…

虚拟机网络配置详解(NAT、桥接、Hostonly)

VirtualBox中有四种网络连接方式: NATBridged AdapterInternalHost-only AdapterVMWare中有三种&#xff0c;其实它跟VMWare的网络连接方式都是一样的概念&#xff0c;只是比VMWare多了Internal方式 在介绍四种工作模式之前&#xff0c;先说下虚拟网卡&#xff0c;虚拟机安装好…

微软宣布正式开源 Azure IoT Edge 边缘计算服务

开发四年只会写业务代码&#xff0c;分布式高并发都不会还做程序员&#xff1f; 微软宣布&#xff0c;去年年底公开预览的 Azure IoT Edge 边缘计算服务已进入官方版&#xff0c;并通过 GitHub 将其开源。Azure IoT Edge 主要将基于云的分析和定制的业务逻辑转移到边缘设备&a…

Windows下安装BeautifulSoup

电脑首先要安装好了python&#xff0c;我安装的是2.7。 下面就是bs4的安装过程了: 1.去官网下载BeautifulSoup4 2017.02.10目前最新版本&#xff1a;Beautiful Soup 4.3.2 2.解压文件 将下载得到的压缩包解压到任意文件夹&#xff0c;路径不含中文 3.打开cmd命令提示符 winr&am…

BZOJ1578: [Usaco2009 Feb]Stock Market 股票市场

S<50只股票D<10天的价格给出&#xff0c;求第一天开始用n<200000元最后能得到的最大钱数&#xff0c;保证答案<500000。 做D次完全背包即可&#xff0c;每次做完把dp数组清空。 1 #include<cstdio>2 #include<cstring>3 #include<algorithm>4 #i…

OC如何跳到系统设置里的各种设置界面

当 iOS系统版本 < iOS7时 , 只能跳转到 系统设置页面 &#xff0c;楼主试了下&#xff0c;非真机是没有任何效果的 当iOS系统版本 < iOS 10.0 时 NSURL *url [NSURL URLWithString:"prefs:rootLOCATION_SERVICES"]; if( [[UIApplication sharedApplication]can…

虚拟DOM Diff算法解析

React中最神奇的部分莫过于虚拟DOM&#xff0c;以及其高效的Diff算法。这让我们可以无需担心性能问题而”毫无顾忌”的随时“刷新”整个页面&#xff0c;由虚拟DOM来确保只对界面上真正变化的部分进行实际的DOM操作。React在这一部分已经做到足够透明&#xff0c;在实际开发中我…