Categories
程式開發

混沌工程:一年間重啟5000台機器後學到的7個經驗

頭號工程的誕生

在公司”核心產品看穩定性,通用產品看豐富度“的指導思想下,短短一年多的時間,我們對外提供的近200個產品中,公測產品佔比超過30%,這還不算處於內測和孵化期的產品。

產品豐富度是上去了,但大家都擔心一個問題,在這麼短的時間內,上線如此多的產品,質量是否能夠做到最好?外加2018年,公有云廠商發生了至少9次較為嚴重的故障,於是,混沌工程作為提升產品質量的頭號工程,便應運而生。

通過業界標杆確立演進路線

在混沌工程的開始,我們主要參考的是混沌工程的鼻祖Netflix公司,加之Netflix是基於公有云進行的部署,對公有云廠商來講,具有很強的借鑒和推廣意義,因此標杆就這麼愉快的確定了。在確立標杆的同時,我們也持續跟進著業內其他廠商的實踐經驗,避免走太多的彎路。

在對業界廠商的混沌工程落地經驗進行多次復盤後,我們總結出適合於自身現狀的演進路線,分為以下六個階段。這部分我們已經在混沌工程系列的第一篇文章中進行了介紹,詳情參考文章《混沌工程落地的六個階段》。

混沌工程:一年間重啟5000台機器後學到的7個經驗 1

單機破壞進展緩慢

開始做單機破壞的時候,結合Simian Army的功能點和模塊數量較多的情況,我們也做了最壞的打算,通過半年左右的時間把單機問題徹底消滅,事實證明,我們還是too young …

Categories
程式開發

搖錢樹還是爛攤子? Pichai接任Alphabet CEO,隨之而來的是更大的麻煩

北京時間12月4日,Sundar Pichai接任了Alphabet CEO,成為了同時擁有Alphabet與穀歌兩座“金山”的人,但是未來Alphabet面臨的挑戰會是對Pichai的一項重要考驗。

這大概是矽谷“最糟糕”的工作

糟糕?這個被無數人艷羨的職位怎麼會是糟糕的工作呢?沒錯,對於Pichai來說,Alphabet CEO的職位或許更像是一個“燙手山芋”。

虧損一直在發生

Larry …

Categories
程式開發

一年只用一天的系統如何做技術沉澱?

今年是雙11的第11年,貓晚的第五年。

今年的天貓雙11狂歡夜(簡稱“貓晚”):有超200個國家和地區通過優酷APP觀看貓晚直播;共有5144萬人通過貓晚公益直播間觀看明星賣農貨,網友在淘寶直播間點贊1億次。今年貓晚海外藝人參與的節目超過了四成,晚會版權輸出到106個國家和地區,實現了除南極洲外的全覆蓋。

一年只用一天的系統如何做技術沉澱? 3

2019“貓晚”現場,圖為騰格爾唱《High歌》

2019貓晚不僅在優酷,還打通手淘、天貓等APP,實現了多屏、多端、雙向的互動,將互聯網晚會的互動形態推進到3.0時代。如晚會上跑男隊和街舞隊在一個4×8米的巨型觸摸屏上玩起了“好禮對對碰”遊戲。優酷和淘寶的網友在APP端也可以選擇加入某一戰隊,遊戲比分實時計入明星嘉賓的成績中,影響節目進程。觀眾還可以通過互動打賞給喜愛的節目“打call”,優酷直播間63%觀看晚會的用戶參與了互動,較去年增長7%。

很榮幸,我能有機會參與到雙11貓晚項目,藉這個機會給大家分享技術在貓晚落地的過程和思考。

技術目標如何定

貓晚KO時,總負責人說貓晚是給天貓雙11消費者辦的晚會及回饋,所以我們目標不僅要給消費者提供視覺盛宴,還要給消費者帶來實惠,要給商家帶貨;雖然自古忠義不能兩全,魚與熊掌不可兼得,但是項目組同學即使執手相看淚眼竟無語凝噎也要咬牙接下有挑戰的目標。基於這幾個方向團隊開始做分解,貓晚產品技術運營設計團隊核心要承載晚會的傳播影響力、豐富有趣的互動形式、以及進店的引導和讓消費者實惠的權益發放。

