Paas层做多租户隔离(原创)

最近从集团过来一个需求,一个在初听的时候甚至觉得无解的需求(这让我想到了近期平安开发跟产品打起来的事件,哈哈哈。。。)

需求是——在Paas层做多租户隔离(举例的应用是:redis、kafka)。这两个中间件大家是众所周知不支持多租户隔离的,然而人家就是提了,作为我们就得给出解决方案。经过和另一个同事的绞尽脑汁的思考和查阅网上资料,竟然还找到了几个解决方案,方案如下:

  1. 花钱的方案:在今天这个需求之前,我从来不知道原来redis是有redis enterprise版、kafka也是有kafka confluent商业版,人家付费版本来就是有多租户隔离的功能的,所以土豪看到这可以选择不看下文了。
  2. 制度的方案:拿redis举例,首先关闭redis的list */all这样的功能,然后规定所有的key必须是随机或者是长串的名字,这个方案其实是存在风险的,完全可以用穷举破解,这是一种防君子不防小人的方法。
  3. 基于keystone的方案:keystone可以给这些中间件提供ACL,从而实现多租户隔离,不过这个方案担心会影响性能
  4. nginx四层转发基于源地址ip的方案:这是一个对外看起来像是一个redis集群,并且做到了多租户隔离的方案,然而实际是后端跑了一堆redis实例

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This blog is kept spam free by WP-SpamFree.