十一 18

主持人:冯大辉,现任丁香园 (http://www.dxy.cn)网站CTO。曾历任支付宝架构师、数据库团队负责人等职。

架构师2邝宇恒:在架构设计上,你们是否已形成某种设计风格或设计惯性?如何评价这种风格或惯性的影响?

侯震宇:设计风格不敢妄谈,不过我们在设计上确实存在一定的惯性思维。比如哪些类型的服务应该使用数据库,哪些不应该使用。惯性思维是建立在成功经验积累之上的,这在很大程度上简化了我们的设计工作并降低了引入新技术(这里指与习惯不同的技术)可能带来的风险。

但惯性思维往往阻碍了我们的技术发展。比如长期以来我们认为数据库的性能是相对比较差的,不足以满足很多业务的大压力的读请求,于是我们在一开始系统设计时就对服务架构设计了拆库拆表的支持,增加了系统的复杂度。这时惯性思维会让我们认为这样设计合情合理,不会进一步考虑是否有更好、更简单的设计。但在SSD引入可以解决高并发的随机读问题后,原先的系统认识已经不存在了,设计可以大大简化了,这时我们的惯性思维是必须打破的了。

所以作为一个架构师,我们要非常清楚,所有的设计都是建立在一些假设条件和系统规模之上的。当系统规模变得超出早期设计的假设条件,或者一些外部新技术打破我们早期的一些认识时(如SSD的引入对存储系统的冲击),惯性思维就必须打破。

邝宇恒:对某个特殊需求,是采用修改定制已有开源软件,还是采用从头自主开发的方式实现,应如何权衡考虑?

侯震宇:这个还是要具体情况具体分析。要根据需求的重要性、紧迫性和特殊性以及可能适用的开源软件的成熟度、复杂度以及我们的开发人员的熟悉程度等方面综合考虑。特别是开源软件的成熟度和社区的活跃程度,如果这两项比较差的话,那我们对此开源软件仅仅会是关注。

这里我只谈谈我们对开源软件的态度和使用情况。一般来说,我们的工作思路是首先明确自己的需求是什么,然后再调研是否有合适的开源软件可以满足或部分满足我们的需求。如果完全满足,我们会再看这个开源软件的成熟度和社区的活跃度,都没有问题的话我们就会直接使用。如果只是部分满足需求,我们会根据实际情况选择引入修改代码或参考重新设计的思路,这要从此软件与需求的差距点具体来看。 阅读全文 »

标签:
阅读:27,846 次
preload preload preload
京ICP备06065162