<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>cozyqh</title>
  
  <subtitle>cozyqh</subtitle>
  <link href="https://cozyqh.com/atom.xml" rel="self"/>
  
  <link href="https://cozyqh.com/"/>
  <updated>2026-01-14T02:25:59.537Z</updated>
  <id>https://cozyqh.com/</id>
  
  <author>
    <name>cozyqh</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>基于 Jotai 与 GitOps 事件流构建数据驱动的内部开发者平台仪表盘</title>
    <link href="https://cozyqh.com/3364314146/"/>
    <id>https://cozyqh.com/3364314146/</id>
    <published>2023-11-15T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.537Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;我们团队的CI/CD流水线一度是个黑盒。部署在发生，功能在上缐，但我们无法量化回答几个关键问题：我们的部署频率是多少？一个功能从提交到生产需要多久？某个应用的发布成功率最近是上升还是下降？DORA指标对我们来说更像是理论概念，而不是可操作的数据。最初的想法很直接：用脚本去解</summary>
        
      
    
    
    
    <category term="平台工程" scheme="https://cozyqh.com/categories/%E5%B9%B3%E5%8F%B0%E5%B7%A5%E7%A8%8B/"/>
    
    
    <category term="Jotai" scheme="https://cozyqh.com/tags/Jotai/"/>
    
    <category term="CI/CD 与 GitOps" scheme="https://cozyqh.com/tags/CI-CD-%E4%B8%8E-GitOps/"/>
    
    <category term="数据湖与仓库" scheme="https://cozyqh.com/tags/%E6%95%B0%E6%8D%AE%E6%B9%96%E4%B8%8E%E4%BB%93%E5%BA%93/"/>
    
    <category term="内部开发者平台" scheme="https://cozyqh.com/tags/%E5%86%85%E9%83%A8%E5%BC%80%E5%8F%91%E8%80%85%E5%B9%B3%E5%8F%B0/"/>
    
    <category term="DORA" scheme="https://cozyqh.com/tags/DORA/"/>
    
  </entry>
  
  <entry>
    <title>为推荐系统设计模型部署流水线的架构权衡 GitLab CI/CD 与 CircleCI</title>
    <link href="https://cozyqh.com/9470233217/"/>
    <id>https://cozyqh.com/9470233217/</id>
    <published>2023-10-27T11:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.540Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;h3 id=&quot;定义一个棘手的技术问题&quot;&gt;&lt;a href=&quot;#定义一个棘手的技术问题&quot; class=&quot;headerlink&quot;</summary>
        
      
    
    
    
    <category term="DevOps" scheme="https://cozyqh.com/categories/DevOps/"/>
    
    
    <category term="推荐系统" scheme="https://cozyqh.com/tags/%E6%8E%A8%E8%8D%90%E7%B3%BB%E7%BB%9F/"/>
    
    <category term="GitLab CI/CD" scheme="https://cozyqh.com/tags/GitLab-CI-CD/"/>
    
    <category term="CircleCI" scheme="https://cozyqh.com/tags/CircleCI/"/>
    
    <category term="MLOps" scheme="https://cozyqh.com/tags/MLOps/"/>
    
  </entry>
  
  <entry>
    <title>Kubernetes日志架构的成本优化决策 从ELK栈迁移至Loki并集成Jib</title>
    <link href="https://cozyqh.com/2083004235/"/>
    <id>https://cozyqh.com/2083004235/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.536Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;我们所维护的Kubernetes平台上运行着超过200个Java微服务，而基础设施成本的持续攀升已成为一个无法回避的棘手问题。经过初步的成本归因分析，两个主要的消耗点浮出水面：以ELK为核心的集中式日志系统，以及效率低下的CI/CD容器构建流程。尤其是日志系统，其Elast</summary>
        
      
    
    
    
    <category term="云原生" scheme="https://cozyqh.com/categories/%E4%BA%91%E5%8E%9F%E7%94%9F/"/>
    
    
    <category term="ELK Stack" scheme="https://cozyqh.com/tags/ELK-Stack/"/>
    
    <category term="Jib" scheme="https://cozyqh.com/tags/Jib/"/>
    
    <category term="Loki" scheme="https://cozyqh.com/tags/Loki/"/>
    
    <category term="Kubernetes" scheme="https://cozyqh.com/tags/Kubernetes/"/>
    
    <category term="FinOps" scheme="https://cozyqh.com/tags/FinOps/"/>
    
  </entry>
  
  <entry>
    <title>在 Flask 推荐系统中实现基于 Saga 的分布式事务与 Sentry 异常治理</title>
    <link href="https://cozyqh.com/2340973903/"/>
    <id>https://cozyqh.com/2340973903/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.536Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;一个推荐系统的反馈闭环，看似简单，实则暗流涌动。当一个用户点击或收藏了我们推荐的内容，后台需要触发一系列操作：更新用户画像服务、调整物品特征向量、记录交互日志用于模型重训练，甚至可能要调用一个外部的积分服务。&lt;/p&gt;
