John Resig (現在在 Khan Academy) 在月初的時候發表了「Keeping Passwords in Source Control」討論要怎麼儲存 credential。
這不只是開發者的問題而已,這跟 code deploy 機制也很有關。目前沒有完美的方案,不同的解法都是在不同的環境與限制下而誕生出的產物。
幹壞事是進步最大的原動力
John Resig (現在在 Khan Academy) 在月初的時候發表了「Keeping Passwords in Source Control」討論要怎麼儲存 credential。
這不只是開發者的問題而已,這跟 code deploy 機制也很有關。目前沒有完美的方案,不同的解法都是在不同的環境與限制下而誕生出的產物。
我一向不太喜歡 Galera Cluster + HAProxy 的設計。有四個理由:
我把跑了超過半年的 Galera Cluster + Heartbeat 的經驗貼到 Codership 的 Group 上,裡面包括了設定與 script,希望能有些迴響:「HA solution - Galera Cluster with Heartbeat」。
在「The InnoDB Quick Reference Guide is now available」這邊看到有人把 MySQL 的 InnoDB 資訊整理成書,電子書版本大約是 NTD$230 (用美金計算是寫這篇文章換算出來最便宜的價錢)。購買後有 PDF、Mobi 以及 ePub 版可以下載。
這本書適合打算要換 InnoDB、剛換 InnoDB,或是換了 InnoDB 但還沒遇過瓶頸的人閱讀。開頭的章節先解釋 InnoDB 有什麼特性,後面的章節會說明有哪些設定可以設,以及測試的工具。而最後面會說明要如何維護,以及要如何處理爛掉的狀況。
續上篇「DigitalOcean 與 Linode 的比較...」,先補上上次沒抓的圖,這是 DigitalOcean 可以用的 Linux Distribution:
這次仔細檢查發現 DigitalOcean 本身沒有提供 DNS resolver,是指到 Google Public DNS:
nameserver 8.8.8.8 nameserver 8.8.4.4
從阿姆斯特丹的機器過去是透過 Cogent 到法國的 Google Public DNS,需要 10ms,這數字有點差。到是 OpenDNS 的 208.67.222.222
是走 Tinet,就在當地處理掉,只需要 0.6ms 左右,但 OpenDNS 會把不存在的 hostname 指到他們自家...
如果要用阿姆斯特丹機房的機器,在裝完機器後要記得 DNS 的部份可能要自己架,測試的時候是用 Unbound 架一個給自己用...
網路的部份:
Opera 決定放棄自己維護 render engine 了,將改用 WebKit:「Opera gears up at 300 million users」。
不確定是什麼樣的考量,我猜是為了省成本順便做的決定。翻了 gs.statcounter.com 的資料,Opera 的全球佔有率愈來愈低,看起來還蠻有可能的?
不過大多數的公司還是不管他吧:
以及:
DigitalOcean 因為「Linode vs DigitalOcean, performance benchmarks」這篇上了 Hacker News 熱門文章列表,把本來試用帳號的名額都用完了,現在要測試要自己花錢... XD
原文是測效能 (I/O 速度與 CPU 速度),我是看其他的部分:
static.ak.fbcdn.net
這組),不過速度也沒什麼問題...n2.panthercdn.com
) 丟到華盛頓啊 (大約 8ms),反而是 L1 (l1.panthercdn.com
) 走紐約本地...Twitter 上已經看到 tkalu 已經把一些東西搬過去了:
digitalocean.com/price-comparis… 看了這比較就決定把 g0v 的玩具移到 digitalocean, 自己實測 $20 的方案 digitalocean 的 cpu 也比 linode 快上不少
— tka.lu (@tkalu) February 13, 2013
首先是澳洲國會正式發文要求 Adobe、Apple 以及 Microsoft 解釋為什麼東西賣得比較貴:「Australian Govt Forces Apple, Adobe, Microsoft To Explain Price Hikes」、「Please explain prices: Parliament subpoenas Apple, Microsoft, Adobe」。
消息出來僅僅一天,Adobe 最先決定調降價錢:「Adobe Bows To Pressure and Cuts Australian Prices」、「Adobe cuts Australian prices after inquiry summons」。
調降的部份只包括月費服務的部份 (調到與美國一樣的價錢),而軟體買斷的部份仍然不變... 接下來等國會的後續了。
看到「AVG finds 11 year-old creating malware to steal game passwords」這篇裡面的說明:
The company said it had recently reverse-engineered one piece of malware that turned out to be the handiwork of an 11 year-old Canadian boy intent on stealing passwords used to access games such as Team Fortress.
AVG 的報告是出自「Q4 2012 AVG Community Powered Threat Report」(PDF) 的第 17 頁。
看到 Percona 的人在討論 MySQL 5.6 的 GTID (Global Transaction ID) 功能,剛剛就實際到 AWS 上開了兩台 m1.large 測試:「How to create/restore a slave using GTID replication in MySQL 5.6」。
要測試 GTID,因為剛出來沒多久,沒有多少文件可以看。MySQL 官方的「Replication with Global Transaction Identifiers」是必讀的文件。查 MySQL 官方文件時可以發現 5.6.9 (RC) 到 5.6.10 (GA) 其實還是改了不少變數名稱,如果在網路上找舊文章照抄是不會動的...
先提結論,Galera Cluster 畢竟出來很久了,成熟度比 GTID 高,建議現在先觀望一陣子,至少等 best practice 出來後再進場測試...
之前的 MySQL replication 有很多方法可以在不停機,或是停的時間很短的情況下把第一份 slave 資料與 replication 資訊生出來,舉例來說:
但目前 MySQL 官方對 GTID 給的方式是 read only + mysqldump,這就算用 xtrabackup 也應該快不到哪吧... 這幾個月應該會一直有文章出現,裡面應該會有偷吃步的方法,看到再來測試看看 :o
在 MySQL replication 發生錯誤後,需要一邊 skip replication error,一邊跑 pt-table-sync 強制資料庫同步:
while true; do ( echo 'SET GLOBAL sql_slave_skip_counter = 1; START SLAVE;' | mysql -h $1 ) || sleep 1; done
那個 sleep 1
的設計是用在「如果 replication 正常,停一下再跑一次」的前提下而設計的;如果不需要的話拿掉也是 okay 的。
要注意,能這樣跑的前提是 max_connect_errors
要開超大,我是設成 max_connect_errors = 4294967295
。