拥抱软件的金缮:初创公司为何在代理层打造 MVP
竹子原则:通过代理层实现灵活性
在日本传统中,竹子因其柔韧性和韧性而备受推崇。同样,初创企业也必须顺应变革之风——不断调整产品方向、快速迭代,并与不确定的系统集成。在代理层之上构建 MVP(最小可行产品)体现了这一竹子原则,使团队能够适应变化,而不会崩溃。
什么是代理层?
代理层充当前端和后端服务之间的中介,或应用程序和第三方 API 之间的中介。它可以是一个 API 网关(例如 香港, NGINX, 或者 使者)、自定义反向代理,甚至是调解请求和响应的无服务器功能。
实际原理:为什么要为 MVP 设置代理?
1. 脱钩:‘间’的艺术
在日本美学中, 马 指的是对象之间的空间——一个创造意义的停顿。代理层创建 马 前端和后端之间,允许独立的开发和演进。
好处:
– 前端和后端团队并行工作。
– 更容易与传统 API 或第三方 API 集成。
– 快速交换或模拟服务。
示例:快速后端交换
假设您的 MVP 需要用户身份验证,但后端尚未准备好。您可以设置一个代理,暂时模拟身份验证端点,以确保前端工作不受干扰地继续进行。
// Node.js Express 代理示例 const express = require('express'); const proxy = require('http-proxy-middleware'); const app = express(); app.use('/api', proxy.createProxyMiddleware({ target: 'https://real-backend.com', changeOrigin: true, onProxyReq: (proxyReq, req, res) => { // 为 MVP 模拟身份验证 if (req.path === '/api/auth/login') { res.json({ token: 'dummy-token', user: { id: 1, name: 'Sakura' } }); } } })); app.listen(3000);
2. API 变形:像折纸一样
就像折纸将一张纸变成无数种形式一样,代理可以重塑 API——重写端点、聚合响应或添加/删除标题。
用例:
- 将多个外部 API 统一为单个界面。
- 重写不一致的第三方 API 响应以实现前端兼容性。
- 无需触及后端代码即可添加身份验证、速率限制或日志记录。
示例:响应转换
和 Kong 的插件,您可以动态修改 API 响应,屏蔽敏感字段或为客户端规范化数据。
优势表:代理层与直接集成
特征 | 代理层方法 | 直接集成 |
---|---|---|
开发速度 | 高(解耦、可模拟) | 中等(紧耦合) |
后端灵活性 | 高(交换/掩码 API) | 低(难以切换) |
安全 | 集中控制 | 分散,审计难度大 |
缩放 | 简单(添加缓存/负载平衡) | 更难(每个端点) |
变更管理 | 简单(更新代理规则) | 复杂(更新代码库) |
第三方集成 | 统一、可管理 | 碎片化、不一致 |
一步步:在代理层上构建 MVP
1. 选择您的代理
- API 网关: 香港, AWS API 网关, NGINX.
- 自定义代理: Express.js 和 http-代理中间件.
2. 定义端点和模拟数据
拥抱 侘寂——不完美之美。从简单、可模拟的端点开始,随着实际服务的成熟不断完善。
# Kong 声明式配置示例路由: - 名称:用户登录路径:[“/api/auth/login”] 服务:mock-auth-service
3. 添加插件/逻辑
- 验证:使用 JWT 插件或插入模拟逻辑。
- 速率限制:在代理处添加策略。
- 转型:根据需要重写请求/响应。
4. 无缝交换和扩展
随着真实后端的巩固,更新代理路由以指向生产服务而不是模拟,从而最大限度地减少前端更改。
可观察性和安全性之禅
代理层充当 看板— 可见板 — 集中访问日志、错误跟踪和安全策略。
可观察性
- 集中式日志记录:聚合所有流量,对于调试很有用。
- 指标插件: Prometheus 与 Envoy 集成.
- 追踪: 添加 开放追踪 在代理处轻松支持。
安全
- CORS 管理:在一个地方处理跨域请求。
- IP白名单/黑名单:像守护寺庙大门一样守护你的 MVP。
- TLS 终止:无需后端复杂性即可确保连接安全。
现实世界的例子:日本初创企业及其他
Mercari 的微服务演变
Mercari 是日本领先的电商平台之一, 迁移到微服务架构 使用基于 Envoy 的 API 网关。通过分层代理,他们将快速前端迭代与后端服务变更解耦,即使在规模化的情况下也能体现 MVP 精神。
早期 SaaS:模拟支付
金融科技初创公司可以使用代理来封装外部支付 API。在 MVP 阶段,代理会返回模拟的支付响应,允许用户在无需真实交易的情况下进行测试。之后,只需更改代理目标即可轻松切换到真正的支付提供商。
进一步阅读和资源
- Kong API 网关文档
- Envoy 代理文档
- 具有 API 网关模式的微服务 - Microsoft
- Express.js 中的反向代理
- Mercari 工程博客:微服务
- OpenTracing 文档
本着 改善,让您的代理层成为安静的指南 - 在您的 MVP 找到其真实形式时实现小的、持续的改进。
评论 (0)
这里还没有评论,你可以成为第一个评论者!