建築釺
來自Hack Day的故事:Braze高級站點可靠性工程師Brian Bernstein和Matt DiSipio是如何“偏離軌道”的
每年三次,Braze周圍的員工都會從正常工作中抽出兩天時間來參加Hack days活動。這些活動是Braze的長期實踐,反映了該公司如何為設想和實現新想法創造空間。這些活動為鼓勵創新思維、突出寵物興趣、甚至在大大小小的方麵優化Braze平台提供了機會。
為了表彰每個Hack Day的工作,Building Braze將對參與者進行特別難忘的項目或經曆的分析。這周,我們要和Brian Bernstein和Matt DiSipio, Braze*的高級站點可靠性工程師。
探索新挑戰
在過去的幾年裏,我們每個人都舉辦了幾次黑客日活動,馬特參加了最早的一些活動,時間可以追溯到2019年。多年來,我們都做過獨立的Hack Day項目,但我們都認為團隊合作更好。
Hack Days是一種很好的方式,可以讓你與平時不怎麼合作的人合作,並挖掘一些新的挑戰。在某些情況下,你可能想要解決你已經確定的特定問題,但隻是來幫忙並獲得學習經驗完全沒問題。
業績基準
我們的Hack Day項目,我們稱之為“偏離軌道”,一開始是“如果我們嚐試一下這個會怎樣?”的解決方案,布萊恩認為這是擴大規模的潛在障礙。我們與Braze的專職軟件工程師Elliot Foster合作,看看我們是否可以通過使用Rust編程語言而不是Ruby on Rails使API端點異步化來提高性能。
我們的想法是用當前的設置設置一個基準測試,在新版本上運行相同的負載,然後比較結果。我們想看看異步模型與我們的同步模型相比的表現如何。這是一個可能做出巨大改變的機會,通過幫助我們的係統更好地工作,從而影響整個公司。
Brian對Rust有經驗,但Matt和Elliot認為Hack Day是一個機會,他們可以在創建這個項目時更加熟悉它。Matt設置了測試環境,Brian在Rust中編寫代碼,這給了Matt一個學習語言並嚐試自己編寫代碼的機會。這就是吸引Matt參與這個項目的原因- - - - - -他想多接觸拉斯特。
我們的前端在規模化方麵遇到了一些問題。因為Rails是同步的,一個工作人員每次綁定到一個請求上。當該worker阻塞DB連接或類似連接時,它必須暫停處理。使用異步端點,當上一個請求被阻塞時,工作者可以繼續處理另一個請求。這是我們在rust中重新實現這個端點的主要動力——看看異步前端是否可以因為這種行為差異而更好地伸縮。
明確的目標和良好的時間管理能力
我們已經參加了足夠多的Hack Days,從中我們學到了一些關於如何從體驗中獲得最大收益的東西。第一個也是最大的挑戰是時間緊張。當你考慮到準備演講時,創造一些東西是很短的一段時間。你必須非常小心你的範圍,以確保你有一個你可以完成的項目。現在很多人在他們的Hack Day項目上做了大量的前期工作,如果你有一些你相信的東西,你想要引起轟動,這是很好的。
第二個挑戰是範圍漸變和鑽進兔子洞。當你隻是在“探索”的時候,很容易分心。從一開始,對於我們想要做什麼有明確的目標是很重要的。我們認為一個好的方法是找到一個簡單的用例,並為兩個版本建立一個性能的a /B比較。這就是我們在“偏離軌道”中使用的方法,從能夠比較性能的角度來看,這是一個成功的方法——顯著提高了性能,並使我們能夠處理高並發性而不出錯。
你個人的成功基準取決於你想從Hack Day中得到什麼。它可能隻是學習一項新技術,也可能是證明一項新技術可能比我們在Braze使用的技術更適合或者性能更好。對其他人來說,不一定要有一個成品,而是要利用實驗環境去做。
有興趣加入我們的黑客日嗎?Braze正在招聘工程、產品管理和用戶體驗團隊的各種職位。查看我們的職業頁麵了解更多關於我們的開放角色。有關異步工作負載的更多信息,請參閱我們的文章創建集成測試.
*博客文章中的所有內容都是一般性質的,例如。它不涉及Braze現在或將來打算向客戶提供的任何具體問題、功能或產品。manbetx万博全站客户端文章中的任何內容都不應被視為建議,帖子中的任何信息也不構成Braze平台未來技術特性或功能的部分或完整路線圖。
更多關於Building Braze
布萊恩·伯恩斯坦和馬特·迪西皮奧
Brian Bernstein和Matt DiSipio是Braze的高級站點可靠性工程師。