mcpField
C
cloud-native-patterns

cloud-native-patterns

github.com/dralgorhythm云与 DevOps12863 次安装14 周前更新
代码仓库

关于 cloud-native-patterns

面向开发者的云原生应用设计参考,涵盖十二要素原则、韧性模式、服务通信、健康检查和容器实践。

主要功能

  1. 01十二要素原则
  2. 02熔断、重试与舱壁模式
  3. 03同步与异步通信
  4. 04健康与就绪检查
  5. 05容器实践

适用场景

  1. 01审视云原生应用设计
  2. 02为服务调用增加韧性
  3. 03规划健康端点与容器构建

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dralgorhythm/claude-agentic-framework --skill cloud-native-patterns

安装后在 Claude Code 中输入/cloud-native-patterns确认已加载。

详细介绍

云原生模式

十二要素应用

  1. 代码库:一个代码库,多次部署
  2. 依赖项:显式声明并隔离
  3. 配置:存储在环境中
  4. 后端服务:视为附加资源
  5. 构建、发布、运行:严格分离各阶段
  6. 进程:以无状态进程运行
  7. 端口绑定:通过端口导出服务
  8. 并发:通过进程模型横向扩展
  9. 可处置性:快速启动并优雅关闭
  10. 开发/生产环境一致性:保持环境相似
  11. 日志:视为事件流
  12. 管理进程:作为一次性进程运行

弹性模式

熔断器

快速失败,防止故障级联。

class CircuitBreaker {
  private failures = 0;
  private lastFailure?: Date;

  async call<T>(fn: () => Promise<T>): Promise<T> {
    if (this.isOpen()) {
      throw new Error('Circuit is open');
    }
    try {
      const result = await fn();
      this.reset();
      return result;
    } catch (error) {
      this.recordFailure();
      throw error;
    }
  }
}
带退避的重试
async function withRetry<T>(
  fn: () => Promise<T>,
  maxRetries = 3
): Promise<T> {
  for (let i = 0; i < maxRetries; i++) {
    try {
      return await fn();
    } catch (error) {
      if (i === maxRetries - 1) throw error;
      await sleep(Math.pow(2, i) * 1000); // Exponential backoff
    }
  }
}
舱壁

隔离故障,防止影响整个系统。

服务通信

同步
  • REST/HTTP
  • gRPC
异步
  • 消息队列(RabbitMQ、SQS)
  • 事件流(Kafka)

健康检查

app.get('/health', (req, res) => {
  res.json({ status: 'healthy' });
});

app.get('/ready', async (req, res) => {
  const dbHealthy = await checkDatabase();
  const cacheHealthy = await checkCache();

  if (dbHealthy && cacheHealthy) {
    res.json({ status: 'ready' });
  } else {
    res.status(503).json({ status: 'not ready' });
  }
});

容器最佳实践

  • 每个容器运行一个进程
  • 使用多阶段构建
  • 以非 root 用户运行
  • 使用健康检查
  • 保持镜像精简

评论

支持 Markdown