今天,我们高兴地宣布云原生统一应用平台 Walrus 0.4 正式发布,这是一个里程碑式的版本更新。新版本采用了全新的应用模型——仅需进行单一配置,即可在多种模态的基础设施及环境中运行包括应用服务及周边依赖资源在内的完整应用系统。“You build it, you run it”在这一版本中成为现实。
此外,Walrus 0.4 还集成 Argo Workflows 作为工作流引擎,提供应用环境分类、动态 UI Schema、闲时服务停止及环境资源释放、项目层级的 Catalog/模板管理等特性,并丰富了内置模板生态,进一步简化应用部署及交付流程。
“Gartner 已连续两年将平台工程列为年度10大战略技术趋势之一,并预计未来三年内全球80%的软件工程组织将设立平台团队。”Seal 联合创始人及 CEO 秦小康说道,“Walrus 0.4 的全新设计则为平台工程落地提供了全新动力。通过采用更灵活的上层抽象、降低复杂度,分离运维团队与产品团队的关注点,从而提供绝佳的应用部署和管理体验。”
Walrus GitHub 主页:
https://github.com/seal-io/walrus
Walrus 在线文档:
https://seal-io.github.io/docs/zh/
屏蔽 K8s 及基础设施复杂度加速云原生采纳
应用模型全新升级,实现基础设施无感知
在软件开发及交付的过程中,为适配每个开发阶段的不同目的通常会涉及多种不同类型的环境,每类环境配置不同的底层基础设施。
在过去,运维团队需要根据各类环境的不同基础设施分别为应用系统进行配置,例如,在开发测试环境中提供容器化的 MySQL 数据库供测试使用,在生产环境中提供生产级别的虚拟机数据库部署或者云 RDS 服务。
在 Walrus 0.4 中,我们引入了 Resource 和 ResourceDefinition 两类 API 对象,运维团队只需配置一次,即可支持产品团队以自服务方式在各类环境中以多种模态(即多态)创建并使用相关资源,同时确保满足企业内部最佳实践与合规等需求。
在 Walrus 平台上,运维团队可以通过 ResourceDefinition 声明提供的 Resource(资源)类型以及实际部署资源的底层模板,不同的资源部署模板可以通过自定义规则应用到不同类型的环境、项目等。
研发人员无需关注底层具体实现方式,通过创建 Resource 对象声明需要使用的资源类型及基本信息,可以灵活地在各种环境中自动化创建所需资源并使用。
这一全新的应用模型灵活实现了研发与运维关注点分离和自动化协作,进而屏蔽各类环境中基础设施的复杂度,降低研发人员的认知负担,进一步落地平台工程理念。
统一编排应用系统发布流程
与市面上其他应用平台相比,Walrus 支持从底层基础设施资源(计算、网络、存储等)到应用层服务(容器及非容器)的自动化创建、配置及部署管理,实现完整应用系统各种服务模块和依赖资源模块的统一编排。
统一编排能力在 Walrus 0.4 中得到进一步增强。通过集成 Argo Workflows 作为工作流引擎,Walrus 打通多个应用交付环节,实现一站式应用编排发布。
具体而言,Walrus 可以将基础设施自动化和 PaaS 服务自动化的能力集成到企业现有的 DevOps 流水线当中,赋能产品团队自助服务。同时支持与企业当前的审批流程相结合,并兼容企业现有变更流程的管控规范,实现流程审批和卡点。
应用环境随时启停,助力企业降本增效
随着云原生技术的发展、微服务架构的普及,应用系统的服务及依赖资源的数量迅猛增长。在应用环境管理自动化程度不高的情况下,繁琐的环境部署配置工作使得大量研发测试环境即便空闲时段也处于运行状态,资源长期占用不释放,导致不必要的开销。因此,研发测试环境的资源治理是在降本增效大背景下一项艰巨的任务。
Walrus 支持对全套应用系统的统一编排,并在最新版本中提供环境随时启停的特性。用户可以在闲时停止整个应用环境,回收底层运行的服务和环境资源。在环境停止期间,Walrus 保留整个应用系统的配置数据,便于下次重启时,应用环境中的所有服务和资源可以轻松回到停止前的状态,极大降低资源消耗成本,实现研发测试环境资源的有效治理。
除此之外,利用 Walrus 0.4 中提供的服务/资源草稿(Services/Resources Draft)功能和服务/资源/环境启停和克隆功能,可以在资源有限的情况下一键启停切换多套测试环境,以快速进行测试验证工作,在增加资源利用率的同时提升部署效率并节省成本,切实助力企业降本增效。
其他功能特性一览
环境分类与项目模板库 & 模板
为了增加部署的可控性和灵活性,Walrus 0.4 提供了环境分类以及可供项目单独使用的项目模板库和模板功能,并为产品团队设置模板使用权限。运维团队可以将环境分为开发(Development)、预发布(Staging)以及生产(Production)类型,并为不同类型的环境配置相应的底层基础设施资源。
基于此,运维团队可以细粒度地管理各种类型的环境,分隔 Dev 与 Ops 在同个应用系统(项目)下对不同环境的权限,加强 Dev 与 Ops 在同个项目下的自动化协作能力和关注点与权限分离能力。
动态 UI Schema
由于企业内部各个团队之间技能水平、配置需求各异,用户可以通过 UI Schema 按需定制模板的 UI 表单,例如模板参数的默认值、可选项、参数隐藏、参数分组等。通过统一的定义,对平台用户屏蔽了应用服务与基础设施资源的配置细节,同时解决了静态 UI 僵化的配置参数导致的不良使用体验及额外的使用负担。
丰富内置模板生态
模板是 Walrus 的重要功能之一,它可以将各种基础设施能力、云服务和应用服务封装成可复用的能力模板,帮助用户简化服务和资源的部署。
在 Walrus 0.4 中,我们添加了更多内置模板,如增强的容器化服务与容器化任务模板、PostgreSQL、Redis、Kafka等多云中间件/数据库模板、传统主机部署模板和各种静态模板,可将外部的 MySQL、PostgreSQL、Redis、Kafka等注册成静态服务/静态资源,提升产品易用性。
完全开源,轻松上手
Seal 团队秉持着一以贯之的开源理念和开箱即用的产品设计思路,Walrus 基于 Apache 2.0 许可完全开源,并且仅需一行命令您就可以在已安装 Docker 的电脑上部署 Walrus:
sudo docker run -d --privileged --restart=always -p 80:80 -p 443:443 --name walrus sealio/walrus:v0.4.0
如果您喜欢这个项目,欢迎在 Github 上为我们点亮 🌟
- Walrus GitHub 主页:
https://github.com/seal-io/walrus
- Walrus 在线文档:
https://seal-io.github.io/docs/zh/