SuperAPI AI 工具集

devops-guidance

部署与运维

查看项目

更新于 10-22 19:52

技能介绍

用途

该技能用于指导如何将变更交付到 Snowflake,包括 schema 迁移、存储过程、Streamlit 应用、Notebook、Snowpark 代码等,借助 CI/CD 和数据库变更管理(DCM)工具完成。它帮助选择工具、组织流水线结构,并规避常见反模式。

主要能力

覆盖的问题类型包括:术语(如 DCM、DevOps 与 CI/CD 的区别)、工具选型(schemachange、Flyway、Liquibase、Terraform、DCM Projects)、部署方式(命令式与声明式)、对象类型(如复杂对象部署)、流水线运行位置(外部 CI 与 Snowflake 内部)、Snowflake 原生特性(CREATE OR ALTER、EXECUTE IMMEDIATE FROM、DCM Projects、Git Repositories)以及回滚与失败部署处理。

该技能给出若干核心立场:命令式优于声明式作为流水线驱动;声明式工具在源头定义、脚手架和漂移检测方面仍有价值;复杂对象适合使用 Snowflake CLI(snow);命令式 DCM 推荐从 schemachange 起步;流水线建议运行在外部 CI/CD 系统(GitHub Actions、GitLab CI、Jenkins、Azure DevOps);优先前滚修复而非回滚;工具组合使用属正常。DCM Projects 是 Snowflake 原生声明式选项,需结合对象覆盖和团队需求与命令式方案权衡。EXECUTE IMMEDIATE FROM 不是部署流水线,Snowflake 中的 Git Repository 只是开发循环便利,不替代 CI/CD。

使用方式

工作流分为五步:第一步对问题分类;第二步应用核心立场;第三步按场景推荐工具,例如新接触 DCM 选 schemachange,已用 Flyway/Liquibase 则保持,仅简单对象用任意命令式 DCM 工具,仅复杂对象用 Snowflake CLI,混合场景用 schemachange 加 Snowflake CLI,与 Snowflake 相邻的云基础设施或用 Terraform,账户级环境搭建也可用 Terraform,但需说明状态文件管理、HCL 格式、provider 覆盖不完整和学习曲线等权衡;第四步从参考文件获取资源链接;第五步总结并询问后续方向。完整参考可加载 references/raw-guidance.md。

适用场景

适合需要为 Snowflake 设计 CI/CD 与迁移流程、选择 DCM 工具、判断命令式与声明式部署、部署 Streamlit/Notebook/Snowpark 等复杂对象、决定流水线运行位置、处理失败部署与回滚策略,以及评估 Snowflake 原生特性的团队。

限制

该技能为咨询性质,不执行破坏性操作。资料列出的软检查点包括:问题含糊时应先询问再推荐工具;若用户倾向本指南反对的做法(如 Terraform 驱动流水线、把 EXECUTE IMMEDIATE FROM 当 CI),应先说明权衡并确认再继续。常见错误包括:把 DCM 称为 IaC、把 CREATE OR ALTER 当作 DCM 工具、把 EXECUTE IMMEDIATE FROM 当部署流水线、将 Terraform 直接接入应用对象的部署流水线、混淆 Snowflake CLI(snow)与已弃用的 SnowSQL(snowsql)、认为 Snowflake Git Repository 连接等于 DevOps、以及优先为回滚而设计。