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

2024-01-29 17:28

本文主要是介绍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/

这篇关于Walrus 0.5发布:重构交互流程,打造开箱即用的部署体验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/657633

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Spring Boot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)

《SpringBoot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)》本文将以一个实际案例(用户管理系统)为例,详细解析SpringBoot中Co... 目录引言:为什么学习Spring Boot分层架构?第一部分:Spring Boot的整体架构1.1

nodejs打包作为公共包使用的完整流程

《nodejs打包作为公共包使用的完整流程》在Node.js项目中,打包和部署是发布应用的关键步骤,:本文主要介绍nodejs打包作为公共包使用的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言一、前置准备二、创建与编码三、一键构建四、本地“白嫖”测试(可选)五、发布公共包六、常见踩坑提醒

Ubuntu向多台主机批量传输文件的流程步骤

《Ubuntu向多台主机批量传输文件的流程步骤》:本文主要介绍在Ubuntu中批量传输文件到多台主机的方法,需确保主机互通、用户名密码统一及端口开放,通过安装sshpass工具,准备包含目标主机信... 目录Ubuntu 向多台主机批量传输文件1.安装 sshpass2.准备主机列表文件3.创建一个批处理脚

一个Java的main方法在JVM中的执行流程示例详解

《一个Java的main方法在JVM中的执行流程示例详解》main方法是Java程序的入口点,程序从这里开始执行,:本文主要介绍一个Java的main方法在JVM中执行流程的相关资料,文中通过代码... 目录第一阶段:加载 (Loading)第二阶段:链接 (Linking)第三阶段:初始化 (Initia

linux部署NFS和autofs自动挂载实现过程

《linux部署NFS和autofs自动挂载实现过程》文章介绍了NFS(网络文件系统)和Autofs的原理与配置,NFS通过RPC实现跨系统文件共享,需配置/etc/exports和nfs.conf,... 目录(一)NFS1. 什么是NFS2.NFS守护进程3.RPC服务4. 原理5. 部署5.1安装NF

Git打标签从本地创建到远端推送的详细流程

《Git打标签从本地创建到远端推送的详细流程》在软件开发中,Git标签(Tag)是为发布版本、标记里程碑量身定制的“快照锚点”,它能永久记录项目历史中的关键节点,然而,仅创建本地标签往往不够,如何将其... 目录一、标签的两种“形态”二、本地创建与查看1. 打附注标http://www.chinasem.cn

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx