Instagram揭秘:牛逼的图片服务都在用哪些装备和技术?

2024-02-27 13:58

本文主要是介绍Instagram揭秘:牛逼的图片服务都在用哪些装备和技术?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

相信很多喜欢拍照的iOS用户早就对Instagram爱不释手了,而Instagram也是在昨天发布了Android版本,和一些拥有更多特效、边框、灯光效果的应用相比,Instagram具有更丰富的社交性、更强的用户粘度以及更快的图片处理速度。每天Instagram都要接受大量来自iOS、Android客户端的各种请求、请求、请求……很多同行十分好奇Instagram是用什么方式以及工具来应对每天大量数据的。Instagram通过技术博客向外界揭示了这个世界一流图片服务商所使用的装备和技术,供开发者进行参考。

图片来源:Instagram

Instagram团队称,他们选择系统的首要原则有三条:

  1. 保持简单
  2. 利用现成工具,不用从新开始
  3. 使用已经被普遍认可的稳定的技术

底层

主机选择Amazon EC2,操作系统选用Ubuntu Natty,原因是Instagram团队发现相比之前版本,Natty在高流量环境下相对更加稳定;load balancing设备使用Amazon’s Elastic Load Balancer,DNS选择Amazon’s Route53;以Amazon High-CPU Extra-Large设备作为应用服务器,运行Django来处理应用的请求;使用Gunicorn作为WSGI server,因为发现Gunicorn配置起来更容易;使用Fabric来部署代码。

图片来源:Ubuntu

数据库

采用PostgreSQL数据库,因为Amazon's network disk system (EBS)无法提供足够的每秒磁盘寻道,所以他们软件磁盘阵列(RAID)中通过mdadm设置EBS驱动器。存储器中的数据处理使用vmtouch,PostgreSQL实例全部通过Streaming Replication来设置,使用的工具是repmgr;用EBS snapshotting来定期备份系统,使用的工具是ec2-consistent-snapshot;数据库的文件系统使用XFS,使用快照的时候可以冻结/解冻RAID数组;用Pgbouncer将连接汇总到PostgreSQL;图片数据库采用Amazon S3,CDN选用Amazon CloudFront;采用Redis来作为基于内存亦可持久化的日志型、Key-Value数据库。

图片来源:codingthewheel

推送与监视

任务请求使用Gearman,而推送通知则使用pyapns;用Munin图形显示整个系统各种指标;用Pingdom作为外部监督服务;用PagerDuty处理通知和意外;用Sentry进行Python error报告。

总结起来就是:用已被普遍认可的技术来降低维护成本,将精力尽量花费在自己的核心业务上,所谓“好钢用在刀刃上”。


本文为CSDN原创文章,未经允许不得转载。如需转载请联系market@csdn.net。

这篇关于Instagram揭秘:牛逼的图片服务都在用哪些装备和技术?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/752632

相关文章

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图

python实现svg图片转换为png和gif

《python实现svg图片转换为png和gif》这篇文章主要为大家详细介绍了python如何实现将svg图片格式转换为png和gif,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录python实现svg图片转换为png和gifpython实现图片格式之间的相互转换延展:基于Py

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

springboot项目如何开启https服务

《springboot项目如何开启https服务》:本文主要介绍springboot项目如何开启https服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录springboot项目开启https服务1. 生成SSL证书密钥库使用keytool生成自签名证书将

C#实现将Excel表格转换为图片(JPG/ PNG)

《C#实现将Excel表格转换为图片(JPG/PNG)》Excel表格可能会因为不同设备或字体缺失等问题,导致格式错乱或数据显示异常,转换为图片后,能确保数据的排版等保持一致,下面我们看看如何使用C... 目录通过C# 转换Excel工作表到图片通过C# 转换指定单元格区域到图片知识扩展C# 将 Excel

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例