tenzaa
本站致力于IT相关技术的分享
构建基于 Rails、Vault 和 Zipkin 的零信任数据访问层 构建基于 Rails、Vault 和 Zipkin 的零信任数据访问层
在生产环境中,config/database.yml 文件中硬编码的数据库凭证是一颗定时炸弹。即使使用了环境变量或Rails的加密credentials,这些凭证本质上仍然是长期的、静态的。一旦泄露,攻击者就能获得对数据库的持久访问权限。我
2023-10-27
通过 GitHub Actions 在 GKE 上部署基于 SQLite 与 Litestream 的 Python 状态副本集 通过 GitHub Actions 在 GKE 上部署基于 SQLite 与 Litestream 的 Python 状态副本集
将一个基于 SQLite 的 Python 应用部署到 GKE 听起来像是一个架构上的错误。Kubernetes 的设计哲学倾向于无状态、可任意伸缩的计算单元,而 SQLite 是一个嵌入式、基于文件的数据库,天然地与状态绑定。然而,在某些
2023-10-27
构建基于Jenkins与Envoy代理的API规范动态校验与左移实践 构建基于Jenkins与Envoy代理的API规范动态校验与左移实践
团队扩张带来的一个必然结果就是API接口的“野蛮生长”。一开始,我们只有一份共享的文档,里面规定了API应该是什么样子:RESTful风格,JSON载荷,snake_case命名,统一的错误响应结构。但很快,这份文档就成了无人问津的摆设。A
2023-10-27
基于 Kubernetes Operator 实现 Keras 模型服务状态的声明式管理 基于 Kubernetes Operator 实现 Keras 模型服务状态的声明式管理
在生产环境中管理一个机器学习模型的生命周期,其复杂性远超于简单地将其封装在一个Flask应用里然后用kubectl apply部署。真正的挑战在于状态管理:如何精确控制模型版本、如何实现零停机的金丝雀发布、以及当线上出现问题时如何快速、可预
2023-10-27
基于 Flask 与 Chef 实现动态配置的插件化网关架构 基于 Flask 与 Chef 实现动态配置的插件化网关架构
在真实项目中,微服务架构的路由管理是个绕不开的坎。最初,我们依赖手动修改 Nginx 或 HAProxy 的配置文件,然后通过 CI/CD 触发重载。这个模式在服务数量少的时候还能应付,但当服务拆分到上百个时,配置文件本身就成了一个巨大的冲
为Spring Cloud Gateway注入自定义追踪探针以贯通Solid.js与后端服务链路 为Spring Cloud Gateway注入自定义追踪探针以贯通Solid.js与后端服务链路
一次线上排障彻底暴露了我们可观测性链路的断层。用户反馈某个数据看板加载缓慢,前端团队通过浏览器开发者工具定位到是一个API请求的TTFB(Time to First Byte)耗时过长,有时甚至达到3秒。但在后端,负责该API的微服务团队通
2023-10-27
2 / 5