SmartIDE v0.1.19 - 码云(Gitee)最有价值开源项目奖项、工作区策略、类虚拟机镜像VMLC、Server安装手册
码云(Gitee.com)最有价值开源项目奖项
SmartIDE在上周获得了码云(Gitee.com) 的最有价值开源项目奖项。码云(Gitee.com)是国内最大的开源代码托管平台,当前有800万开发者用户。GVP - Gitee最有价值开源项目奖项需要开源项目采用OSI认可的License (SmartIDE采用GPL3.0协议),通过Gitee专家组的认可,开发活跃度(SmartIDE至今已经完成了488次代码提交),积极响应用户反馈,提供完整的文档以及用户评价(当前Gitee Star 125, Github Star 229)。
SmartIDE非常荣幸获得码云的认可,我们将继续为开发者提供最好的开发工具和技术支持。

Server 私有部署手册
SmartIDE Server 是面向团队和企业的云原生容器化远程工作区管理平台,可以为开发团队提供统一的开发测试资源管理,基于浏览器的开发环境访问以及团队协作能力。SmartIDE Server 的 团队基础版 功能是开源而且免费的,任何人都可以按照本手册所提供的方式完成部署并免费使用,没有使用期限限制,没有用户数限制,也没有资源数量限制。
下图是Server版的部署架构图:

图中可见,SmartIDE Server 采用了非常灵活并且可扩展的分布式架构,每个服务组件都可以进行独立的横向扩展以便确保可以应对不同规模的部署模式需求。既可以在单台Linux主机上完成完整的部署,也可以在k8s集群上支持高可用,高性能的可横向扩展部署,对于不同规模的团队都可以提供支持。
我们已经完成了 SmartIDE Server 私有化部署的文档验证,包括公网部署和隔离网络部署均已经可以投入使用。希望尝试自行部署的小伙伴现在就可以参考以下完成完成部署和功能验证:
类虚拟机容器 VMLC
在2022年6月11日刚刚结束的 开源云原生开发者日 大会上,我进行了名为 【寻找云原生时代的开发者效能原力 - 使用AKS实现云原生IDE开发调试环境】的主题演讲,并在演讲中首次展示了 SmartIDE 对 VMLC 的支持。

类虚拟机容器 VMLC 是 VM Like Container 的缩写,其设计目标是为开发者在容器中提供类似虚拟机的环境,包括:systemd服务管理能力,sshd远程登录能力,docker/k8s嵌套能力等。容器化技术出现以后,绝大多数的使用场景都是生产环境,因此对容器的优化目标都是围绕精简,单一进程,不可变状态的目标来实现的;对于开发人员来说,按这种目标设计的容器并不适合作为开发环境来使用。相对于生产环境中已经预先确定的配置,开发环境的配置需要由开发人员根据当前应用的不同需求进行持续的调整,并且持续的进行内迭代过程(Inner Cycle),这个过程包含了编码,编译打包,部署,测试,修复的过程。只有为开发人员提供完整的内迭代能力才能最大限度确保开发人员提交的代码质量,降低后续环节(包括生产环境)中出现问题和缺陷的几率。
为了达到以上目标,SmartIDE产品团队在过程的Sprint 18-19两个迭代中完成了VMLC容器标准的设计,验证和实现,并且已经通过 dapr-traffic-control 示例应用展示了 VMLC 的完整能力,包括:
- 在Linux主机和k8s集群中部署 VMLC 远程工作区容器的能力
- 使用 smartide start指令或者 smartide new 指令启动基于 VMLC 的远程工作区的能力
- 使用 SmartIDE Server 管理基于 VMLC的远程工作区的能力
- 在VMLC容器中运行docker能力
- 在VMLC容器中运行多节点k8s的能力,包括使用LoadBalancer, Ingress提供外部访问的能力
- 使用SSH链接VMLC容器,并使用终端进行操作的能力
- 使用VSCode远程开发插件 / JetBrains Gateways 链接 VMLC 容器进行 Hybird 模式开发的能力 当前,我们已经提供了以下基于 VMLC 的开发者镜像,其他类型的开发者镜像会在后续的 Sprint 中完成适配
| 开发语言 | 镜像类型 | tag | Pull命令 | new指令 | 备注 |
|---|---|---|---|---|---|
| base | SDK | latest | docker pull registry.cn-hangzhou.aliyuncs.com/smartide/smartide-base-v2-vmlc:latest |
se new base -t vmlc |
支持VMLC的基础镜像,使用ubuntu:20.04作为基础 VMLC容器只支持linux操作系统 |
| base | WebIDE | latest | docker pull registry.cn-hangzhou.aliyuncs.com/smartide/smartide-base-v2-vscode-vmlc:latest |
se new base -t vscode-vmlc |
支持VMLC的基础镜像,使用ubuntu:20.04作为基础, 增加VSCode WebIDE VMLC容器只支持linux操作系统 |
| dotnet | WebIDE | latest | docker pull registry.cn-hangzhou.aliyuncs.com/smartide/smartide-dotnet-v2-vmlc:latest |
se new dotnet -t vmlc |
支持VMLC的基础镜像,使用ubuntu:20.04作为基础, .net 6.0 sdk 增加VSCode WebIDE VMLC容器只支持linux操作系统 |
有关基于 VMLC 的 SmartIDE 远程工作区详情,请参考以下博客
工作区策略
工作区策略是为远程工作区提供配置管理能力的一个通用特性,通过运行于远程工作区中的代理程序,SmartIDE可以针对特定工作区内部的环境进行所需要的各种配置。其架构如下

