技术开发 频道

阿里巴巴潘磊谈数据库

  InfoQ:这次我们的QCon有幸邀请到了FaceBook和Twitter的成员,前段时间,Twitter开始由MySQL向NoSQL迁移,业界对NoSQL的讨论也非常热烈,我想请问一下您对NoSQL有什么看法?

  潘:NoSQL最近讨论得很多,但是有一个观点是非常鲜明的,NoSQL并不意味着不要关心数据库,应该是Not Only SQL,或者是我们不仅仅需要关心数据库。对于阿里这样的一个网站而言,跟Twitter还有一定的区别,我们的业务类型更复杂,一些复杂的业务更适合用关系型的数据库去解决;但另一些业务则更适合用NoSQL的方案去解决,所以我觉得架构的问题,归结到底都是要选择合适的技术去解决合适的问题。

  就目前的技术发展来说,我并不认为有任何一种技术可以解决所有的问题,我们可以看到很多业务,甚至占了我们很大比率访问量的业务都有希望迁移到NoSQL的架构上,因为NoSQL的架构相对来说扩展性和分布式会做得更好。我觉得NoSQL是对关系型数据库的一个非常好的补充,但它不会成为其替代品,仅仅是个补充而已。

  InfoQ:现在有一些NoSQL的产品,比较成熟的有MongoDB及Cassandra等等,作为一个架构师,肯定会涉及到技术的选型,如果让您选择技术框架的话,您会怎么样选择呢?

  潘:我觉得要做选型,第一件事是要明确目标,要知道我要什么,这个目标会包含一些业务上的要求,也会包含从业务当中抽取出来的非功能性的要求。当然,非功能性的要求会有很多,通常我们会提到一些像可扩展性,或者说可用性。如果这时评估,从网站的角度来说,可用性和可扩展性,其实也很难说哪一点是最重要的,可能还是需要根据具体的场景去做一定的分析。甚至会出现这样的情况,我一直不排除阿里巴巴国际站会使用多个KV Store的解决方案。

  仍然是那句话,合适的才是最好的。我可能会根据不同的业务目标,或者说根据不同的非功能性需求,去制订不同的技术的目标,然后去选择一个合适的一个产品。

  InfoQ:现在您是一位架构师,没有人天生就能做架构师的,一定是一步一步成长上来的,我想很多朋友肯定都很想知道您是怎么成长起来的,对于那些希望能成长为架构师的朋友,您对他们有什么建议吗?

  潘:我觉得要做架构师,首先要对技术有很强烈的意愿,你想做这件事,因为技术这件事,如果你不喜欢,它会变成一件很枯燥的事;其次,要善于学习,学习有两种,一种是从书本上,另一种是从和别人的交流里,你要去善于学习你自己不知道的东西,或者说你善于发现自己的短板,有针对性地做一些系统的学习。

  要成为一个架构师,更重要的学习是来自于实践,曾经有人说过一句话,我觉得非常好,所谓一个行业的专家指的是什么?其实指的并不是他能力有多强,是指他碰到过了这个行业里面所有的问题,同时他解决了,他就能成为专家。同样道理,做架构师你就不要放过你碰到的任何技术问题,一定要钻研下去,知道里面究竟是什么,然后解决它。你就能在每一次解决问题的过程中得到足够的成长,所谓的架构师我觉得是一个水到渠成的事情。

  这只是第一步,技术上我们要这样做,业务分析同样是架构师很重要的一个方面,要规划一个更好的系统,你必须要全面地看待这个系统。除了业务,在技术方面通常也可能会有一些误区,认为应用架构师只需要关心代码的实现。我觉得这是不够的,作为一个架构师,他必须要关心技术的所有外延,比如说操作系统、网络、存储,甚至数据库,所有关联到的东西。作为一个架构师,应该去全面的掌握问题,当然深度你可以根据应用的场景,可能会因场景而异,或者因人而异。

  InfoQ:非常感谢潘磊今天接受我们的采访,也恭喜您今天给我们带来一个非常漂亮的一个演讲,非常感谢!

0
相关文章