明確定位後貓晚的核心業務目標相對就清晰了,基於業務目標技術同學進一步分解首要是業務目標支撐,穩定是底線、體驗要保證、權益全發放、不能有資損(還有團隊有成長、系統有沉澱)。

一年只用一天的系統如何做技術沉澱? 4

業務技術大圖

所以貓晚技術目標制定的思考路徑是,…

Categories
程式開發

給程序員發工資的老闆們都拿多少錢?

我們常說:“出任CEO,走上人生巔峰。”那麼,CEO到底能賺多少錢呢?

近日,Blossom Street Ventures公司調查了101家科技公司首席執行官(CEO)在IPO時的薪酬。從調查報告看,各家CEO的薪酬差距很大,有的CEO年薪可能為3.5萬美元,而有的CEO年薪達到了32.5萬美元。

免費務工的CEO,不僅沒工資,而且沒獎金

一眼看過去,這張表格中有一行數據(參見文章末尾的完整表格)很是顯眼,這位CEO的整體收入居然是0元,不僅沒有基本工資,就連獎金和期權收入也是0元。他就是NantHealth的創辦者兼 CEO 黃馨祥(Patrick …

Categories
程式開發

開源不是天才的甜點,而是勤奮者的盛宴

11 月 24 日,TGO TALKS 的舞台迎來了 6 位經歷過嚴格培訓的 CEO、CTO、Team Leader

Categories
程式開發

我經歷過的最難調試的Bug

您曾經調試過的最困難的bug是什麼?本文將介紹作者至今最困難的一次調試經歷,希望從他懷疑硬件,再到懷疑軟件到最終解決問題的過程中,能夠為讀者帶來一些啟示。

我經歷過的最難調試的Bug 24

當我採訪開發人員時,有時會問這樣一個問題:“您曾經調試過的最困難的bug是什麼?”大多數人都喜歡拋出一段特殊的缺失分號的血淚史,一個難以使用的API ,或者他們抓狂地修改舊的、無文檔的代碼經歷。以下是我對這個問題的回答。

問題

問題來自一台有多個條形碼讀取器的機器。我們已經製造了8台這樣的機器,其中一台在英國生產了幾個月,而其餘7台剛剛在中國安裝完畢,而問題就出在了中國的其中一台機器上。

我們收到一份報告說其中一台機器投入生產後不久就停止了工作。客戶說有一個他們無法解除的錯誤。這個錯誤會中止產品生產,每停機一分鐘就會造成很大的經濟損失。在任何時期,我們都不希望出現這種情況。我進行了遠程操作,發現攝像頭已經停止向PLC(可編程邏輯控制器)發送結果,導致我們的軟件用戶界面發出警報。在這台機器上,將ID40作為數字IO予以連接以直接向PLC輸出通過或失敗的信號。這表明,故障可能與軟件無關,但在這個行業摸爬滾打過幾年的我知道:硬件和PLC通常都很穩定,95%的情況下是軟件出了問題,所以我總是假設是軟件出了問題。

從字面上看,這個故障意味著PLC認為觸發了攝像頭,在它再次觸發攝像頭之前沒有收到數字IO結果,要么攝像頭沒有被PLC觸發,要么攝像頭沒有輸出通過或失敗信號,要么PLC沒有接收到通過或失敗信號。我以為這是一次偶然,但如果是這種情況,重置和恢復就可以解決,而客戶反映說,這麼做沒用。這台機器將繼續生產下一個產品,然後再次停止。在遠程觀察到這一點後,我告訴他們重新啟動這台機器。我對此沒有合理的解釋,希望這只是一次偶然(從來就沒有偶然)。幾個小時後,我又接到了電話,還是同一個問題。這一次,客戶已經禁用了導致問題的攝像頭,但是現在,第二個(託管的)攝像頭顯示出相同的錯誤。

調試第一天

Categories
程式開發

微軟基於Rust開發新的安全編程語言

微軟基於Rust開發新的安全編程語言 25

為提高Windows 10的安全性,微軟研究人員Matthew Parkinson在本週的一次演講中披露:微軟正基於Rust開發新的安全編程語言。這個項目,被微軟稱為“Verona”。

Verona項目主要目的是通過使用Rust開發Windows底層組件,從而讓Windows 10變得更安全。…

Categories
程式開發

AI輔助開發比人工編寫代碼快180多倍,程序員是喜還是憂?

程序員坐穩了,AI開始搶你們的“飯碗”了。

如今,開發人員的准入門檻比以往任何時候都要高。重複性的任務佔據了軟件開發的大部分時間,並且很容易出錯。市場上軟件開發人才短缺,團隊超負荷工作,許多企業既無法完全掌握現有的日益複雜的代碼,又追不上新程序開發日新月異的發展步伐。

對於人工智能愛好者來說,推測人工智能如何改進軟件開發是件令人興奮的事兒。人工智能能否在幾天之內創建好原型框架而不用耗時幾個月甚至幾年?它會教人類開發人員如何更好地編寫代碼嗎?人工智能的研究範圍很廣,計算機編程的靈活性基本上也是無邊界的,所以很難想像當智能程序可以幫助人類與代碼交互時,軟件開發會是什麼樣子。

AI輔助開發比人工編寫代碼快180多倍,程序員是喜還是憂? 26

但許多開發人員和技術經理沒有意識到的是,在過去短短幾年裡,人工智能對開發團隊的重要性就已經產生了質的飛躍。其實,目前我們已經走到了人工智能輔助軟件開發的初級階段。

AI在自動化領域不可或缺

所有的軟件開發組織都追求高效、敏捷開發,自動化技術已經能實現大規模敏捷開發。過去十年,在進行自動化測試時,一旦代碼發生變化,開發人員能夠立即做出反饋,同時進行相應的調整,因此軟件質量有了很大提升。…

Categories
程式開發

AWS re:Invent 2019深度觀察(底層篇):兩個趨勢,新的革命?

根據InfoQ編輯在本次 AWS re:Invent大會上的觀察發現,到2019年,AWS的底層能力呈現出兩個明顯的發展趨勢:

第一個趨勢:超算 as a Service

AWS正在將自己計算密集+網絡密集的能力打造的越來越強,以應對越來越多的高性能計算與機器學習類應用負載的需求。這個方向目前由搭載了最新款nitro系統的幾款EC2實例引領,包括但不限於C5n、P3dn、Inf1等系列,還有已經成為標配的萬兆網卡。

特別值得注意的是C5n這個實例:

AWS re:Invent 2019深度觀察(底層篇):兩個趨勢,新的革命? 30

上圖所示為美國海軍研究實驗室用超算Cray …

Categories
程式開發

2019年十大企業級編程語言榜單

硬件與軟件的組合是推動技術進步的主要因素。頂級編程語言,更成為當前我們所熟知的眾多現代與新興技術的核心組成部分。時至今日,開發人員面對的編程語言在數量上遠超以往任何時期。同樣的,各類IT外包企業也在利用多種語言構建不同類型的軟件應用程序。

2019年十大企業級編程語言榜單 32

在滿足特定需求的開發過程中,個人與企業都擁有大量編程語言選項可供選擇。但是,對企業來說,由於某些語言相對小眾,因此可能難以找到適合軟件定制開發要求的編程人才。本文,我們將整理出那些最俱生產效率與市場人氣的編程語言,供各位開發人員與企業進行參考。

2019年頂級編程語言匯總

以下是根據谷歌趨勢整理出的頂級編程語言榜單在列出適合個人與企業的最佳編程語言之前,我想要簡要介紹一下本次研究的具體方法。下面是研究中使用的各項參數:

1. 收入最高的頂級編程語言(摘自2019年Stack Overflow開發人員調查報告與Indeed)。

語言本身的完善程度與開發人員的薪資待遇無關。同樣的,懂得如何使用頂級編程語言也不代表開發人員的薪酬就一定更高。從整體來看,最重要的是開發人員應如何培養自己的技能組合,並利用自己熟知的語言完成開發工作。但我在研究中仍然列出了這項指標,畢竟薪酬和熱情對於技能學習同樣重要。

2. 基於Stack