如上图,工作区策略的实现通过agent来实现,agent和server之间是单向通信(pull)的模式,因此工作区并不需要为sever开放网路服务端口,agent会按照一定的周期从server获取为当前工作区所准备的策略,并按照策略的需要在工作区内部完成实施。当前SmartIDE已经实现了3个基础策略:
- 心跳策略:这是agent的默认策略,所有工作区都会实施这个策略,其功能非常简单,就是为server提供当前工作区的健康状态检查。工作区健康状态会显示在工作区详情页的右上角,如下图

git-config策略:远程工作区需要与当前用户的身份进行绑定,在使用Git作为源代码管理工具的过程中,我们需要将用户的git配置注入到属于用户的工作区中,这样用户就可以在server上统一配置自己的git-config内容,确保自己所使用的所有的工作区均使用统一的git-config配置项。
ssh-key策略:ssh-key作为一种通用的身份认证机制,广泛用于各种git服务或者服务器之间的认证。通过ssh-key策略,我们可以确保用户的工作区均使用统一管理的密钥进行服务间的授权,包括:SSH-GitUrl,SSH 远程登录等场景。本次ssh-key策略上线之后,SmartIDE也可以开始支持Git 私有仓库的常见操作。
工作区策略可以通过server管理界面进行配置,如下图

社区早鸟计划
如果你对云原生开发环境感兴趣,请扫描以下二维码加入我们的 SmartIDE社区早鸟计划