&lt;pre class=&quot;line-numbers</summary>
        
      
    
    
    
    <category term="后端架构" scheme="https://cozyqh.com/categories/%E5%90%8E%E7%AB%AF%E6%9E%B6%E6%9E%84/"/>
    
    
    <category term="Flask" scheme="https://cozyqh.com/tags/Flask/"/>
    
    <category term="Sentry" scheme="https://cozyqh.com/tags/Sentry/"/>
    
    <category term="推荐系统" scheme="https://cozyqh.com/tags/%E6%8E%A8%E8%8D%90%E7%B3%BB%E7%BB%9F/"/>
    
    <category term="分布式事务" scheme="https://cozyqh.com/tags/%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1/"/>
    
    <category term="Saga" scheme="https://cozyqh.com/tags/Saga/"/>
    
  </entry>
  
  <entry>
    <title>构建从Oracle CDC到Recoil前端的实时数据流架构 Ray Actor的实现与Rollup集成考量</title>
    <link href="https://cozyqh.com/2260105487/"/>
    <id>https://cozyqh.com/2260105487/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.536Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;一个棘手的技术挑战摆在面前：一套承载着核心交易的Oracle</summary>
        
      
    
    
    
    <category term="分布式架构" scheme="https://cozyqh.com/categories/%E5%88%86%E5%B8%83%E5%BC%8F%E6%9E%B6%E6%9E%84/"/>
    
    
    <category term="Ray" scheme="https://cozyqh.com/tags/Ray/"/>
    
    <category term="Oracle" scheme="https://cozyqh.com/tags/Oracle/"/>
    
    <category term="Recoil" scheme="https://cozyqh.com/tags/Recoil/"/>
    
    <category term="Rollup" scheme="https://cozyqh.com/tags/Rollup/"/>
    
    <category term="CDC" scheme="https://cozyqh.com/tags/CDC/"/>
    
    <category term="分布式" scheme="https://cozyqh.com/tags/%E5%88%86%E5%B8%83%E5%BC%8F/"/>
    
  </entry>
  
  <entry>
    <title>基于 OpenResty 与 Lua 构建动态 Laravel 应用防火墙的架构权衡与实现</title>
    <link href="https://cozyqh.com/2755938108/"/>
    <id>https://cozyqh.com/2755938108/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.536Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;在 Laravel 框架内通过中间件（Middleware）实现应用层防火墙（WAF）是一种常见且直接的方案。然而，当系统面临高并发流量或需要抵御复杂的、资源消耗型的攻击（如复杂的正则表达式注入）时，纯粹依赖 PHP 中间件的 WAF 会迅速成为性能瓶颈。每个进入</summary>
        
      
    
    
    
    <category term="后端架构" scheme="https://cozyqh.com/categories/%E5%90%8E%E7%AB%AF%E6%9E%B6%E6%9E%84/"/>
    
    
    <category term="Lua" scheme="https://cozyqh.com/tags/Lua/"/>
    
    <category term="API 与架构" scheme="https://cozyqh.com/tags/API-%E4%B8%8E%E6%9E%B6%E6%9E%84/"/>
    
    <category term="Laravel" scheme="https://cozyqh.com/tags/Laravel/"/>
    
    <category term="防火墙" scheme="https://cozyqh.com/tags/%E9%98%B2%E7%81%AB%E5%A2%99/"/>
    
    <category term="OpenResty" scheme="https://cozyqh.com/tags/OpenResty/"/>
    
    <category term="Redis" scheme="https://cozyqh.com/tags/Redis/"/>
    
  </entry>
  
  <entry>
    <title>构建支持 Nuxt.js 与 Python CV 服务的统一 Monorepo 及其高效 CI/CD 实践</title>
    <link href="https://cozyqh.com/3317398632/"/>
    <id>https://cozyqh.com/3317398632/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.537Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;项目初期，我们只有一个简单的 Nuxt.js 前端应用和一个独立的 Python FastAPI 后端，用于处理计算机视觉（CV）推理任务。它们位于两个独立的 Git 仓库中。很快，这种分离架构的弊端开始显现：API</summary>
        
      
    
    
    
    <category term="DevOps" scheme="https://cozyqh.com/categories/DevOps/"/>
    
    
    <category term="Monorepo" scheme="https://cozyqh.com/tags/Monorepo/"/>
    
    <category term="Nuxt.js" scheme="https://cozyqh.com/tags/Nuxt-js/"/>
    
    <category term="CV" scheme="https://cozyqh.com/tags/CV/"/>
    
    <category term="Jupyter" scheme="https://cozyqh.com/tags/Jupyter/"/>
    
    <category term="CI/CD" scheme="https://cozyqh.com/tags/CI-CD/"/>
    
    <category term="Turborepo" scheme="https://cozyqh.com/tags/Turborepo/"/>
    
    <category term="Docker" scheme="https://cozyqh.com/tags/Docker/"/>
    
  </entry>
  
  <entry>
    <title>构建基于RabbitMQ与OpenTelemetry的可观测异步SSG构建管道</title>
    <link href="https://cozyqh.com/3708991946/"/>
    <id>https://cozyqh.com/3708991946/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.537Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;我们维护的一个大型文档中心遇到了瓶颈。它由超过一万个Markdown文件构成，通过Next.js的SSG（静态站点生成）功能构建。最初的方案是简单地通过GitLab的webhook触发一个bash脚本，&lt;code&gt;git pull&lt;/code&gt;然后&lt;code&gt;npm</summary>
        
      
    
    
    
    <category term="架构与设计" scheme="https://cozyqh.com/categories/%E6%9E%B6%E6%9E%84%E4%B8%8E%E8%AE%BE%E8%AE%A1/"/>
    
    
    <category term="Ant Design" scheme="https://cozyqh.com/tags/Ant-Design/"/>
    
    <category term="可观测性" scheme="https://cozyqh.com/tags/%E5%8F%AF%E8%A7%82%E6%B5%8B%E6%80%A7/"/>
    
    <category term="SSG" scheme="https://cozyqh.com/tags/SSG/"/>
    
    <category term="RabbitMQ" scheme="https://cozyqh.com/tags/RabbitMQ/"/>
    
    <category term="OpenTelemetry" scheme="https://cozyqh.com/tags/OpenTelemetry/"/>
    
    <category term="Node.js" scheme="https://cozyqh.com/tags/Node-js/"/>
    
  </entry>
  
  <entry>
    <title>构建基于 Kotlin Multiplatform 的强化学习感知型 EKS 自定义调度器并以 mTLS 强化安全</title>
    <link href="https://cozyqh.com/3930227754/"/>
    <id>https://cozyqh.com/3930227754/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.537Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;默认的 Kubernetes 调度器在通用工作负载上表现出色，但对于分布式强化学习（RL）这类通信密集型任务，其标准的 Pod 打散策略往往会成为性能瓶颈。一个典型的 RL</summary>
        
      
    
    
    
    <category term="云原生" scheme="https://cozyqh.com/categories/%E4%BA%91%E5%8E%9F%E7%94%9F/"/>
    
    
    <category term="mTLS" scheme="https://cozyqh.com/tags/mTLS/"/>
    
    <category term="AWS EKS" scheme="https://cozyqh.com/tags/AWS-EKS/"/>
    
    <category term="Kotlin Multiplatform" scheme="https://cozyqh.com/tags/Kotlin-Multiplatform/"/>
    
    <category term="强化学习" scheme="https://cozyqh.com/tags/%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0/"/>
    
    <category term="Vitest" scheme="https://cozyqh.com/tags/Vitest/"/>
    
  </entry>
  
  <entry>
    <title>为 Fastify 构建由 Apollo 动态驱动的熔断器中间件</title>
    <link href="https://cozyqh.com/4254305148/"/>
    <id>https://cozyqh.com/4254305148/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.537Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;一个下游服务的网络抖动，直接导致我们核心交易链路的三个 Pod 全部雪崩。复盘时，原因清晰得令人沮丧：对该下游服务的调用，虽然包裹在 &lt;code&gt;try-catch&lt;/code&gt; 中，却没有设置超时，更没有熔断机制。请求在 TCP 层面挂起，最终耗尽了 Fastify</summary>
        
      
    
    
    
    <category term="后端架构" scheme="https://cozyqh.com/categories/%E5%90%8E%E7%AB%AF%E6%9E%B6%E6%9E%84/"/>
    
    
    <category term="Node.js" scheme="https://cozyqh.com/tags/Node-js/"/>
    
    <category term="分布式与中间件" scheme="https://cozyqh.com/tags/%E5%88%86%E5%B8%83%E5%BC%8F%E4%B8%8E%E4%B8%AD%E9%97%B4%E4%BB%B6/"/>
    
    <category term="Apollo Client" scheme="https://cozyqh.com/tags/Apollo-Client/"/>
    
    <category term="Fastify" scheme="https://cozyqh.com/tags/Fastify/"/>
    
    <category term="熔断器" scheme="https://cozyqh.com/tags/%E7%86%94%E6%96%AD%E5%99%A8/"/>
    
  </entry>
  
  <entry>
    <title>在微前端架构中实现贯穿 Algolia 与 Echo 的全链路追踪</title>
    <link href="https://cozyqh.com/4738056257/"/>
    <id>https://cozyqh.com/4738056257/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;一个看似简单的搜索请求，在现代微前端架构下，其生命周期可能横跨数个独立的技术边界。用户在浏览器的一个微前端（MFE）组件中输入查询，请求首先抵达作为后端服务（BFF）的 Go 应用，该应用再与第三方 SaaS 服务 Algolia</summary>
        
      
    
    
    
    <category term="可观测性" scheme="https://cozyqh.com/categories/%E5%8F%AF%E8%A7%82%E6%B5%8B%E6%80%A7/"/>
    
    
    <category term="OpenTelemetry" scheme="https://cozyqh.com/tags/OpenTelemetry/"/>
    
    <category term="Micro-frontends" scheme="https://cozyqh.com/tags/Micro-frontends/"/>
    
    <category term="Algolia" scheme="https://cozyqh.com/tags/Algolia/"/>
    
    <category term="Echo" scheme="https://cozyqh.com/tags/Echo/"/>
    
    <category term="Observability" scheme="https://cozyqh.com/tags/Observability/"/>
    
  </entry>
  
  <entry>
    <title>基于BDD规范与Nacos动态配置的时序事件处理引擎实现</title>
    <link href="https://cozyqh.com/4357859310/"/>
    <id>https://cozyqh.com/4357859310/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.537Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;项目中的监控告警规则一开始是硬编码在代码里的。每次业务需要调整一个阈值、增加一个告警维度，或者改变一个时间窗口，都意味着一次完整的“修改-测试-发布”流程。这不仅响应缓慢，而且风险很高。特别是对于时序数据驱动的复杂规则，比如“当A服务在过去5分钟内的P99延迟超过200ms</summary>
        
      
    
    
    
    <category term="分布式架构" scheme="https://cozyqh.com/categories/%E5%88%86%E5%B8%83%E5%BC%8F%E6%9E%B6%E6%9E%84/"/>
    
    
    <category term="BDD" scheme="https://cozyqh.com/tags/BDD/"/>
    
    <category term="Nacos" scheme="https://cozyqh.com/tags/Nacos/"/>
    
    <category term="MyBatis" scheme="https://cozyqh.com/tags/MyBatis/"/>
    
    <category term="TimescaleDB" scheme="https://cozyqh.com/tags/TimescaleDB/"/>
    
    <category term="Redux" scheme="https://cozyqh.com/tags/Redux/"/>
    
  </entry>
  
  <entry>
    <title>构建贯穿前端构建与后端运行时的统一可观测性管道</title>
    <link href="https://cozyqh.com/0117340889/"/>
    <id>https://cozyqh.com/0117340889/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.536Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;一个棘手的线上问题排查，往往始于一个模糊的用户反馈：“更新之后，某个页面加载不出来了”。日志里充满了各种请求记录，分布式追踪系统也展示了完整的调用链，但我们始终无法将用户的这次失败操作，精确关联到某一次特定的前端构建产物。究竟是哪次提交引入的 CSS 或</summary>
        
      
    
    
    
    <category term="可观测性" scheme="https://cozyqh.com/categories/%E5%8F%AF%E8%A7%82%E6%B5%8B%E6%80%A7/"/>
    
    
    <category term="OpenTelemetry" scheme="https://cozyqh.com/tags/OpenTelemetry/"/>
    
    <category term="Python" scheme="https://cozyqh.com/tags/Python/"/>
    
    <category term="PostCSS" scheme="https://cozyqh.com/tags/PostCSS/"/>
    
    <category term="Fluentd" scheme="https://cozyqh.com/tags/Fluentd/"/>
    
    <category term="框架" scheme="https://cozyqh.com/tags/%E6%A1%86%E6%9E%B6/"/>
    
  </entry>
  
  <entry>
    <title>在敏捷流程中集成基于Neo4j的Java依赖风险图谱分析</title>
    <link href="https://cozyqh.com/6433041659/"/>
    <id>https://cozyqh.com/6433041659/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;最近一次安全审计后，团队的敏捷节奏几乎被打乱。一份长达20页的PDF报告，列出了我们核心单体应用中的17个“严重”和42个“高危”CVE漏洞。报告是一份扁平的列表，每个漏洞都附带着一个令人不安的CVSS分数。开发团队陷入了困境：我们应该先修复哪个？那个被标记为CVSS</summary>
        
      
    
    
    
    <category term="DevSecOps" scheme="https://cozyqh.com/categories/DevSecOps/"/>
    
    
    <category term="敏捷开发" scheme="https://cozyqh.com/tags/%E6%95%8F%E6%8D%B7%E5%BC%80%E5%8F%91/"/>
    
    <category term="安全" scheme="https://cozyqh.com/tags/%E5%AE%89%E5%85%A8/"/>
    
    <category term="Neo4j" scheme="https://cozyqh.com/tags/Neo4j/"/>
    
    <category term="Java" scheme="https://cozyqh.com/tags/Java/"/>
    
  </entry>
  
  <entry>
    <title>基于 Ktor、Qwik 与 GCP Cloud Run 实现 Hugging Face 模型的流式响应架构</title>
    <link href="https://cozyqh.com/6166801663/"/>
    <id>https://cozyqh.com/6166801663/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;在真实项目中，将一个响应缓慢的 AI 模型（例如来自 Hugging Face Transformers 的生成式模型）集成到前端应用，最直接的痛点就是用户体验的断裂。一个标准的 RESTful &lt;code&gt;POST&lt;/code&gt;</summary>
        
      
    
    
    
    <category term="全栈开发" scheme="https://cozyqh.com/categories/%E5%85%A8%E6%A0%88%E5%BC%80%E5%8F%91/"/>
    
    
    <category term="Qwik" scheme="https://cozyqh.com/tags/Qwik/"/>
    
    <category term="Google Cloud (GCP)" scheme="https://cozyqh.com/tags/Google-Cloud-GCP/"/>
    
    <category term="UnoCSS" scheme="https://cozyqh.com/tags/UnoCSS/"/>
    
    <category term="Ktor" scheme="https://cozyqh.com/tags/Ktor/"/>
    
    <category term="Hugging Face Transformers" scheme="https://cozyqh.com/tags/Hugging-Face-Transformers/"/>
    
  </entry>
  
  <entry>
    <title>使用 Koa GitHub Actions 和分布式锁构建一个健壮的 Python SciPy 计算工作流</title>
    <link href="https://cozyqh.com/6549761586/"/>
    <id>https://cozyqh.com/6549761586/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;我们面临一个棘手的需求：为内部的风控团队提供一个API，能够对上传的数百万条交易记录进行实时的异常点检测。Node.js生态，特别是Koa，处理高并发的I/O请求是家常便饭，但这次的核心计算依赖于Python的SciPy库，特别是其中的信号处理和统计模块。最直接的方案，在K</summary>
        
      
    
    
    
    <category term="分布式架构" scheme="https://cozyqh.com/categories/%E5%88%86%E5%B8%83%E5%BC%8F%E6%9E%B6%E6%9E%84/"/>
    
    
    <category term="GitHub Actions" scheme="https://cozyqh.com/tags/GitHub-Actions/"/>
    
    <category term="Koa" scheme="https://cozyqh.com/tags/Koa/"/>
    
    <category term="SciPy" scheme="https://cozyqh.com/tags/SciPy/"/>
    
    <category term="分布式锁" scheme="https://cozyqh.com/tags/%E5%88%86%E5%B8%83%E5%BC%8F%E9%94%81/"/>
    
  </entry>
  
  <entry>
    <title>使用 Tonic gRPC 和 SSE 构建 Puppet 节点的自动化凭证轮换控制平面</title>
    <link href="https://cozyqh.com/7340907804/"/>
    <id>https://cozyqh.com/7340907804/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;配置管理节点（例如 Puppet Agent）的凭证轮换一直是个棘手的运维问题。传统的基于 Cron</summary>
        
      
    
    
    
    <category term="DevOps" scheme="https://cozyqh.com/categories/DevOps/"/>
    
    
    <category term="Server-Sent Events (SSE)" scheme="https://cozyqh.com/tags/Server-Sent-Events-SSE/"/>
    
    <category term="Puppet" scheme="https://cozyqh.com/tags/Puppet/"/>
    
    <category term="Tonic" scheme="https://cozyqh.com/tags/Tonic/"/>
    
    <category term="GitHub" scheme="https://cozyqh.com/tags/GitHub/"/>
    
    <category term="Rust" scheme="https://cozyqh.com/tags/Rust/"/>
    
  </entry>
  
  <entry>
    <title>构建从私有VPC经由RabbitMQ到Snowflake的安全异步数据管道</title>
    <link href="https://cozyqh.com/7501391522/"/>
    <id>https://cozyqh.com/7501391522/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;一个棘手的架构挑战摆在面前：部署在AWS私有VPC（Virtual Private</summary>
        
      
    
    
    
    <category term="数据工程" scheme="https://cozyqh.com/categories/%E6%95%B0%E6%8D%AE%E5%B7%A5%E7%A8%8B/"/>
    
    
    <category term="RabbitMQ" scheme="https://cozyqh.com/tags/RabbitMQ/"/>
    
    <category term="VPC" scheme="https://cozyqh.com/tags/VPC/"/>
    
    <category term="Snowflake" scheme="https://cozyqh.com/tags/Snowflake/"/>
    
    <category term="Data Pipeline" scheme="https://cozyqh.com/tags/Data-Pipeline/"/>
    
    <category term="Architecture" scheme="https://cozyqh.com/tags/Architecture/"/>
    
  </entry>
  
  <entry>
    <title>在 DigitalOcean 上使用 Redis Streams 构建具备幂等消费与死信队列的事件处理器</title>
    <link href="https://cozyqh.com/7672134381/"/>
    <id>https://cozyqh.com/7672134381/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.539Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;我们团队最近接手了一个需求：为用户行为生成异步的、可审计的轨迹记录。这个功能本身不复杂，但对系统的要求却很苛刻：主流程不能被阻塞，记录必须保证最终送达，且不能因为重复投递导致数据错乱。起初，团队的几个同事本能地想到了 Kafka。毫无疑问，Kafka</summary>
        
      
    
    
    
    <category term="后端架构" scheme="https://cozyqh.com/categories/%E5%90%8E%E7%AB%AF%E6%9E%B6%E6%9E%84/"/>
    
    
    <category term="Redis" scheme="https://cozyqh.com/tags/Redis/"/>
    
    <category term="事件驱动架构 (EDA)" scheme="https://cozyqh.com/tags/%E4%BA%8B%E4%BB%B6%E9%A9%B1%E5%8A%A8%E6%9E%B6%E6%9E%84-EDA/"/>
    
    <category term="NoSQL" scheme="https://cozyqh.com/tags/NoSQL/"/>
    
    <category term="DigitalOcean" scheme="https://cozyqh.com/tags/DigitalOcean/"/>
    
    <category term="Go" scheme="https://cozyqh.com/tags/Go/"/>
    
  </entry>
  
  <entry>
    <title>利用 GitHub Actions 为 Algolia 索引实现零停机时间的蓝绿部署自动化</title>
    <link href="https://cozyqh.com/8281229564/"/>
    <id>https://cozyqh.com/8281229564/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.539Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;我们团队最初同步 Algolia 索引的方式非常直接：在部署流程的最后，执行一个 PHP 脚本，调用 &lt;code&gt;scout:import&lt;/code&gt; 命令。对于一个只有几千条记录的小型项目，这没什么问题。但当数据量增长到百万级别，这个操作就成了发布的噩梦。一次完整的</summary>
        
      
    
    
    
    <category term="DevOps" scheme="https://cozyqh.com/categories/DevOps/"/>
    
    
    <category term="CI/CD" scheme="https://cozyqh.com/tags/CI-CD/"/>
    
    <category term="Algolia" scheme="https://cozyqh.com/tags/Algolia/"/>
    
    <category term="GitHub Actions" scheme="https://cozyqh.com/tags/GitHub-Actions/"/>
    
    <category term="PHP" scheme="https://cozyqh.com/tags/PHP/"/>
    
    <category term="DevOps" scheme="https://cozyqh.com/tags/DevOps/"/>
    
  </entry>
  
  <entry>
    <title>构建基于 Fastify 与 ASP.NET Core 的异构 MLOps 推理服务</title>
    <link href="https://cozyqh.com/8450865954/"/>
    <id>https://cozyqh.com/8450865954/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.539Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;我们的技术栈从来不是单一的。模型训练团队主力使用 Python 和 MLflow，而核心业务后端则由一个稳定的 ASP.NET Core 集群承载。最近，一个新的需求是将模型推理能力暴露为高性能、低延迟的 API，前端和移动端团队则更偏爱 Node.js 生态的轻量级</summary>
        
      
    
    
    
    <category term="架构与设计" scheme="https://cozyqh.com/categories/%E6%9E%B6%E6%9E%84%E4%B8%8E%E8%AE%BE%E8%AE%A1/"/>
    
    
    <category term="Fastify" scheme="https://cozyqh.com/tags/Fastify/"/>
    
    <category term="DigitalOcean" scheme="https://cozyqh.com/tags/DigitalOcean/"/>
    
    <category term="ASP.NET Core" scheme="https://cozyqh.com/tags/ASP-NET-Core/"/>
    
    <category term="MLflow" scheme="https://cozyqh.com/tags/MLflow/"/>
    
    <category term="OCI" scheme="https://cozyqh.com/tags/OCI/"/>
    
  </entry>
  
  <entry>
    <title>使用Terraform构建集成OIDC、Fluentd与Solr的Celery分布式任务可观测性管道</title>
    <link href="https://cozyqh.com/9058213474/"/>
    <id>https://cozyqh.com/9058213474/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.539Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;我们的一个核心业务严重依赖Celery进行异步任务处理，随着系统复杂度的攀升，这套体系逐渐变成了一个难以捉摸的“黑盒”。当任务失败时，追溯其根源就像大海捞针；性能瓶颈隐藏在成千上万个执行节点中，无法定位；更关键的是，审计需求要求我们能明确追踪到每个任务链的触发源头，而我们现</summary>
        
      
    
    
    
    <category term="DevOps" scheme="https://cozyqh.com/categories/DevOps/"/>
    
    
    <category term="Fluentd" scheme="https://cozyqh.com/tags/Fluentd/"/>
    
    <category term="Terraform" scheme="https://cozyqh.com/tags/Terraform/"/>
    
    <category term="OpenID Connect" scheme="https://cozyqh.com/tags/OpenID-Connect/"/>
    
    <category term="Solr" scheme="https://cozyqh.com/tags/Solr/"/>
    
    <category term="Celery" scheme="https://cozyqh.com/tags/Celery/"/>
    
  </entry>
  
  <entry>
    <title>构建基于 Redis Streams 与 Go-Fiber 的准实时 Solr 索引管道</title>
    <link href="https://cozyqh.com/1319231631/"/>
    <id>https://cozyqh.com/1319231631/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.536Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;一个常见的痛点在于，当核心业务数据发生变更时，如何高效且可靠地同步到搜索引擎中。传统的做法是在业务逻辑中直接调用搜索引擎的API进行同步更新。这种强耦合的设计在生产环境中脆弱不堪：搜索引擎一次抖动或网络延迟，就会直接拖慢主业务的API响应时间，甚至导致整个写操作失败。如果索</summary>
        
      
    
    
    
    <category term="后端架构" scheme="https://cozyqh.com/categories/%E5%90%8E%E7%AB%AF%E6%9E%B6%E6%9E%84/"/>
    
    
    <category term="Solr" scheme="https://cozyqh.com/tags/Solr/"/>
    
    <category term="Go-Fiber" scheme="https://cozyqh.com/tags/Go-Fiber/"/>
    
    <category term="Vue.js" scheme="https://cozyqh.com/tags/Vue-js/"/>
    
    <category term="Redis Streams" scheme="https://cozyqh.com/tags/Redis-Streams/"/>
    
  </entry>
  
  <entry>
    <title>在Consul Connect服务网格中构建和测试一个强制mTLS的JavaScript CQRS系统</title>
    <link href="https://cozyqh.com/2003986846/"/>
    <id>https://cozyqh.com/2003986846/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.536Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;在一个典型的微服务架构中，服务间的通信默认是明文的。这是一个长期被忽视但却致命的安全隐患。传统的解决方案是手动管理TLS证书，但这在服务数量增多时会迅速演变成一场运维灾难。我们的目标是为一套基于JavaScript的CQRS（命令查询职责分离）系统强制启用mTLS，但前提是</summary>
        
      
    
    
    
    <category term="分布式系统" scheme="https://cozyqh.com/categories/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F/"/>
    
    
    <category term="CQRS" scheme="https://cozyqh.com/tags/CQRS/"/>
    
    <category term="Jest" scheme="https://cozyqh.com/tags/Jest/"/>
    
    <category term="JavaScript" scheme="https://cozyqh.com/tags/JavaScript/"/>
    
    <category term="Consul Connect" scheme="https://cozyqh.com/tags/Consul-Connect/"/>
    
  </entry>
  
  <entry>
    <title>使用 Raft 与 WebSocket 构建一个支持实时可观测性的分布式 MapReduce 任务调度器</title>
    <link href="https://cozyqh.com/9691529423/"/>
    <id>https://cozyqh.com/9691529423/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.540Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;Hadoop YARN 的 JobTracker 对于许多特定场景而言，是一个过于庞大且迟钝的黑箱。任务提交后，我们能做的往往只有等待，并通过一个刷新率感人的 Web UI</summary>
        
      
    
    
    
    <category term="分布式系统" scheme="https://cozyqh.com/categories/%E5%88%86%E5%B8%83%E5%BC%8F%E7%B3%BB%E7%BB%9F/"/>
    
    
    <category term="Go" scheme="https://cozyqh.com/tags/Go/"/>
    
    <category term="MapReduce" scheme="https://cozyqh.com/tags/MapReduce/"/>
    
    <category term="WebSockets" scheme="https://cozyqh.com/tags/WebSockets/"/>
    
    <category term="Raft 协议" scheme="https://cozyqh.com/tags/Raft-%E5%8D%8F%E8%AE%AE/"/>
    
    <category term="Hadoop" scheme="https://cozyqh.com/tags/Hadoop/"/>
    
    <category term="分布式调度" scheme="https://cozyqh.com/tags/%E5%88%86%E5%B8%83%E5%BC%8F%E8%B0%83%E5%BA%A6/"/>
    
  </entry>
  
  <entry>
    <title>实现Java向Python Celery通过Azure Service Bus的透明任务分发</title>
    <link href="https://cozyqh.com/6577089393/"/>
    <id>https://cozyqh.com/6577089393/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;一个常见的企业级场景是：核心业务系统由Java构建，稳定而健壮；而数据处理、机器学习或异步任务则由Python生态下的Celery集群负责。当Java系统需要触发一个Python任务时，问题就出现了。如何在两个完全不同的技术栈之间，搭建一个既可靠又高效的桥梁？&lt;/p&gt;
