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

开源应用管理平台 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:以代码定义的方式部署资源

为了让 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.mzph.cn/news/656347.shtml

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

相关文章

C++中 this指针、构造函数、析构函数

1.this指针 我们定义一个日期类来举例子 对于上述类,有这样一个问题,Date类中有Init和Print这两个成员函数,函数体中没有关于不同对象的区分,那d1调用函数的时候,编译器是如和来确定d1而不是d2呢?C通过引入…

github请求超时解决方法

github请求超时解决办法 我使用windows执行如下git命令,提示超时 git clone xxxxx命令行提示如下: Failed to connect to github.com port 443: Timed out问题排查 可我Chrome可以正常访问github甚至ChatGPT,但是为什么在命令行里面却无法访问&#…

【Servlet】Smart Tomcat插件简化Servlet开发流程及解决常见问题

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【Servlet】 本专栏旨在分享学习Servlet的一点学习心得,欢迎大家在评论区交流讨论💌 目录 一、Smart Tomcat插件二…

快速上手Git

目录 一、Git概述 二、Git的常用命令 Git全局配置 获取Git仓库 基本概念 本地仓库操作 远程仓库操作 分支操作 标签操作 三、在IDEA中使用Git 在IDEA中配置Git 本地仓库操作 远程仓库操作 分支操作 冲突解决 一、Git概述 Git是一个分布式版本控制工具&…

Kubernetes Ingress 用法

Service的表现形式为IP地址端口号的方式,即工作在TCP/IP层,而对于基于HTTP的服务来说,Service机制很难实现,7层应用的复杂转发逻辑。kubernetes在1.1版本开始引入ingress资源对象,用于将集群外部的客户端请求路由到集群…

http代理与socks5代理有什么差异,http代理出现502错误如何修复?

一、HTTP代理与SOCKS5代理的差异HTTP代理和SOCKS5代理都是网络代理服务的两种主要类型,但它们在实现方式和应用场景上存在明显的差异。1.协议差异HTTP代理基于HTTP协议,是一种应用层代理,主要用于代理HTTP请求和响应。而SOCKS5代理则基于SOCK…

js实现贪吃蛇

文章目录 实现方法_11实现效果2 实现步骤2.1 移动场地2.2 游戏难度2.3 造蛇和食物2.4 蛇的移动2.5 产生食物的随机位置 3 全部代码 实现方法_21 实现效果2实现想法2.1 蛇的存储和显示2.2 蛇的移动(重难点)2.3 吃食物 3 完整代码 实现方法_1 1实现效果 2 实现步骤 html部分忽略…

java heap dump文件简单快速查看

如何 查看 堆内存的对象占用情况 1 准备工具: idea , 2、 步骤: 1、jmap 或者其他工具,获取到 heap 快照 2、更改该文件的后缀名为 xxxx.hprof 3、用idea open 这个文件 如图: 5、点击biggest tab , calculate xxxx 即可…

Flask 入门1:一个简单的 Web 程序

1. 关于 Flask Flask诞生于2010年, Armin Ronacher的一个愚人节玩笑。不过现在已经是一个用python语言基于Werkzeug工具箱编写的轻量级web开发框架,它主要面向需求简单,项目周期短的小应用。 Flask本身相当于一个内核,其他几乎所…

STM32-电动车报警器

STM32-电动车报警器 1.振动传感器点亮LED灯 需求:当振动传感器接收到振动信号时,使用中断方式点亮LED1 //重写中断服务函数,如果检测到EXTI中断请求,则进入此函数 void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {//一根中断线上接有多个…

JY-7A/3DK/220静态电压继电器 无源型 板前接线

系列型号 JY-7A/1DK不带辅助电源电压继电器;JY-7B/1DK不带辅助电源电压继电器; JY-7/1DK/120不带辅助电源电压继电器;JY-7/1DK/120不带辅助电源电压继电器; JY-7A/1DKQ不带辅助电源电压继电器;JY-7B/1DKQ不带辅助电源…

优秀广大青年欢迎加入

在深在广 年龄在20-35左右 男生工作稳定,幽默,长相帅气,爱好旅行,健身,读书,做饭,摄像,养宠,人心公益等…… 女生青春美丽,暖心贴心,踏实过日子&a…

网络安全知识和华为防火墙

网络安全 网络空间安全 ---Cyberspace 2003年美国提出的网络空间概念 ---一个由信息基础设施组成的互相依赖的网络。 我国官方文件定义:网络空间为继海、陆、空、天以外的第五大人类互动领域。 通信保密阶段 --- 计算机安全阶段 --- 信息系统安全 --- 网络空间安…

Android 中的动态应用程序图标

Android 中的动态应用程序图标 一、需求二、解决方案三、方案实现四、结论 一、需求 您可能遇到过那些可以实现巧妙技巧的应用程序 - 更改应用程序图标(也许是在您的生日那天),然后无缝切换回常规图标。这种功能会激起你的好奇心&#xff0c…

Shell脚本⑦awk

目录 一.awk概述 1.awk介绍 2.基本格式 3.工作原理 4.常见的内建变量 二.awk基本操作 1.打印文本内容 (1)打印磁盘使用情况 (2)打印字符串 (3)打印字符串确定文件有多少行 2.根据$n以及NR提取字…

实战教程:如何用Spring Boot和MySQL存储共享单车数据

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

【经典项目】Java入门,实现斗地主小游戏

一、需求分析 实现斗地主游戏可以涉及以下几个关键步骤和思路: 游戏规则定义:首先,你需要明确斗地主游戏的规则,包括牌的花色和大小、玩家数量、发牌顺序、出牌规则、胜利条件等。 牌的表示和初始化:定义一套扑克牌的…

第六讲_JavaScript原型

JavaScript原型 1. 原型的概念2. 原型继承2.1 原型链 3. class类的原型对象 1. 原型的概念 原型是 JavaScript 对象相互继承特性的机制。 每个函数都有一个 prototype 属性,这个属性指向一个对象,这个对象称为原型对象。每个对象都有一个 [[Prototype]…

网络原理-TCP/IP(1)

应用层 我们之前编写完了基本的java socket, 要知道,我们之前所写的所有代码都在应用层中,都是为了完成某项业务,如翻译等.关于应用层,后面会有专门的讲解,在此处先讲一下基础知识. 应用层对应着应用程序,是程序员打交道最多的一层,调用系统提供的网络api写出的代码都是应用层…

纯html+js+css个人博客

首页 <!DOCTYPE HTML> <html> <head> <title>博客</title> <meta http-equiv"Content-Type" content"text/html; charsetutf-8" /> <meta name"viewport" content"widthdevice-width, initial-sca…