Walrus 0.5发布:重构交互流程,打造开箱即用的部署体验

news/2024/7/10 20:08:10 标签: Walrus, 平台工程, 开源, Github

开源应用管理平台 Walrus 0.5 已于近日正式发布!

 

Walrus 0.4 引入了全新应用模型,极大程度减少了重复的配置工作,并为研发团队屏蔽了云原生及基础设施的复杂度。Walrus 0.5 在这一基础上,通过重构交互流程、增强抽象能力,打造开箱即用的产品体验,进一步以平台工程的方式优化应用部署和交付

 

image.png

 

“多云和混合云已成为企业主流的 IT 基础设施架构,异构基础设施管理的复杂度随着企业业务规模扩大不断攀升。当前环境下,降低管理成本、提升交付效率已成为企业的首要任务之一。”Seal 联合创始人及 CEO 秦小康介绍道,“Walrus 致力于采用平台工程的方法帮助企业简化应用系统管理,减轻研发和运维的认知负担,以应对当下复杂的 IT 挑战。”

 

Walrus GitHub 主页:
https://github.com/seal-io/walrus
Walrus 在线文档:
https://seal-io.github.io/docs/zh/

 

重构交互流程、增强抽象能力、简化资源管理

Walrus 0.5 升级了用户界面,针对资源及资源定义的管理交互进行优化,提供直观、简洁的管理体验。

 

之前版本中的服务及资源已统一到单一资源视图中,并且在该视图中统一提供针对资源详情各类操作的支持,例如,查看资源列表、管理资源及其底层组件,查看日志、进行终端调试故障、获取服务的URL等。

 

image.png

 

通过在单一窗口内集成各项管理功能,用户无需在不同的界面之间切换,从而提高了整体使用体验,能够帮助用户更加轻松地应对复杂的资源管理任务。

 

资源定义(Resource Definition)是 Walrus 构建多云、混合基础设施上层统一抽象的核心Walrus 0.5 对资源定义做了进一步增强:

 

  • 丰富内置的资源定义,同时优化资源定义匹配规则的创建;
  • 提供资源定义关联资源的管理视图,方便运维或架构团队实现资源的统一管理;
  • 支持声明多个同类型的资源定义,通过灵活的规则匹配,方便不同团队按需管理。

 

为受限网络环境提供丝滑的安装部署体验

为了优化受限网络环境下的部署体验,Walrus 0.5 引入了对 Gitee 的内置支持, 用户现在可以从 Gitee 拉取内置模板的镜像源,并将 Gitee 作为模板库的来源,从而避免用户在受限网络环境下访问 GitHub 的困扰。

 

在部署 Walrus 时,用户可以使用 SERVER_BUILTIN_CATALOG_PROVIDER=gitee
环境变量指定即可将模板的下载源从默认的 Github 更改为 Gitee

 

此外,为了加速部署,减少 Provider 下载失败导致部署出错的情况,我们开源了加速服务项目 Hermit Crab(https://github.com/seal-io/hermitcrab),它为 Terraform 和 OpenTofu 提供 Provider 缓存支持,让部署过程更丝滑。

 

目前,安装 Walrus 时会在当前的 Kubernetes 中自动部署 Hermit Crab 。如果用户选择启用加速服务,在首次联网成功下载 Provider 后, Hermit Crab 会将其缓存到加速服务中,在后续触发新的部署时直接从缓存中读取,无需重复下载。

 

从 Docker 到 Kubernetes 的多态支持

Walrus 0.4 推出了“单一配置,多态运行”这一核心特性,在 Walrus 0.5 中,我们将这一特性扩展到从 Docker 到 Kubernetes 的内置多态支持。

 

这一特性使用户既能在本地 Docker 环境完成应用的开发和运行调试,同时还能使用同一套应用定义 YAML 将应用部署到预发布或生产的 Kubernetes 环境,而无需了解两者间的配置差异。

 

具体而言,开发人员可以在 PC 端通过 Walrus 内置的资源类型(如 containerservice mysql postgresql redis )将应用部署运行在本地的 Docker 中。同时,在不做任何改动的情况下,将这一份应用定义部署到另一个底层为 Kubernetes 的环境中。此外,用户可以使用资源定义按需扩展相应的资源类型。

 

对于只使用 Docker 的用户,Walrus 0.5 同样提供了支持。

 

Walrus 安装阶段,Walrus 0.5 支持仅使用 Docker 部署容器应用。开发人员通过 Walrus 的 CLI 命令 walrus local install 在本地 Docker 环境中采用 Docker extension 的方式安装 Walrus,换言之,Walrus 不需要依赖外置的 K8s 或内置的 K3s 即可运行。

 

在应用部署阶段,新版本新增的 Docker 连接器和 Docker 应用模板支持开发人员将应用部署到 Docker 环境。

 

进一步扩展部署灵活性

新增 OpenTofu 作为 Deployer 选项

由于 Terraform 修改了开源许可证,OpenTofu 作为其开源替代方案而推出,并于本月月初宣布 GA。在之前版本中,用户可以自行将 Terraform 切换到 OpenTofu。Walrus 0.5 中,我们对 OpenTofu 1.6.0 提供了正式支持

 

通过系统设置 >部署管理 > 基础设置 > 部署器镜像这一路径,用户即可将默认的 Deployer 从Terraform切换到OpenTofu(镜像为sealio/opentofu-deployer:v1.6.0-seal.1)。这一改进旨在为用户提供更灵活的选项,避免供应商锁定。

 

Walrus_File_112">Walrus File:以代码定义的方式部署资源

为了让 Walrus 更易上手,新版本新增 Walrus file 特性,这是依照 YAML 格式编写的文件,用于部署 Walrus 资源。

 

Walrus file 通过类似于 Docker Compose file 的简明定义来描述应用服务和基础设施资源的配置,它的独特之处在于,该应用定义可以用于创建各种多云和混合基础设施的应用服务和资源,并不局限于 Docker 或 Kubernetes

 

通过 Walrus CLI 的 walrus apply/delete -f ,可以指定应用或删除 Walrus file 所描述的 Walrus 资源。此外,用户可以通过 Walrus CLI 将 Walrus file 的发布与现有的 CI/CD 工具和流程进行集成,进一步增强了 Walrus 的灵活性,并且可以因地制宜地满足各类部署需求。

 

为了缩短学习路径,我们提供 Walrus File Hub 作为参考(https://github.com/seal-io/walrus-file-hub)。在用户 Import YAML 时,可以从 Walrus File Hub 中查看相关示例。

 

完全开源,轻松上手

Seal 团队秉持着一以贯之的开源理念和开箱即用的产品设计思路,Walrus 基于 Apache 2.0 许可完全开源,并且仅需一行命令您就可以在已安装 Docker 的电脑上部署 Walrus

 

sudo docker run -d --privileged --restart=always -p 80:80 -p 443:443 -p 30000-30100:30000-30100 --name walrus sealio/walrus:v0.5.0

 

如果您喜欢这个项目,欢迎在 Github 上为我们点亮 🌟

 

Walrus GitHub 主页:
https://github.com/seal-io/walrus
Walrus 在线文档:
https://seal-io.github.io/docs/zh/


http://www.niftyadmin.cn/n/5353089.html

相关文章

python脚本实现浏览器驱动chromedriver的版本自动升级

chromedriver的版本号与chrome浏览器版本不匹配时在运行程序时就会报错 用下面的脚本可以自动安装chromedriver的最新版本到指定路径 from webdriver_manager.utils import get_browser_version_from_os from webdriver_manager.chrome import ChromeDriverManager import re…

嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM驱动编程第二天-ARM中断寄存器详解 (物联技术666)

链接:https://pan.baidu.com/s/1E4x2TX_9SYhxM9sWfnehMg?pwd1688 提取码:1688 ARM中断寄存器详解 S3C2440的中断寄存器: 1.中断分两大类:内部中断和外部中断。 2.外部中断。24个外部中断占用GPF0-GPF7(EINT0-EIN…

在Compose中控制组件中数据的流速

文章目录 一、场景描述二、代码示例 一、场景描述 在Compose中设计思想是分为状态和组件的,组件由状态控制。这个操作和传统的AndroidView不太一样。在Compose中对话框Dialog也是一个组件,其显示和隐藏由外部状态控制。这里有一个场景,假设显…

关于如何将Win幻兽帕鲁服务端存档转化为单人本地存档的一种方法(无损转移)

本文转自博主的个人博客:https://blog.zhumengmeng.work,欢迎大家前往查看。 原文链接:点我访问 **起因:**最近大火的开放世界缝合体游戏幻兽帕鲁的大火也是引起了博主的注意,然后博主和周边小伙伴纷纷入手,博主也是利…

C++类和对象引入以及类的介绍使用

文章目录 一、面向过程和面向对象的初步认识二、类的引入2.2 类的引入 三、类的访问限定符及封装3.3 访问限定符3.4 【面试题】C中struct和class的区别3.5 类的两种定义方式 四、封装【面试题】面向对象的三大特性 五、类的作用域六、类的实例化七、类对象模型7.1 类对象的存储…

DB-GPT: Empowering Database Interactions with Private Large Language Models 导读

本文介绍了一种名为DB-GPT的新技术,它将大型语言模型(LLM)与传统数据库系统相结合,提高了用户使用数据库的体验和便利性。DB-GPT可以理解自然语言查询、提供上下文感知的回答,并生成高准确度的复杂SQL查询,…

Qt开源版 vs 商业版 详细比较!!!!

简单整理Qt开源版与商业版有哪些差别,仅供参考。 简单对比 开源版商业版许可证大部分采用对商业使用不友好的LGPLv3具备商业许可证保护代码专有许可证相关大部分模块使用LGPLv3和部分模块使用GPL组成仅第三方开源组件使用Qt的其他许可证Qt模块功能支持支持技术支持…

【动态规划】【图论】【C++算法】1575统计所有可行路径

作者推荐 【动态规划】【字符串】【行程码】1531. 压缩字符串 本文涉及知识点 动态规划汇总 图论 LeetCode1575统计所有可行路径 给你一个 互不相同 的整数数组,其中 locations[i] 表示第 i 个城市的位置。同时给你 start,finish 和 fuel 分别表示出…