开源应用管理平台 Walrus 0.5 已于近日正式发布!
Walrus 0.4 引入了全新应用模型,极大程度减少了重复的配置工作,并为研发团队屏蔽了云原生及基础设施的复杂度。Walrus 0.5 在这一基础上,通过重构交互流程、增强抽象能力,打造开箱即用的产品体验,进一步以平台工程的方式优化应用部署和交付。
“多云和混合云已成为企业主流的 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等。
通过在单一窗口内集成各项管理功能,用户无需在不同的界面之间切换,从而提高了整体使用体验,能够帮助用户更加轻松地应对复杂的资源管理任务。
资源定义(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/