作者eromoot (....)
看板Cloud
標題[技術] 攝影作品交流網站
時間Thu May 17 06:56:43 2012
Hi 各位:
來聊聊一點技術吧,5/1 我上線了一個新服務[1],主要是讓使用者上傳圖片,分享攝影
作品。整個架構是這樣子的:
Python + Flask + uWSGI + nginx + MongoDB + celery + Redis
Linode 512 jp + Amazon S3
大約花一個禮拜的時間就上線了,然後再慢慢補足功能。
[1]
http://pi.isuphoto.org/
網站部份
我使用的是 Flask 這個框架,然後搭配 uWSGI 與 nginx 溝通,目前開 4 線程處理網
站回應。
資料庫
用到 MongoDB,啟用 Master/Slave 機制。為什麼用 MongoDB 其實主要是要實驗 NoSQL
所以拿來這次的服務實作,另外也不是很想用 MySQL XD
Task
使用到 celery + Redis,主要是用來排定類似發送 mail, 推發到社群網站的子程式使
用。這兩個服務搭配起來還不錯用。(補充:mail 是用到 Amazon SES)
圖庫
因為圖片這東西本來就有點麻煩,除了儲存麻煩,資料讀取也麻煩,所以就乾脆都丟到
Amazon S3 上面去,S3 在圖片 header 也做了不錯的 cache 機制,速度也快(我是選
擇日本東京區域),使用者反應還滿流暢。至於圖片還有做 EXIF 的資訊讀取,這部份
是在上傳時擷取,然後存到 MongoDB。
主機
Linode 512 日本東京,因為服務對象大部份都是亞太地區,所以就租這區域的主機。
未來的走向
本來這是給社團社員使用,不過最近想一想,既然是 '交流' 當然是愈多然愈好,所以
目前逐步的開放給其他人申請使用,而上傳容量目前都無限制,大家玩的高興就好!;)
以上簡單介紹,感謝各位~
其他詳細的內容可以參考:
http://blog.toomore.net/2012/05/blog-post.html
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.171.92.22
1F:推 carlcarl:不知道這樣加起來大概會需要多少預算@@a 05/17 17:15
2F:推 petertc:什麼是s3的header cache機制呢? 05/17 19:00
3F:推 AreTheyYou:推~ 05/17 20:21
4F:→ eromoot:@petertc 像是 etag last-modifird 之類的… 05/19 19:35
5F:→ eromoot:@carlcarl Linode $19.95/m 截至 S3 大約 $0.05 43,212req 05/19 19:38