故事是這樣的:html
公司系統裏面有一個服務是 PDF2JPG (實際上應該是 PPT2JPG, 只是PPT2PDF這一步驟咱們利用七牛的雲服務來完成。) 早期的時候咱們根據系統負載已經實際狀況採用了 crontab 來定時獲取數據庫須要轉換的數據。因此這個服務的QPS是 1/60 QPS。是的,你沒看錯就是這麼低,可是用起來還好,畢竟用戶容量不大。git
可是隨着用戶規模的增大,咱們不得不正視一個問題:就是如何知足用戶轉換的動態需求 (用戶的需求爆發點通常爆發在晚上6點左右)。正好七牛的 UFOP 能知足咱們的需求。並且還有免費的額度。github
內存 CPU 系統盤 按需¥/每小時 月計 M0C1 512MB 1 Core 10GB 0.088 63.36 M1C2 1GB 2 Core 10GB 0.176 126.72 M4C8 4GB 8 Core 10GB 0.650 468 M8C12 8GB 12 Core 10GB 1.300 936 注意:M0C1的狀況下,標準用戶 和 高級用戶 ,有 750 小時/月的免費額度。
咱們的規劃是這樣的 在閒時只開啓一個 M1C2 實例, 忙時再開啓兩個 M1C2 實例。這樣既保證有效性也能保證經濟性 golang
寫七牛的代碼,必定不能只看官方網站的文檔,必定要找他們 github 上的項目 qiniu-ufop-go 、ufop-golang。 不過即便 github 上的也不能全信,有些也是過時的。docker
只要你記住以上這個,那麼寫代碼根本不算什麼!數據庫
不少人覺得是最難的代碼都寫了,那麼部署應該是分分鐘的問題。那就看一下下面的血淚圖吧。ubuntu
七牛採用的是 docker 的方案,自建了更新源,隔離了外網連接。因此安裝一個 ImageMagick 別提有多疼了!網站
首先須要安裝 libpng , 接着安裝 ghostscript ,而後再安裝 ImageMagick,但是 ImageMagick 死活都找不到 libpng 的路徑,因此沒辦法支持 png。 你必須得先安裝 pkg-config 才行。ui
完整的 ufop.yaml 代碼以下。spa
image: ubuntu build_script: - echo building... - mv $RESOURCE/* ./ - sudo ldconfig /usr/local/lib - tar zxvf pkg-config-0.29.tar.gz > /dev/null - cd pkg-config-0.29 && ./configure --with-internal-glib && make > /dev/null 2>&1 && sudo make install > /dev/null - tar zxvf libpng-1.6.24.tar.gz > /dev/null - cd libpng-1.6.24 && ./configure > /dev/null && make > /dev/null && sudo make install > /dev/null - tar zxvf ghostscript-9.15.tar.gz > /dev/null - cd ghostscript-9.15 && ./configure > /dev/null && make > /dev/null 2>&1 && sudo make install > /dev/null - tar -zxvf ImageMagick.tar.gz > /dev/null - /usr/local/bin/pkg-config --list-all - cd ImageMagick-7.0.3-4/ && ./configure --enable-shared=yes > /dev/null && make > /dev/null && sudo make install > /dev/null - sudo ldconfig /usr/local/lib - echo "convert -list format" - chmod +x ./run run: ./run qufop.conf
附上結果圖: