跳到分类
  • 首页
  • 关于本站

关注互联网最新资讯,最新技术趋势
首页
码农视界
大数据
开源技术
创业动态
发表于 2012-09-20
0 条评论

Instagram 架构分析笔记

开源技术

Instagram团队上个月才迎来第 7 名员工,是的,7个人的团队。作为 iPhone 上最火爆的图片类工具,instagram 用户数量已经超过 1400 万,图片数量超过 1.5 亿张。不得不说,这真他妈是个业界奇迹。

几天前,只有三个人的 Instagram 工程师团队发布了一篇文章:What Powers Instagram: Hundreds of Instances, Dozens of Technologies,披露了 Instagram 架构的一些信息,足够勾起大多数人的好奇心。读罢做点笔记,各种线索还是有一定参考价值的。能打开原文的建议直接读原文。

Instagram 开发团队奉行的三个核心原则:
Keep it very simple (极简主义)
Don’t re-invent the wheel (不重复发明轮子)
Go with proven and solid technologies when you can(能用就用靠谱的技术)
OS/主机

操作系统的选择,在Amazon EC2上跑 Ubuntu Linux 11.04 (Natty Narwhal) ,这个版本经过验证在 EC2 上够稳定。因为只有三名工程师,只有三名工程师,所以自己部署机器到IDC是不靠谱的事情。幸好有亚马逊。

负载均衡

此前曾用过两台 Nginx 做DNS轮询承载前端请求,这样做会有副作用,现在已经迁移到Amazon的ELB(Elastic Load Balancer),起了三个 Nginx 实例,在 ELB 层停掉了SSL, 以缓解CPU压力。DNS 服务使用 Amazon Route53 服务。

应用服务器

启用了 25 个 Django 实例,运行在 High-CPUExtra-Large 类型的服务器实例上,之所以用 High-CPUExtra-Large 实例是因为应用请求是CPU密集型而非IO密集型。

使用Gunicorn作为 WSGI 服务器。过去曾用过 Apache 下的 mod_wsgi 模块,不过发现 Gunicorn 更容易配置并且节省CPU资源。使用Fabric加速部署。

数据存储

用户信息、图片元数据、标签等大部分数据存储在 PostgreSQL 中。主要的 Shard 数据库集群有 12个节点。

实践中发现 Amazon 的网络磁盘系统单位时间内寻道能力不行,所以有必要将数据尽量放到内存中。创建了软RAID以提升IO能力,使用的Mdadm工具进行RAID管理。

管理内存中的数据,vmtouch这个小工具值得推荐。

PostgreSQL 设置为 Master-Replica 方式,流复制模式。利用 EBS 的快照进行数据库备份。使用 XFS 文件系统,以便和快照服务充分配合。 使用repmgr这个小工具做 PostgreSQL 复制管理器器。

连接池管理,用了Pgbouncer。Christophe Pettus的文章包含了不少PostgreSQL数据库的信息。

TB 级别的海量图片存储在 Amazon S3 上,CDN 采用的也是 Amazon 的服务,CloudFront。

Instagram 也是 Redis 的重度用户,Feed 以及 Session 信息都用 Redis 处理,Redis 也是以 Master-Replica 方式部署。在 Replica 节点上进行数据备份。

使用了 Apache Solr 承担 Geo-searchAPI的工作,Solr 简单的 JSON 接口也不错。

缓存使用了 6 个 Memcached 实例,库使用 pylibmc 和 libmemcached。亚马逊也提供缓存服务-Elastic Cache service ,Instagram 也有尝试,不过不便宜。

任务队列/发布通知

队列服务使用Gearman,通知系统则使用pyapns来实现。

监控

前面提及的服务器实例数量加起来,的确有100多个,有效的监控是相当有必要的。使用 Munin 作为主要监控工具 , 也写了不少定制插件,外部监控用Pingdom的服务。通知服务使用PagerDuty。

对于 Python 的错误报告,使用 Disqus 团队开源的Sentry来处理。

