部署前跟踪 api/even 不同微服务版本之间的变化

Tracking api/even changes between different microservice versions before deployment

我在一家相当大的公司从事 DevOps 工作,该公司正在向微服务过渡。对于大多数相关人员来说,这是一个新领域,一些管理要求对我来说似乎是不好的做法,但我没有专业知识可以说服其他人。

请求是在部署之前生成一份报告,该报告将列出微服务中的任何新 api/events(Kafka 是我们的消息服务)。

推荐的路径是让开发人员遵循风格指南,然后在 CI/CD 管道期间抓取源代码以生成可以与以前的报告进行比较的报告并识别任何新的 apis.

这似乎是倒退且不可持续的,但我一直无法找到满足他们要求的另一种解决方案。我建议先部署到开发人员,然后使用跟踪工具来识别任何 api 更改或事件订阅,但他们坚持在部署之前获得报告。

我希望获得关于实现此目标的最佳实践的任何建议。

跟踪和检测版本更改绝对是工程过度。 @zenwraight 提到的更简单的方法是对 API 进行版本控制。虽然跟踪服务以探索不同的版本和模式可能是一个潜在的解决方案,但它需要更多的前期投资,如果这不是公司的生计和黄油,我宁愿使用可能支持此类功能的供应商产品。

如果发现是一种需要的机制,我会推荐一些使用 Swagger 等工具发布内部 API 文档的东西,这样您就可以搜索是否有可以使用的 API。

最后,为了支持迁移到不同的版本,我建议为服务设置一个 API 入职流程,以便团队可以通知其他使用特定版本的团队他们的服务即将结束生命周期,他们将需要迁移到更新的生命周期。