您的位置:  首页 > 技术杂谈 > 正文

Zadig 推出环境睡眠,平均节省一半测试资源

2023-11-21 11:00 https://my.oschina.net/koderover/blog/10149325 Zadig云原生交付 次阅读 条评论

阅读原文 / Zadig 在 Github / Zadig 在 Gitee

推荐阅读:是时候和 Jenkins 说再见了 / Zadig vs. Jenkins 详细比对:时代的选择与开发者之选 / 平台工程和 AI 时代的新 10 亿开发者

Zadig 起源于环境管理工具,逐渐演变成了全面的云原生 CI/CD 平台,最终成为了综合性的 DevOps 解决方案。社区小伙伴一致赞誉它为「中小型企业的得力助手,大型企业的利器」,它有众多独特优势:

· 现有服务接入姿势多无论你的服务定义是 K8s YAML、Helm Chart 还是传统的主机服务,Zadig 都提供了一键接入,实现高效统一的环境治理。

· 运行时管理能力强不仅支持环境配置管理,还包括了服务的重启、更新和配置管理功能,同时还为开发者提供了便捷的实时日志查看和容器内调试工具。

· 多环境管理负担轻基于一份环境配置,Zadig 能够秒级内创建多套完整的环境,一键复制已有环境到新环境,快速回溯到特定版本的环境,并且利用服务变量功能实现不同环境的个性化配置。

· 环境更新效率高支持多服务多环境的并行更新,智能选择空闲环境,避免资源浪费和低效堵塞。

· 环境资源占用少自测模式可快速创建仅包含部分服务的子环境,支持开发者快速开发和修改目标服务,从而显著降低团队协作时的多环境使用成本。

......

过往社区也沉淀了大量的最佳实践供大家参考:

简单极了:Zadig 托管项目支持上千开发者、多业务线、多环境协作

多套环境的数据库隔离,域名访问,差异化配置,香!快解锁!

写代码 5 分钟,上线 2 小时?就离谱!来用用 Zadig 环境负载均衡

在星云科技,我们使用 Zadig 实现多环境并行发布,上千次周部署

谁说 Zadig 只能复制环境?数百微服务一套环境实现高效协作

一、降本增效:推出环境睡眠和唤醒功能

 

随着越来越多的企业深度采用 Zadig,我们关注着环境的易用性、变更效率以及维护负担等基础能力,同时积极努力降低环境资源成本。我们明白工程师并非 24 小时都需要使用环境,因此时刻在线的环境会导致资源浪费和企业成本增加。

在 Zadig 的新版本中,我们引入了环境睡眠/唤醒功能,使环境管理更具智能性。这一功能能够自动缩减应用程序的大小以节省云资源成本。环境睡眠/唤醒适用于多种场景,包括但不限于:

1. 日常开发和测试: 工程师进行自测、联调和集成验收时,根据使用频率,可以轻松设置环境的睡眠和唤醒,以合理利用资源。

2. 不经常迭代的项目: 对于不经常迭代但仍提供在线服务的项目,需要保留多套完整可验证的开发、测试和预发布环境。通过定期设置睡眠,唤起使用时,可以及时释放资源到公共资源池。

3. 定时按需控制: 您可以设置环境的定时睡眠和唤醒,尤其适用于弹性节点资源。例如每天晚上自动睡眠,早上自动唤醒,或者在节假日休息时自动睡眠,工作日自动唤醒,以避免无人使用时仍然占用资源。

这一新功能将使您能够更智能地管理环境,更有效地利用资源,从而降低成本。

二、关于环境使用的成本优化测算

实际资源取决于应用本身的占用及环境使用频率,Zadig 环境睡眠主张从源头减少浪费。

 

以一个典型的微服务项目为例,该项目由 5 名前后端工程师协同,包含 10 个 Java 服务,平均资源 Request 1C2G;1 个 vue 前端服务,资源 Request 1C0.5G;项目迭代过程共包含开发环境 2 套,测试环境 1 套,预发环境 1 套。平均每个服务每人每天构建 2 次;构建时长 6 分钟。

· 正常使用资源消耗:研发阶段大致需要消耗资源 44C82G (前端 4C2G,后端40C80G)。

· 配置环境睡眠策略后:该项目在不同迭代频率下,平均节约 22C41G 约一半资源。

下面将展开介绍如何配置环境睡眠及效果的展示。

01-如何启用环境睡眠能力

 

前提条件:安装 Zadig v1.7.0 版本,系统中存在正在使用的环境。

• 安装 Zadig v2.0.0

• Zadig 环境管理

02-配置一键睡眠/唤醒

进入环境,点击睡眠与唤醒 -> 立即睡眠即可将环境一键睡眠。

需要使用环境时,进入睡眠的环境,点击睡眠与唤醒 -> 立即唤醒即可将环境唤醒恢复可用。

03-配置定时睡眠/唤醒

进入环境,点击睡眠与唤醒 -> 配置定时睡眠和唤醒 Cron 表达式即可。比如,下图示例中每天 22:00 定时睡眠环境,每天 8:00 环境将定时唤醒恢复可用。

04-使用效果一览

睡眠后,环境中所有服务实例副本数将会自动调整为 0,CronJob 会被挂起,节省环境所使用云资源成本。

 

唤醒后,环境中的所有服务会根据服务编排顺序恢复到睡眠之前的状态。

 

参考资料

[1] 安装 Zadig v2.0.0

https://docs.koderover.com/zadig/Zadig%20v2.0.0/stable/quick-install

[2] Zadig 环境管理https://docs.koderover.com/zadig/Zadig%20v2.0.0/project/env/k8s

阅读原文 / Zadig 在 Github / Zadig 在 Gitee

推荐阅读:是时候和 Jenkins 说再见了 / Zadig vs. Jenkins 详细比对:时代的选择与开发者之选 / 平台工程和 AI 时代的新 10 亿开发者

展开阅读全文
  • 0
    感动
  • 0
    路过
  • 0
    高兴
  • 0
    难过
  • 0
    搞笑
  • 0
    无聊
  • 0
    愤怒
  • 0
    同情
热度排行
友情链接