虽然我是市场人员,但是最近几周都在围着技术人员转,去和他们讨论系统架构。由于我们的业务复杂度前所未有的高,面对的用户群超级的大,项目周期又是有限的,所以不可能做出一个完美的产品。跟部门内部的技术人员讨论,跟公司中的技术强人牛人超人讨论,目的只有一个,希望我们的架构能够撑的住一段时间,留给后续版本一个喘息的时间,为此产品本身可以做出特性的让步。
讨论了几周之后发现,我们的架构几乎是完美的,存储、逻辑、权限、显示几层完全分离,我们可以用文件存储替换数据库存储而不需要修改逻辑层以上的东西,我们可以修改HTML模板而不需要修改一行JS就可以控制显示,这样的架构下,改什么都很方便。
不完美的地方主要是存储层的cache和显示层的SEO。我们的业务迫切需要一个支持多索引的内存cache(据说用了昂贵的oracle做存储就没有这样的烦恼了),但是这样的东西相当于一个纯内存操作的数据库,实现容易稳定难。迫不得已,只能暂时用多个cache顶上,更新的时候同步更新。讨论了一圈,最后也只优化了两个地方,首先砍掉一部分需求减少了cache数量,其次把cache建在一台机器上,要死一起死。
目前的架构下,SEO其实并不是显示层可以解决的问题,这里也还没有想到什么好的解决方案。通过RSS Ping可以实现对一部分支持RSS的搜索引擎进行优化,但并不是终极的解决办法。