【编者按】Nifty运营网站已经有很长一段时间,而在基于HTML5的WYSIWYG网页制作平台推出后,用户在该公司建立的网站已超过5400万个,同时其中大部分网站的日PV都不到100。鉴于每个网页的PV都很低,因此传统的缓存策略并不适用。然而即使是这样,该公司也只使用了4个 Web Server就完成了这些工作。近日,Wix首席后端工程师Aviran Mordo在“Wix Architecture at Scale”的演讲中分享了他们的策略,下面我们一起看High Scalability创始人Todd Hoff的总结:
以下为译文
Wix围绕扩展性上的努力可以用“定制化”三个字来总结——在仔细地审视了系统之后,以高可用和高性能为目标对系统进行了改善。
Wix使用了多数据中心和云服务,这在通常情况下非常少见,他们将数据同时复制到Google Compute Engine和AWS。对于故障转移,他们有专门的应对策略。
从始至终,Wix都没有使用事务。取而代之,所有数据都是不可变的,他们为用例使用了一个非常简单的最终一致性策略。Wix并不是缓存策略爱好者,简而言之他们并没有打造一个非常高端的缓存层。取而代之,他们将大部分的精力放在了路径渲染优化上,让每个页面的显示时间不超过100毫秒。
Wix开始于一个非常小的系统,使用了单片架构;而在业务发展过程中,他们很自然地过渡到一个面向服务的架构。在整个架构中,他们使用了一个非常成熟的服务识别策略,从而可以很轻易的将所有精力都集中到一个事件上来。
系统统计
系统组件
系统衍变
1. 系统始于简单的单片架构,开始时只有一个应用服务器,对于任何人来说,这都是最简单的初始策略,非常灵活且易于更新。
2. 两年后。
3. 系统拆分的时候到了。
服务打造的指导方针
更新服务
打造更新服务的高可用性
使用无数据库事务方式给数据建模
媒体部分
公用部分
公用部分的高可用性
学到的知识
原文:Nifty Architecture Tricks From Wix - Building A Publishing Platform At Scale(翻译/童阳 责编/仲浩)