谷歌、臉書大當機

接連兩天谷歌、臉書大當機,稱機會講一下我淺到不能再淺的淺見。 矽谷這邊的公司很喜歡講平台化、雲端化、大數據,把不管是企業內部還是外部,四散的資料集中管理,本來每一間私人公司都要請個 MIS,專職備份管理企業資料,等到雲端化自動化後,一個人可以管一千個企業的資料庫,可以利用經濟規模降低成本。 但是經濟規模可以一直無上限下去嗎?有種東西叫邊際效用遞減,等到規模大了後,自然有規模大的問題,像是領英堅持整間公司共用同一個hadoop cluster,光Gossip Protocol的口水就可以淹死你,不能再加機器,所以做了個”大象醫生”出來看有沒有人濫用資源。所有人要共用一個 git server ,結果當然是撐不下去,所以弄了個 git master-slave 的架構出來,偶爾 build system 拉到的資料不是最新版而已。 平台化可以達到經濟規模是正確的,但是問題的複雜度也會一直上昇,所以這些平台公司請一堆業界頂尖的人來解問題,可是業務量有可能一不小心就超過系統原始設計的上限,在新解法出來前,就只能請客戶多擔待些了。

使用 Workflow Engine 來實作 Microservices SAGA pattern

最近離開了領英,比較有空閒讀讀書,想想到底之前在實作上出了那些的問題,跟要怎麼處理這些問題。 先推薦兩本書 SOA Patterns 和 Microservices Patterns ,這兩本書都有提到怎麼在微服務下處理 transaction 的方式,兩本書的方法都是 SAGA pattern + CQRS + idempotent 。 但是如果你有實作過 SAGA Pattern 的話,就會知道使用 Message Driven 的方式在兩個微服務間溝通的話,整個程式碼的可讀性會非常的低,除了原先溝通並實做細節的兩位工程師外,大概不會有第三個人能夠理解整個交易是怎麼完成的。 註:本文圖片取自 https://microservices.io/patterns/data/saga.html 在實作細節上,使用MDA的架構,微服務要提供sync & async API使用,是額外的成本,在領英,所有的微服務預設都是只有提供 sync API 的,你要請對方多開一個 async 的界面,是要求爺爺告奶奶的。 因此,在技術上管理上比較可行的,就是把流程的管理都拉到自己管理的微服務當中,在裡面使用 orchestrator 來管理對外乎叫的狀態記錄處理跟錯誤重送。 當然,這又免不了要寫一大堆 glue code 把所有的東西黏在一起,然後在資料褲裡面又要開一堆的 Table 來記錄運行的狀況,這非常的花功夫,在實作上很花時間又不好進行修改沒有彈性。 今天早上看到 InfoQ 的一則新聞 Experiences Moving from Microservices to Workflows at Jet.com […]

大公司裡面的技術債是怎麼來的?

大公司裡面的技術債是怎麼來的? 就像一個房間一樣,有一個角落積了一些灰塵需要打掃,主動跟主管說要打掃,主管會問你,打掃這個跟其他的事比起來重要嗎?我們先來測量一下這角落有多髒,打掃完有什麼效果,然後再來跟其他的工作事項比比看優先權該放在多高。 當然結論是不重要不需要掃,然後下次換另外一個角落髒了,再來測量一次再來排一次優先權,然後放棄打掃。 以上過程重複數次之後,主管大叫,這房間怎麼這麼髒,我們來制定打掃計劃,把過去的角落清潔計劃全部翻出來更新一次,再來全部重排一次優先權,做個環境整潔總檢討計劃。 然後大老闆跑出來說,你這房間在的髒亂,來跟整棟大樓的整潔比比看髒亂的程度,再來排個優先權,然後我們晚點再開會討論看看要不要納入明年的工作項目。

為什麼我不用 Google 搜尋

還在用 Google 嗎,該轉用 Bing/duckduckgo 了 希拉蕊的郵電門是美國 2016 年的選舉大新聞,理當也是熱門關鍵字,至少跟據 Google 自己的統計, email 是比 emoji 熱度高出十倍,但是 Google 的推薦選項,卻捨去熱門的關鍵字而選了冷門的 emoji 你跟我說 Google 沒有政治偏好,我說你腦袋壞掉   NOTE: 平衡報導一下,連結是谷歌的回應說法,不過我是不清楚 email 算是什麼骯髒的字眼就是了 https://www.fengli.com/news/23211879.html

Grooveshark shuts down after years of legal troubles

舊文重貼,原文寫於 2015/04 事後的發展是,Grooveshark的 co-founder 於 2015/07/19 自殺,只能說 startup 歹路難行,不要挑錯了產業,又投入了十年的青春導致無法自拔退出。 Music streaming service Grooveshark shuts down after years of legal troubles 我在同類型的公司工作過幾年,老實講,Grooveshark 走到這一步,不意外。比較意外的是他能撐這麼久,三年前他們 CEO 就情緒崩潰過一次 ,沒想到還能再多撐個三年。 Grooveshark 成立於 2006 年,當時的市場環境已經跟 Napster 成立的 1999 大不相同,自從 DMCA 數位千喜年法案通過之後,音樂服務已經有不少都走向付售權費合法化的路上,只有 Grooveshark 一家走不同的路。 Grooveshark 是群大學生一起做的,所以大家自己省一省,不用跟 VC 要錢,就可以開業。 也許是一開始走的太順,所以他們就想要這麼一直走下去,不去跟音樂公司談授權問題。 當然這樣造就的結果是,每次他們一要談下一筆增資案,律師信馬上就來,增資的錢跟本就是花在律師費上面。 我常常在想,Grooveshark能活這麼久,說不定是五大音樂公司故意的,反正把 GS 搞倒了也沒用,還會有下一家跳出來做,還不如讓 GS 吃不飽餓不死撐在那邊,擋住潛在中想做非法音樂這塊的人,同時也警告這些人,你做非法音樂是沒錢賺的。 最終搞倒 GS 的,我想除了是創業團隊已經累了之外,另外就是美國工程師行情太好,小本經營的 GS 請不起人了 1 http://mashable.com/2013/04/22/grooveshark-radio/ […]

極權主義與環保主張

做個筆記一下,暫時還沒有動力把想法全寫下來。 最近讀到許多東西,與在加州這個極左的地方生活經驗結合起來,才理解到環保主張跟極權主義是分不開的,甚至是反過來說「環保主張」只是「推行極權主義的工具」,為了推銷極權主義才打著環保的旗子,跟環不環保跟本無關。 以最近的「禁用塑膠吸管」來說,因為禁用塑膠吸管後,造成珍珠奶茶的飲用問題,因為替代的紙吸管強度不夠,喝幾口就破了,所以又開發了不鏽鋼吸管來替代,當然不鏽鋼吸管的問題又更多了。 其實,如果「環保主張」、「塑膠吸管對環境有害」真的是那麼被大眾所接受的話,那麼就兩種吸管都提供就好啦,不用禁用塑膠吸管,需要用到塑膠吸管的地方,大眾自然會選用塑膠吸管,當可以使用較環保的方案時,大眾自然會選用環保的方案。 唯一的問題,就是需要時間去推廣「塑膠吸管不環保,而且有替代方案」的觀念,這樣子把環保觀念深化到大眾人身上,雖然時間會拉的較長,但是影響會更深遠,等未來有其他議題時,民眾會更容易接受。 然而環保主義者,確選擇了不相信人性,用大政府的力量去全面禁止使用塑膠吸管,不管某些場合上無法使用替代方案,選擇走了極權的方向,讓我對「環保主張只是推行極權主義的工具」這件事又多了一點認同。

貧富差距

原文寫於 2017/09/29 最近才體會到,貧富差距問題,是左派創造出來的假問題,早點看穿對你的人生越有幫助 econtalk是美國的一個 podcast,主持人是個右派經濟學家,常常邀請不同的經濟學家來講一小時,某一期請到的是法國籍在美國柏克來任教的 經濟學家,談美國的貧富差距。 跟據作者的研究結果,過去 35 年來,經濟成長率的分配很不平均,跟據 勞保的資料,後 20% 收入的人,經過通澎的調整後,這 35 年來收入完 全沒有成長,反過來說,整體的成長率是 1.4% YOY ,而前面 1% 收入的 ,成長率則是 3% YOY 超過 GDP 的成長率。 然後如果算進貧戶補助,後 20% 的人,在 35 年間,收入只增加 20% (0.5% YOY) ,仍是不比前面的。 所以法國經濟學家得出美國貧富不均的答案。 但是,最近有一個更權威的研究結果出來,用不同的角度來研究貧富問題,這個研究是追縱 1987 年起,35-40歲的人,在 20 年間的所得變化,跟據研究結果,所得最低的 20% 在 20 年後,中位數的所得增加了 100% ,次20%的增加了 42%,再次 20% 的增加了 27%,所得越低的增加越多,所以美國仍是還有很多機會的。 其實這兩個研究,反應了左派跟右派的看法不同,左派只在乎結果的均等,所以,只看所得級距的變化,不去看其中有多少人脫貧又有多少人掉入貧戶。至於說為什麼貧戶所得變化跟 CPI 一樣,答案很簡單,因為這群人是不工作領社會補助的或領基本薪資的,這兩者都是跟 CPI […]

保守主義跟進步主義之爭

最近看了 Jordan Peterson 的書才知道,保守主義跟進步主義爭的是什麼。 進步主義是反對傳統的教條,認為人的理性可以超脫舊制度,提供更好的解決方式,要用理性去抽解去分化問題,透過科學的方法,打破再重造這個社會。 保守主義則是認為,既有的規則都是有其成因的,而其因果關係早隨著時間的流逝而被遺忘掉,留下的只剩下一條條教條而已。因為教條的成因早被遺忘,所以進步主義所做的重頭思考問題的解決方案根本是不可能的,人世間的問題太複雜變數太多,不可能什麼都要革命性的重頭再造。 兩者間目前最大的衝突就在於「家庭在社會上扮演的角色」,進步主義淡化家庭的重要性,冀望政府扮演個人救助體系的角色。用最極段的例子來說,當未成年子女跟父母在意見上有所不同時,政府會站在未成年子女這一邊,必要時會剝脫父母的權力。 保守主義則是認為,家庭是數十萬年來人類演化出的社會體系的基本構成,社會的進步不能躁進,只能在既有的架構上逐步做修改。 也因此大學裡會是左派盛行,因為打破既有觀念,重新建立思想體系,是科學的根本,大學的本質就是在提供不同的思維模式。 然而實際承擔責任的個人,在家庭裡在職場上,就沒有那麼多革命的本錢了,在真實社會中革命可是要死很多很多人的。進步主義在這幾年,可是想把家庭的地位整個拔掉的,這個潘朵拉盒子打開,沒有人知道會發生什麼事,所以保守主義一直在反對進步主義的躁進。 寫到這裡,總算知道為什麼我會從進步主義一路走到保守主義,必竟一路上看得太多,了解到人的智力、時間有限,不可能收集齊全一個問題的所有層面,進而提出解決方案。許多時候,我們能夠做到比昨天好一點就夠了。 知乎看來的網路故事,某銀行用的密碼產生器裡面有一行 sleep 1ms 的程式碼。 接手維護的人,因為銀行業務一路從地區小銀行變成全國性的銀行,系統碰上瓶頸,一路追到這一行來,想不通為什麼要這麼做,於是把這一行拿掉,把系統的效能增加了數百倍。 沒想到過了幾個月後,發現有許多客戶的帳號被入侵,問題是什麼呢?問題是 Linux 的 random generator 的最小維度是 ms ,在同微秒內跟 Linux 要亂數,要回來的亂數是有規則的。 沒有文件的老系統,還是不要亂碰為妙。 電腦領域這麼 “小” 的領域都會發生這種問題了,更複雜的社會體系的互動就更複雜了。不是說不能革命,只是絕大多數人都沒智力跟見識來推動革命,但是政府往往會把過大的權力給這些革命家進行社會研究….

下個十年

十一二年前,我第一次接觸到 Lucene 這個文字搜索的軟體,接下來十年的工作,就都是這邊起的頭,先是幫 Verizon 做了搜尋的入口網站,後來自己花了兩年,做了兩個實驗性質的產品,把 Lucene 搬到 AWS 上面,算是幫自己入了雲端產業;接著因為這樣,被飛向找去做底層的雲端化,先是把軟體變成可以橫向擴充,並且把整個開發環境用 Opsworks / Chef 實現,接著飛向被領英買去,花了兩年的時間,總算在領英裡面推動出來一個新的 enterprise integration pattern ,實做出來一個未來能讓後人遵循的 B2B data ingestion 標準。 不過屈指一數,我的技術大約就停留在五年前的水準,最近又因為一些公司行政上的事情,把我自己心情弄的很毛躁。 無意間看到兩個分享,一個講的是,不能改變的事情就別花心力在上面了,別讓這些事情影響到你,領英這種上萬人的公司,行政上本來就是沒救了,有些公司死的慢,像是 IBM ,有些公司像 Yahoo ,二十年就走完了興衰,許多事不是一兩個底層員工可以改變的。 第二個分享就是這個影片了, AI 這幾年發展下來,可以預見的是,在可見的五到十年的未來中, Level 3~4 的自動駕駛,是會對人類影響最大的,而且也是最快會被實做出來的。 至於怎麼實現出來 geohot 給了一個不同的看法,他認為現在的車商,在產品完成後,因為法律免責條文的種種限制,還要花許多的時間才能上線,所以走自由軟體路線,讓使用者自行安裝軟硬體,可以加快產品上線的時程。 人到中年,還是有一點點的夢想,所以接下來的半年,我會弄台 Honda Pilot 然後開始自幹自動架駛汽車… tensorflow, image recognition, map routing, etc… 都是沒玩過的,但是又是我一直很想入門的汽車產業,這些,應該夠我玩個十年吧… https://www.youtube.com/watch?v=aqdYbwY9vPU