`

SmugMug 的架构介绍

阅读更多

本文介绍的  SmugMug   是一家提供付费图片托管服务的站点,在 2002 年由 Chris MacAskill 与 Don MacAskill 父子二人创建,最初提供面向游戏的视频服务,随后转型为现在的模式。网站流量现在是全球 1800 多,盈利能力自称良好。

在 MySQL Conf 2009 上,SmugMug 的  Don MacAskill   做了一次关于SmugMug 网站架构 的分享。

SmugMug 整个网站采用 LAMP 架构(其实也有 OpenSolaris),300 多台 4 核(或更多)的服务器(大多是 AMD 的 CPU) ,分散在四个机房,两个运营的人员。SmugMug 充分运用了云计算服务,是 Amazon 的一个大客户,图片和视频总计达到了 PB 级,托管在  Amazon S3   上,图片和视频的处理也在 Amazon EC2 上。使用了  Akamai   的服务做前端的  CDN   加速,主要是 JavaScript/CSS   等文件的加速,此外,DNS 加速也带来了很好的收益。

结构化数据放在 MySQL 中,存储引擎多数用的 InnoDB,数据超过 2TB 的空间,数据库服务器为 4 核或更高配置,内存多达 64GB。缓存方面,用了 Memcached 做加速,有 1TB 的数据在这里面,平均命中率达到 96%。Memcached 里面尽量存放 MySQL 行数据,减小对  DB   的冲击。数据库设计思路是尽量做垂直分区,没有 Sharding。不过在反范式(denormalized)方面做得比较彻底,不用表连接(JOIN)方法者复杂的查询。多数查询依赖主键,更新或者删除数据也是单行,依赖主键。InnoDB 引擎打了  Percona   的 Patch,并发能力也有了很大增强。

  DB   的数据完整性与写能力的要求高,而对于读的扩展性还是相对比较好解决。Linux 上的文件系统是 SmugMug 不太满意的地方,备份也成问题。ZFS   倒是能满足相关的需求,可惜不支持 Linux(妈的,早该支持 Linux了)。所以他们迁移到了 OpenSolaris   上。另外,对于复制中可能出现的风险,尝试了第三方提供的一些 Patch (参考  Google 发布的 MySQL Patch )。

采用 OpenSolaris 后,MySQL 放在 Sun Sushi Toro(Storage 7410 ,这个东西也支持  SSD   ) 上,走 NFSv3 协议。写到这里,发现 SmugMug 的解决方案非常不具有通用行,看起来 Sun 是给了他们不小的硬件优惠,否则一般情况下不会有人这么搞的,用  NFS   协议走数据库,除非是测试环境或者是复制(我怀疑只是 Slave 端通过  NFS   走),产品上真的有人跑么?

网站架构的进化,其实也是选定一个方向(比如用开源工具解决),然后一直试错的过程。

--EOF --

 

原文:http://www.dbanotes.net/arch/smugmug_arch.html

分享到:
评论

相关推荐

    smugmug.net:Smugmug API的.Net客户端

    如果你有这个文件,可以从中学习到具体的实现细节,如类结构、方法实现以及如何处理与Smugmug API的交互。通过阅读和分析这些代码,你可以更好地理解如何在实际项目中使用C#开发Smugmug API客户端。 总的来说,...

    smugcli:SmugMug的命令行工具

    斯穆格克利SmugMug的命令行工具,用于自动将本地文件夹层次结构与SmugMug帐户同步。 使用Smugmug V2 API实施。 使用Python 3.5、3.6、3.7、3.8和3.9进行了测试。安装 pip install smugcli样品用法要使用此命令行工具...

    sync2smugmug:将本地Picasa管理的图片存储库同步到SmugMug

    将本地图像结构同步到SmugMug 该程序假定目录结构由文件夹(仅目录)和相册(带图像的目录)构建。 它将在磁盘上扫描所有图像文件,并使用适当的层次结构将其上传到SmugMug中。 它具有从SmugMug同步回到相同结构...

    云计算第二版

    3.9.1 在线照片存储共享网站SmugMug 129 3.9.2 在线视频制作网站Animoto 130 3.10 小结 131 习题 131 参考文献 131 第4章 微软云计算Windows Azure 135 4.1 微软云计算平台 135 4.2 微软云操作系统Windows Azure 136...

    Amazon云计算.ppt

    这个PPT详细介绍了AWS的核心服务、应用场景以及关键技术和架构。 首先,AWS的起源基于一个简单的想法,即IaaS(Infrastructure as a Service),即将硬件设备和其他基础资源虚拟化,以服务的形式提供给用户。这种...

    zmugtools-开源

    3. **相册管理**:创建、删除、重命名相册,调整相册的结构和顺序。 4. **权限控制**:设置照片和相册的访问权限,保护隐私。 5. **自动化工作流**:通过脚本或定时任务自动执行上传、备份、同步等操作。 6. **...

    sDownloadCenter-开源

    它可能包含了自动化下载的逻辑,例如遍历相册结构,抓取每个图片的链接,并支持多线程或并行下载以提高速度。由于Smugmug是一个图片分享平台,用户经常需要备份或整理存储在该平台上的照片,sDownloadCenter为此提供...

    smuganizer:自动从code.google.compsmuganizer导出

    欢迎使用Smuganizer! 该程序有两个目的: ... 另一方面,SmugMug具有相当刚性的结构,您不得不使用它,但它不那么灵活。 具体来说,它们具有三个概念:类别(和子类别),专辑和图像。 图片只能在

    Smupload-开源

    SmugMug 照片服务的照片上传器,可自动将照片上传到适合照片存档的基于日期的层次结构中。 您可以在任何平台上下载并运行 jar 文件,也可以使用 Windows MSI 安装程序。

    Amazon云计算及其相关云服务具体讲解

    在基础存储架构中,Dynamo是一个关键的分布式数据库服务,它采用了数据均衡分布的一致性哈希算法,通过向量时钟处理数据冲突,并利用Merkle哈希树进行故障恢复。Dynamo还利用基于Gossip协议的成员资格检测机制,确保...

    亚马逊云计算AWS(AmazonWebService).ppt

    在架构上,Dynamo是AWS的重要组成部分,它是一个分布式数据库系统,采用一致性哈希算法实现数据的均衡分布,通过向量时钟处理数据冲突,使用Hinted handoff和弱quorum机制应对临时故障,并利用Merkle哈希树进行永久...

    亚马逊云计算模式分析.pptx

    AWS使用Dynamo作为其基础存储架构,Dynamo采用了一致性哈希算法解决数据分布问题,通过向量时钟处理数据冲突,通过Hinted handoff和弱quorum机制处理临时故障,并使用Merkle哈希树技术来恢复永久故障,确保数据的...

    picturesurl:我的图床仓库

    3. **图床服务**:专门提供图片上传、存储和分享的在线平台,如SmugMug、Imgur等。它们通常提供免费和付费服务,适合博客作者、社交媒体用户或开发者使用。 4. **文件管理**:有效的文件管理系统能够帮助用户组织、...

Global site tag (gtag.js) - Google Analytics