复杂功能管理的模式/解决方案
我公司开发 CDN/Web 托管解决方案。我们有一个中间件作为业务逻辑层并为前端公开 Web 服务。
我想寻求一个干净的功能管理解决方案 - 软件中存在不确定性和丑陋的解决方案/解决方案,开发人员会说“当它发生或损坏时,我们将修复它”。
例如,以下是 Web 发布商可以拥有的以下功能:
- 站点限制
- 带宽限制
- SSL 功能 + 每个站点的 SSL 配置
如果我们降级 Web 发布商,当他拥有 10 个站点时,减少到 5 个站点,我们可以选择不降级暂停其余5个站点,否则我们将在降级前提示暂停。
对于带宽限制的情况,降级很容易,当带宽检查发生时,如果发布者超出了,那么我们将暂停他的帐户。
对于 SSL 功能的情况。每个 SSL 配置都与一个站点绑定,当 SSL 功能从启用降级为禁用时,这些配置对象会发生什么情况?
正如您所看到的,有很多不同的情况,并且有不同的处理方法。
- 我可以制作一个系统来检查影响并提示用户在降级/升级之前进行更改。
- 或者忽略影响而只是升级/降级的系统。坏的。
- 或者以客户端代码需要了解复杂功能矩阵的方式设计的系统(或者我可以向客户端代码公开一个帮助程序以检查某个功能是否未失效)
我仍在思考的方式可能有很多但很困惑。我想知道,你会如何解决这个问题,有没有你认为我可以参考的推荐模式、书籍或软件?
感谢您的帮助。
My company develops CDN / Web-Hosting solution. We have a middleware that's served as a business logic layer and exposes web service for the front-end.
I would like to seek for a clean solution to feature management - there're uncertainties and ugly workarounds/solutions in the software that the dev would say "when it happens or is broken, we will fix it".
For example, here're the following features that a web publisher can have:
- Sites limit
- Bandwidth limit
- SSL feature + SSL configuration per site
If we downgrade a web publisher, when he's having 10 sites, down to 5 sites, we can choose not to suspend the rest of the 5 sites, or we shall prompt for suspension before the downgrade.
For the case of bandwidth limit, the downgrade is easy, when the bandwidth check happens, if the publisher has it exceeded, then we will suspend his account.
For the case of SSL feature. Every SSL configuration is tied to a site, what shall happen to these configuration object when the SSL feature is downgraded from enabled to disabled?
So as you can see, there're many different situations and there are different ways of handling it.
- I can make a system that examines the impacts and prompts the user to make changes before the downgrade/upgrade.
- Or a system that ignores the impacts and just upgrade/downgrade. Bad.
- Or a system designed in a way that the client code need to be aware of the complex feature matrix (or I can expose a helper to the client code to check if a feature is not DEFUNCT)
There can be many ways that I am still thinking but puzzled. I am wondering, how would you tackle this issue and is there any recommended patterns or books or software that you think I can refer to?
Appreciate your help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论