&lt;h</summary>
        
      
    
    
    
    <category term="分布式架构" scheme="https://cozyqh.com/categories/%E5%88%86%E5%B8%83%E5%BC%8F%E6%9E%B6%E6%9E%84/"/>
    
    
    <category term="Java" scheme="https://cozyqh.com/tags/Java/"/>
    
    <category term="Celery" scheme="https://cozyqh.com/tags/Celery/"/>
    
    <category term="Azure Service Bus" scheme="https://cozyqh.com/tags/Azure-Service-Bus/"/>
    
    <category term="异构系统" scheme="https://cozyqh.com/tags/%E5%BC%82%E6%9E%84%E7%B3%BB%E7%BB%9F/"/>
    
    <category term="消息队列" scheme="https://cozyqh.com/tags/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97/"/>
    
  </entry>
  
  <entry>
    <title>将WebSocket视频流路由到动态CV工作节点的负载均衡与服务发现实现</title>
    <link href="https://cozyqh.com/9360061560/"/>
    <id>https://cozyqh.com/9360061560/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.539Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;一个独立的Python</summary>
        
      
    
    
    
    <category term="分布式架构" scheme="https://cozyqh.com/categories/%E5%88%86%E5%B8%83%E5%BC%8F%E6%9E%B6%E6%9E%84/"/>
    
    
    <category term="CV" scheme="https://cozyqh.com/tags/CV/"/>
    
    <category term="WebSockets" scheme="https://cozyqh.com/tags/WebSockets/"/>
    
    <category term="服务发现" scheme="https://cozyqh.com/tags/%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0/"/>
    
    <category term="gRPC" scheme="https://cozyqh.com/tags/gRPC/"/>
    
    <category term="Consul" scheme="https://cozyqh.com/tags/Consul/"/>
    
  </entry>
  
  <entry>
    <title>使用 Tyk Python 插件与事件驱动架构实现数据库分片的动态路由</title>
    <link href="https://cozyqh.com/9585085566/"/>
    <id>https://cozyqh.com/9585085566/</id>
    <published>2023-10-27T10:30:00.000Z</published>
    <updated>2026-01-14T02:25:59.540Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;我们的用户服务扛不住了。单体 PostgreSQL 实例的写入 I/O 已经饱和，垂直扩展的成本曲线变得异常陡峭。唯一的出路是水平扩展，也就是数据库分片</summary>
        
      
    
    
    
    <category term="分布式架构" scheme="https://cozyqh.com/categories/%E5%88%86%E5%B8%83%E5%BC%8F%E6%9E%B6%E6%9E%84/"/>
    
    
    <category term="Python" scheme="https://cozyqh.com/tags/Python/"/>
    
    <category term="事件驱动架构 (EDA)" scheme="https://cozyqh.com/tags/%E4%BA%8B%E4%BB%B6%E9%A9%B1%E5%8A%A8%E6%9E%B6%E6%9E%84-EDA/"/>
    
    <category term="Tyk" scheme="https://cozyqh.com/tags/Tyk/"/>
    
    <category term="数据库分片" scheme="https://cozyqh.com/tags/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%88%86%E7%89%87/"/>
    
    <category term="API网关" scheme="https://cozyqh.com/tags/API%E7%BD%91%E5%85%B3/"/>
    
  </entry>
  
  <entry>
    <title>构建基于Azure Functions与文档数据库的Kotlin Multiplatform动态样式分发架构</title>
    <link href="https://cozyqh.com/8995459702/"/>
    <id>https://cozyqh.com/8995459702/</id>
    <published>2023-10-27T10:15:38.000Z</published>
    <updated>2026-01-14T02:25:59.539Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;一个支持多租户（Multi-tenancy）的SaaS产品，其核心诉求之一是为不同租户提供定制化的品牌视觉体验。当应用层采用Kotlin Multiplatform（KMP）技术栈以实现跨平台（iOS, Android, Web,</summary>
        
      
    
    
    
    <category term="架构设计" scheme="https://cozyqh.com/categories/%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/"/>
    
    
    <category term="Kotlin Multiplatform" scheme="https://cozyqh.com/tags/Kotlin-Multiplatform/"/>
    
    <category term="NoSQL" scheme="https://cozyqh.com/tags/NoSQL/"/>
    
    <category term="Azure Functions" scheme="https://cozyqh.com/tags/Azure-Functions/"/>
    
    <category term="样式方案" scheme="https://cozyqh.com/tags/%E6%A0%B7%E5%BC%8F%E6%96%B9%E6%A1%88/"/>
    
  </entry>
  
  <entry>
    <title>集成GitHub Actions与GitLab CI实现基于Istio的Node.js应用自动化金丝雀发布</title>
    <link href="https://cozyqh.com/6016048680/"/>
    <id>https://cozyqh.com/6016048680/</id>
    <published>2023-10-27T10:15:27.000Z</published>
    <updated>2026-01-14T02:25:59.538Z</updated>
    
    
      
      
        
        
    <summary type="html">&lt;p&gt;项目初期，技术选型决策往往伴随着组织结构的现实考量。我们的代码托管在GitHub，开发团队习惯于其 Pull Request 和 Actions 生态。然而，生产环境的Kubernetes集群由另一个基础设施团队管理，他们标准化的部署工具链是GitLab</summary>
        
      
    
    
    
    <category term="云原生与DevOps" scheme="https://cozyqh.com/categories/%E4%BA%91%E5%8E%9F%E7%94%9F%E4%B8%8EDevOps/"/>
    
    
    <category term="Node.js" scheme="https://cozyqh.com/tags/Node-js/"/>
    
    <category term="GitLab CI/CD" scheme="https://cozyqh.com/tags/GitLab-CI-CD/"/>
    
    <category term="Istio" scheme="https://cozyqh.com/tags/Istio/"/>
    
    <category term="GitHub Actions" scheme="https://cozyqh.com/tags/GitHub-Actions/"/>
    
    <category term="Qwik" scheme="https://cozyqh.com/tags/Qwik/"/>
    
  </entry>
  
</feed>