谢谢您对SmartIDE的关注,让我们一起成为云原生时代的 Smart开发者, 享受 开发从未如此简单 的快乐。
让我们一起成为 Smart开发者,享受开发如此简单的乐趣。
SmartIDE v0.1.19 - 码云(Gitee)最有价值开源项目奖项、工作区策略、类虚拟机镜像VMLC、Server安装手册的更多相关文章
- 码云 Gitee 云端软件平台学习--GitHub
码云 Gitee http://git.oschina.net/jackjiang/MobileIMSDK http://www.blogjava.net/jb2011/archive/2018/11 ...
- 怎么将本地项目放到码云(gitee)上面?图文详解
git的好处什么的,在此就不多赘述.现在很多公司都在用git了. 那么怎么将本地已经有的项目放到码云(gitee)上呢? 前置条件说明: 1:原来项目所在位置:D:\workspace01\class ...
- GitHub和码云gitee及远程仓库管理
目录 备注: 知识点 GitHub 码云(gitee.com) gitee的使用 本地版本库关联多个远程库 备注: 本文参考于廖雪峰老师的博客Git教程.依照其博客进行学习和记录,感谢其无私分享,也欢 ...
- Gitee 自已提交的代码提交人头像为他人、码云上独自开发的项目显示为 2 个开发者
简介 自己写的代码提交到码云(Gitee)上却变成了两个人,一个被正确的代码提交统计了,另一个却没有,并且确信自己输入的Gitee账号是自己绑定的邮箱,具体如下: 解决办法 查看自己的用户名 git ...
- 使用码云gitee.com托管代码
1.新建项目 可以看到团队资源管理器是这样的,已经在本地有存储库,所有更改可以保存本地 2.在码云上新建项目 项目名称必填,其它项根据情况填写 3.复制项目地址关联到本地存储库 填写码云的项目地址,发 ...
- 厉害了,龙果!开源中国颁发了证书:GVP-码云最有价值开源项目
roncoo-pay (龙果支付系统) roncoo-pay是国内首款开源的互联网支付系统,其核心目标是汇聚所有主流支付渠道,打造一款轻量.便捷.易用,且集支付.资金对账.资金清结算于一体的支付系统, ...
- 我发起了一个 用 物理服务器 和 .Net 平台 构建云平台 的 .Net 开源项目
大家好 , 我发起了一个 用 物理服务器 和 .Net 平台 构建云平台 的 .Net 开源项目 . 对 , 用 物理服务器 和 .Net 平台 构建 云平台 . 通过 .Net 构建 分布式 计算集 ...
- git本地项目上传至码云gitee
如果你的本机是安装成功第一次使用,先配置一下一些基本的信息 $ git config--global user.name "Your Name" $ git config --gl ...
- 码云Gitee上新建项目教程
1.在浏览器访问,https://gitee.com/: 2.使用用户名.密码登录: 3.在左下角显示当前用户的项目,点击“+”号,创建项目: 4.填写项目的相关信息,项目名称要和本地要上传的项目名称 ...
随机推荐
- JAVASE While 计算累加实例
package com.huang.boke.flowPath;public class While { public static void main(String[] args) { int i= ...
- 进程的概念及multiprocess模块的使用
一.进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.在早期面向进程设计的计算机结构中,进程是程序的基本执行实体:在 ...
- python入门基础-介绍、基础语法
一.anaconda下的spyder简介 Spyder 是一个强大的交互式 Python 语言开发环境,提供高级的代码编辑.交互测试.调试等特性,支持包括 Windows.Linux 和 OS X 系 ...
- node.js - http、模块化、npm
今天是node学习的第二天,其实越往后面学越感觉有点熟悉的味道了,光针对于node来说哈,为什么呢,因为我之前学过一点云计算的东西,当时感觉没什么用搞了下服务器客户端这些,没想到这里还能用一用,至少看 ...
- Java 字符串Split方法的一个坑
java字符串的split,只传一个参数,后面空白的字符串会被忽略: public static void main(String[] args) { String str = "ab|c| ...
- 还在用em strong吗?快来试试 text-emphasis
大家好,我是半夏,一个刚刚开始写文的沙雕程序员.如果喜欢我的文章,可以关注 点赞 加我微信:frontendpicker,一起学习交流前端,成为更优秀的工程师-关注公众号:搞前端的半夏,了解更多前端知 ...
- 数据库-mysql索引篇
点赞再看,养成习惯,微信搜索「小大白日志」关注这个搬砖人. 文章不定期同步公众号,还有各种一线大厂面试原题.我的学习系列笔记. mysql的索引类型? mysql中有5种索引:普通索引.唯一索引.主键 ...
- JavaWeb之如何把请求数据转成实体类
JavaWeb之如何把请求数据转成实体类 自己写个工具类加入下面两个静态方法 自定一个注解类DateTimeFormatting 调用方式User user = util.ObjectFromMap( ...
- go-websocket服务端/客户端
目录 websocket 服务端 客户端 websocket websocket.Upgrader升级为websocket协议 服务端 package main import ( "fmt& ...
- Linux学习教程 | 全文目录
本教程最大的特点是通俗易懂,并且非常详细,花费 7 天时间即可快速了解 Linux. 第一章 Linux简介 1.1 操作系统是什么,操作系统概述 1.2 Linux是什么,有哪些特点? 1.3 Li ...