adapt-architecture
정보
이 스킬은 개발자들이 스트랭글러 피그 패턴과 병렬 실행 단계를 활용해 시스템 아키텍처를 점진적으로 마이그레이션할 수 있도록 지원합니다. 다운타임 없이 아키텍처를 발전시키는 과정에서 변환 계획 수립, 점진적 전환, 롤백 설계에 대한 체계적인 지침을 제공합니다. 모놀리식에서 마이크로서비스로 전환하거나 핵심 하위 시스템을 교체하면서 시스템 연속성을 유지해야 할 때 사용하세요.
빠른 설치
Claude Code
추천npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/adapt-architectureClaude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요
문서
架构适配
执行结构性蜕变——将系统架构从当前形态转变为目标形态,同时维持运行连续性。使用绞杀者无花果迁移、蛹化阶段和接口保持,确保系统在转型期间始终正常运行。
适用场景
- 形态评估(参见
assess-form)已将系统分类为 READY - 系统必须在不停机的情况下演进架构以满足新需求
- 从单体迁移到微服务(或反向迁移)
- 在依赖系统继续运行的同时替换核心子系统
- 在保持向后兼容的同时演进数据模型
- 任何必须渐进而非一步到位的架构变更
输入
- 必需:当前形态评估(来自
assess-form或等效分析) - 必需:目标架构(系统应当变成什么样)
- 必需:运行连续性要求(在转型过程中什么不能中断)
- 可选:可用的转型预算(时间、人力、算力)
- 可选:回滚要求(需要能够回退到多远?)
- 可选:并行运行时长(新旧系统同时运行多久)
步骤
第 1 步:设计转型蓝图
规划从当前形态到目标形态的蜕变路径。
- 将转型映射为一系列中间形态:
- 当前形态 → 中间形态 1 → ... → 目标形态
- 每个中间形态必须在运行上可行(能处理流量、通过测试)
- 任何中间形态都不应比当前形态更难维护
- 识别转型接缝:
- 当前形态可以在哪里"切割"以插入新架构?
- 自然接缝:现有接口、模块边界、数据分区
- 人工接缝:专门为实现切割而创建的接口(防腐蚀层)
- 选择蜕变模式:
- 绞杀者无花果:新系统围绕旧系统生长,逐步替换
- 蛹化:旧系统被包裹在新外壳中;在外壳保持外部接口的同时替换内部
- 萌芽:新系统与旧系统并行生长;流量逐步转移(参见
scale-colony了解集群萌芽) - 蜕变式迁移:按依赖顺序分阶段替换组件(先叶后根)
- 设计接口保持层:
- 外部消费者不得感受到中断
- API 版本控制、向后兼容的契约、适配器模式
- 保持层是临时脚手架——规划其移除
Metamorphosis Patterns:
┌───────────────┬───────────────────────────────────────────────────┐
│ Strangler Fig │ New code intercepts routes one by one; │
│ │ old code handles everything else until replaced │
│ │ ┌──────────┐ │
│ │ │ Old ████ │ → │ Old ██ New ██ │ → │ New ████ │ │
│ │ └──────────┘ │
├───────────────┼───────────────────────────────────────────────────┤
│ Chrysalis │ Wrap old system in new interface; replace │
│ │ internals while external shell stays stable │
│ │ ┌──────────┐ ┌──[new]───┐ ┌──[new]───┐ │
│ │ │ old core │ → │ old core │ → │ new core │ │
│ │ └──────────┘ └──────────┘ └──────────┘ │
├───────────────┼───────────────────────────────────────────────────┤
│ Budding │ New system runs in parallel; traffic shifts │
│ │ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │
│ │ │ Old │ │ New │ → │ Old │ │ New │ │
│ │ │ 100% │ │ 0% │ │ 0% │ │ 100% │ │
│ │ └──────┘ └──────┘ └──────┘ └──────┘ │
└───────────────┴───────────────────────────────────────────────────┘
预期结果: 一份转型蓝图,展示中间形态、接缝、所选蜕变模式和接口保持策略。每个步骤都是具体且可测试的。
失败处理: 如果找不到干净的接缝,系统可能需要先进行初步解体(参见 dissolve-form)以创建接缝。如果中间形态在运行上不可行,则转型步骤太大——分解为更小的增量。
第 2 步:搭建脚手架
构建支持蜕变的临时基础设施。
- 创建防腐蚀层:
- 新旧系统之间的薄转换层
- 根据迁移状态将请求路由到适当的系统(新或旧)
- 在新旧数据表示之间进行格式转换
- 该层是保护转型的"茧"
- 搭建并行运行基础设施:
- 新旧系统必须能同时部署
- 功能开关控制哪个系统处理哪些流量
- 比较机制验证新旧系统产生等价结果
- 建立回滚检查点:
- 在每个中间形态,验证是否可以回滚到前一个形态
- 回滚必须比正向转型步骤更快
- 数据迁移必须可逆(或在过渡期间数据必须双写)
- 构建验证工具:
- 自动化测试在每个中间形态验证运行连续性
- 性能基准检测回归
- 数据完整性检查捕获迁移错误
预期结果: 脚手架基础设施(防腐蚀层、并行运行、回滚、验证)在任何转型开始之前就已就位。脚手架本身已经过测试和验证。
失败处理: 如果脚手架成本过高,可以简化:最小可行脚手架是一个功能开关和一个回滚程序。防腐蚀层和并行运行增加了安全性,但对于较小的转型并非总是必需的。
第 3 步:执行渐进式切换
将功能从旧形态增量迁移到新形态。
- 排列组件迁移顺序:
- 从耦合最松、风险最低的组件开始(建立信心)
- 向更关键、更紧密耦合的组件推进
- 将耦合最紧/最关键的组件留到最后(届时团队已有经验)
- 对每个组件: a. 在防腐蚀层后面实现新版本 b. 并行运行:新旧两者处理相同的输入 c. 比较输出——它们应该等价(或差异应是预期的并已记录) d. 确信后,将流量切换到新版本(功能开关翻转) e. 监控异常(切换后提高监控灵敏度) f. 经过稳定期后,下线该组件的旧版本
- 全程维持持续交付:
- 每次切换都是常规部署,不是特殊事件
- 系统始终处于已知、已测试、可运行的状态
- 如果切换引起问题,回滚到前一个状态(该状态仍然可运行)
预期结果: 功能逐组件迁移,每步都有验证。系统始终保持运行。每次切换都为下一次建立信心。
失败处理: 如果并行运行发现差异,说明新实现有 bug——在切换之前修复。如果切换导致性能下降,新组件可能需要优化,或防腐蚀层增加了过多开销。如果团队在迁移中途失去信心,暂停并稳定——处于已知状态的半迁移系统远好于仓促完成的全量迁移。
第 4 步:管理蛹化阶段
驾驭最脆弱的时期——系统处于新旧形态之间。
- 承认蛹化现实:
- 迁移期间,系统部分是旧的,部分是新的
- 这种混合状态本质上比任一纯粹状态更复杂
- 复杂度在迁移中点达到峰值,然后下降
- 蛹化纪律:
- 蛹化阶段不添加新功能(仅进行转型)
- 最少的外部变更(冻结非必要部署)
- 增加监控和值班覆盖
- 每日检查迁移进度和系统健康状况
- 中期蛹化评估:
- 在中途评估:目标形态仍然是正确的目标吗?
- 是否有任何变化(市场、需求、团队)影响了目标?
- 转型应该继续、暂停还是重新定向?
- 保护蛹化:
- 始终保持回滚路径畅通
- 彻底记录当前混合状态(未来的调试者会需要它)
- 抵制在迁移完成前"清理"临时脚手架的诱惑
预期结果: 蛹化阶段被作为一个刻意的、有时间限制的时期来管理,具有更高的纪律和监控。团队理解临时复杂性是安全转型的代价。
失败处理: 如果蛹化阶段拖延太久,混合状态就会变成新常态——这比新旧任一状态都更糟。设定时间限制。如果达到限制,要么加速剩余迁移,要么接受混合状态作为"新形态"并使其稳定。
第 5 步:完成蜕变并稳定
完成转型并移除脚手架。
- 最终切换:
- 将最后的组件迁移到新形态
- 针对完整的新系统运行全套验证
- 在等效生产负载下进行性能测试
- 移除脚手架:
- 下线防腐蚀层(不再需要)
- 移除与迁移相关的功能开关
- 清理并行运行基础设施
- 归档(不要删除)旧系统代码以供参考
- 蜕变后稳定化:
- 以新形态运行 2-4 周,增强监控
- 处理在真实条件下出现的任何问题
- 更新文档以反映新架构
- 回顾:
- 转型中什么做得好?
- 什么比预期更困难?
- 下次我们会有什么不同的做法?
- 更新团队的转型手册
预期结果: 转型完成。系统以新形态运行。脚手架已移除。文档已更新。团队已为未来的转型积累了经验。
失败处理: 如果新形态在切换后不稳定,维持回滚路径并继续稳定化。如果稳定化超过计划时间,可能是新架构存在设计问题——考虑是进行针对性修复还是对最有问题的组件进行部分回滚。
验证清单
- 转型蓝图展示了可行的中间形态
- 脚手架(防腐蚀层、回滚、验证工具)在迁移开始前已就位
- 组件按从最低到最高风险的顺序迁移
- 并行运行在每步验证等价性
- 蛹化阶段有时间限制且遵守功能冻结纪律
- 转型完成后所有脚手架已移除
- 蜕变后稳定期无严重问题
- 回顾总结了经验教训
常见问题
- 一步到位的迁移:试图一次性转型所有内容。这放弃了增量切换的安全性,最大化了影响范围。始终增量迁移
- 永久性脚手架:从不移除的防腐蚀层和功能开关会变成技术债务。将脚手架移除作为转型的一部分来规划,而非事后才考虑
- 蛹化否认:假装混合状态是正常的,会导致在不稳定基础上进行功能开发。承认蛹化阶段并执行其纪律
- 目标固着:过于执着目标架构,以至于忽略了更好替代方案的迹象。中期蛹化评估就是为此而存在的
- 转型疲劳:漫长的迁移会耗尽团队。保持每个转型步骤小到可以在数天而非数周内完成。庆祝里程碑以保持动力
相关技能
assess-form— 前置评估,确定系统是否准备好进行转型dissolve-form— 对于过于僵化无法直接转型的系统;解体创建此处所需的接缝repair-damage— 当转型引入损害时的恢复技能shift-camouflage— 表面适配,可能无需深层架构变更即可满足需求coordinate-swarm— 群体协调为分布式系统的转型排序提供参考scale-colony— 增长压力是架构适配的常见触发因素implement-gitops-workflow— GitOps 为渐进式切换提供部署基础设施review-software-architecture— 用于评估目标架构的互补审查技能
GitHub 저장소
연관 스킬
llamaguard
기타LlamaGuard는 폭력 및 혐오 발언 등 6가지 안전 범주에서 LLM 입력과 출력을 조정하기 위한 Meta의 70-80억 파라미터 모델입니다. 94-95% 정확도를 제공하며 vLLM, Hugging Face 또는 Amazon SageMaker를 사용해 배포할 수 있습니다. 이 기술을 사용하여 AI 애플리케이션에 콘텐츠 필터링 및 안전 가드레일을 손쉽게 통합하세요.
cost-optimization
기타이 Claude Skill은 리소스 적정화, 태깅 전략, 지출 분석을 통해 개발자들이 클라우드 비용을 최적화할 수 있도록 지원합니다. AWS, Azure, GCP에서 클라우드 비용을 절감하고 비용 거버넌스를 구현하기 위한 프레임워크를 제공합니다. 인프라 비용을 분석하거나, 리소스를 적정화하거나, 예산 제약을 충족해야 할 때 사용하세요.
quantizing-models-bitsandbytes
기타이 스킬은 bitsandbytes를 사용하여 LLM을 8비트 또는 4비트 정밀도로 양자화하며, 최소한의 정확도 손실로 50-75%의 메모리 감소를 달성합니다. 제한된 GPU 메모리에서 더 큰 모델을 실행하거나 추론을 가속화하는 데 이상적이며, INT8, NF4, FP4와 같은 형식을 지원합니다. 이 스킬은 HuggingFace Transformers와 통합되어 QLoRA 학습 및 8비트 옵티마이저를 가능하게 합니다.
dispatching-parallel-agents
기타이 Claude Skill은 3개 이상의 독립적인 문제를 동시에 조사하고 해결하기 위해 다중 에이전트를 배치합니다. 공유 상태나 의존성 없이 해결 가능한 무관련 장애 시나리오에 맞게 설계되었습니다. 핵심 기능은 병렬 문제 해결로, 각 독립 문제 영역마다 하나의 에이전트를 할당하여 효율성을 극대화합니다.