几个感想

0)轻装上阵说起来容易,做起来非常难。这也是 Instagram 团队目前最令人着迷的地方;

1)Python 社区已经足够成熟,各个环节上都已经有不错的解决方案了。

2)如果要问我最大的一个感慨,我要说:Amazon 真是一家伟大的公司,甚至比 Google 还伟大。

转自草根网:原文地址: http://www.20ju.com/content/V189855.htm

转发到新浪微博
除非注明,本站文章均为原创或编译,转载请注明: 文章来自程序界
分享给朋友:

轻松一刻

相关文章
随机文章
    • 暂无相关日志
    • ANDROID COCOS2D-X 开发环境搭建使用说明
    • 2015年,年终小结
    • 如何在半天时间内,上手python项目
    • 这个充满基情的IT界
    • Facebook宣布App Center面向全球用户开放
    • 谷歌:Google+注册用户破4亿 月活跃用户1亿
    • 最年轻的传奇:中国互联网10年纪事
    • 大熊:在封杀中成长起来
    • chrome代码的编译和调试(全部过程经本人亲自验证)
    • 大数据时代企业腾飞的利器:接入一套高效的外部数据系统来辅助决策
所有评论

发表评论

取消回复

带星号*是必填项目。由于缓存,您的评论会稍后显示;请以个人的名义发表评论,昵称填写产品或网站名、评论内容附加无关网址将不通过审核。

上一篇: 朋友网推圈子功能 大社交也需要小私密

下一篇: 微软张亚勤:大数据时代 必须警惕数据鸿沟问题

← 返回首页
热门资讯
本周
本月
昨日
    • 失乐园—疫情下北京手艺人众生像,当下失落的码农和相声艺人
    • 字节跳动裁撤投资部,反垄断改革举措继续深入
    • 微软将面临严格审查!斥资687亿收购暴雪或将构成垄断
    • 专利文件暴露Meta元宇宙野心:克隆全人类
    • chrome代码的编译和调试(全部过程经本人亲自验证)
    • windows下搭建android开发环境-史上最正确最清楚版
    • 简单谈一谈字符编码这点事儿
    • 这一年,过的快–我的2014年终总结
    • 个人角度谈一点对go和erlang两门语言的体会
    • 自己验证过的centos上protobuf安装过程
    • 从高级语言学起还是从c学起?
技术宅的思考
本周
    • 大数据时代企业腾飞的利器:接入一套高效的外部数据系统来辅助决策
    • 好马还需要配好鞍-现代化数据体系架构是企业在大数据时代取胜的关键
    • 细说互联网大数据时代蕴藏的创业机会
    • 盛大游戏高管再变动:董事长兼CEO谭群钊离职
    • 360搜索被指偷来的“市场第二”
    • 疑似PPS代理公司声明曝光:曾讨论收购PPTV
    • 网谣传盛大游戏,盛大在线将打包被360收购,良知网友诅咒造谣者:造谣死全家
    • 谁为京东苏宁的价格战埋单?
    • 硅谷创业公司出奇招,直接用函数作为招聘广告的标题
    • 传雅虎CEO梅耶尔要为每位员工配备iPhone
创业动态
本周
    • 密码保护:Chromium代码下载编译
    • 过去几年很火的万门大学倒闭,创始人童哲连夜跑路
    • 字节跳动裁撤投资部,反垄断改革举措继续深入
    • 2015年,年终小结
    • 国内访问gmail的方法
    • 那些年,我开发过的约炮软件-由陌陌上市谈谈im产品这点事儿
    • linux共享动态库中同名对象重复析构-两次析构或多次析构的解决办法
    • 周鸿祎冰水浇头,接受als慈善冰桶挑战
    • 一场地方网站的盛宴-5.10日车库咖啡地方站长沙龙小记
    • 一个比较靠谱的awk的学习笔记
联系我们

关于 / 关于本站

本站由 WordPress 驱动 ,主题由SoftUses 提供技术支持
沪ICP备11048881号-1

©2025