技術保守主義如何幫助我們更快更好地擴展
已發表: 2022-07-21在 Intercom,我們專注於未來,我們正在採取大膽的步驟來實現這一目標。 但是當我們做出技術決定時,我們喜歡保守。
在實踐中,技術上的保守看起來就像在我們的堆棧中重用現有技術和框架,或者推廣久經考驗的模式和解決方案。 我們重視這種熟悉程度,因為我們明白要解決的重要問題是那些能夠帶來客戶或業務價值的問題。
我們可以專注於通過構建、發布和迭代解決方案來改進產品,而不是評估新技術並將時間花在已經解決的最終提供很少客戶價值的運營問題上。
這是探索我們產品原理的系列文章中的第六篇。 在這裡,Waheed 討論了我們的工程原則“技術上保守”。
技術保守主義有許多長期利益
多年來的幾個例子最好地說明了這一原則,展示了“技術上的保守”如何使我們能夠快速擴展,同時最終不受限制。 我之前談到了我們設計報告系統的經驗,我們評估了在我們的堆棧中引入新數據存儲的好處 - Redshift。 這意味著向我們的系統引入一種從未針對生產進行過測試的新型數據庫。 此外,我們將不得不花費大量時間來建立運營知識、維護生產中的集群,以及處理大規模運營 Redshift 帶來的不可預見的問題。
“我們利用現有的基礎設施將流程從估計的六個月縮短到僅六週”
最終,我們認為熟悉的數據存儲更適合這項工作。 我們利用現有的 Elasticsearch 基礎設施(為 Intercom 的大部分搜索功能提供支持)將流程從估計的六個月縮短到六週。
報告系統的初始版本是幾年前發布的,因此我們有機會反思我們在這種情況下應用技術保守主義的一些長期利益:
我們更快地解決了客戶的問題
使用我們現有的基礎架構意味著我們可以避免花時間熟悉新的數據存儲和處理所有不可避免的問題。 我們能夠立即專注於客戶需要解決的問題,并快速發貨,將交貨時間縮短了四個多月。
我們充分利用了團隊的時間
我們的數據基礎架構團隊能夠繼續專注於一小部分熟悉的技術,而不是分散在多種技術上。 因此,他們有——並且仍然有——更多的時間來確保我們現有系統的健康並優化我們對每項技術的使用。
“因為我們的技術規模相對較小,所以會定期進行改進”
我們增加了持續改進的價值
由於我們的技術集相對較小,因此會定期進行改進。 該產品利用了這些技術,因此這些改進的影響在基於這些技術的所有內容中都更加複雜。 一個微小的改進可以在整個產品中產生巨大的、積極的連鎖反應。
更多的團隊有更多的投入
使用通用技術意味著更多的工程師和團隊感到自信並有能力與他們合作。 我們已經看到整個公司的團隊對報告產品進行了頻繁的改進,而不僅僅是一個擁有系統特定部分的團隊。
請記住,原則不是規則,而是指導方針
原則是一種令人難以置信的協調團隊的方式,並為 Intercom 帶來了巨大的成果。 但有時不跟隨他們可能更有意義。 隨著公司規模的擴大,一些團隊成員可能會教條地遵循原則或錯誤地解釋它們。 默認採用技術保守主義並不意味著我們永遠不會引入新事物。
“技術保守主義意味著偏愛已經在你的堆棧中的技術——但前提是它是最好的選擇”
技術保守主義意味著偏愛已經在你的堆棧中的技術——但前提是它是最好的選擇。 在某些情況下,現有技術可能不適用。 如果它不能回答以下問題,我們可能會進一步研究並評估替代方案:
- 新工具能否讓您的業務更有效地擴展?
- 它是否允許您的團隊或組織更快地行動並更快地交付價值?
- 它是否解決了您現有工具無法解決的客戶問題?
如果您對其中任何一個回答“是”,則可能值得考慮引入該新工具。 在 Intercom,最近有一個例子對所有三個問題都回答了“是”。

用戶,或我們客戶的客戶,是對講平台的核心。 隨著我們的成長,我們的客戶及其在對講機中存儲多少用戶數據方面的需求也在增長。 大量的用戶數據導致當時我們當前的用戶數據存儲出現擴展問題,為了確保我們能夠繼續支持現有和新客戶,我們需要重新考慮當前的解決方案。 這最終導致我們在我們的堆棧中引入了一項新技術——這就是我們做出這個決定的方式。
我們的擴展速度超過了我們的數據存儲所允許的速度
我們使用 MongoDB 大約有 5 年了,並且有運營上的傷痕來證明這一點。 我們已經優化了擁有和運行它的各個方面——從它運行的硬件類型,到我們在它上面運行的查詢。 我們正處於收益遞減點,並看到強烈的信號表明它在幾年內將不再適用——甚至可能成為公司增長的瓶頸。
“經常思考你的業務發展軌跡,並問‘是什麼讓我們在這裡,讓我們到達那裡? '。 這將使您對自己的選擇更加積極主動,而不是被動反應”
這就是擁有強大的、具有前瞻性的技術戰略的關鍵所在。 在這一點上,我們有足夠的數據表明我們可能需要評估另一種方法並有跑道來做。 定期思考您的業務發展軌跡,並問“是什麼讓我們走到了這裡,讓我們到達了那裡?”。 這將使您能夠積極主動地做出選擇,而不是被動地做出反應,並減輕因引入新技術而帶來的未知風險。
我們的技術正在減慢我們的團隊
在 Intercom,我們努力運行更少的軟件。 在這種情況下,即使我們採用了未知未知的新技術,採用 DynamoDB 也讓我們能夠做到這一點。
以前,我們需要自行管理 MongoDB 的擴展以及平衡負載的代碼——這對團隊來說是一筆巨大的開銷。 DynamoDB 的部分吸引力在於它由供應商 AWS 管理。 這意味著,雖然採用它有初始成本,但最終它會更便宜,並為團隊節省大量時間和精力。
“對技術保守主義不教條,使我們能夠以大量開銷和有限的能力取代一項技術”
這似乎違反直覺,但引入新技術最終導致我們運行的軟件更少。 不拘泥於技術保守主義使我們能夠用一種操作上負擔更輕、可擴展性更強的新技術來取代一項開銷巨大且功能有限的技術。
我們對要求無情
我們有時會要求 MongoDB 執行複雜且昂貴的查詢,這會危及可用性和更常見但不太複雜的查詢的性能。 在評估 DynamoDB 時,我們意識到它不支持那些複雜且昂貴的查詢,但在更簡單和更常見的查詢方面會好得多。
我們已經主要使用 Elasticsearch 來執行複雜的查詢,遷移的需要迫使我們審查並更仔細地定義我們需要從用戶存儲中獲得的功能,並最終使我們能夠提高其主要用例的性能:檢索單個用戶記錄。
“在考慮更換一項技術時,不要想當然地認為你會以同樣的方式使用新技術”
在考慮更換一項技術時,不要想當然地認為您將以同樣的方式使用新技術。 隨著時間的推移,您的需求可能會發生很大變化,並且堆棧的其餘部分將不斷發展或成熟,從而使用例變得更加狹窄。 這將為採用更專注、更高效的技術或卸載一些由供應商管理的技術提供機會。
讓您的原則為您的業務服務,而不是相反
技術保守主義是一個很好的工具,可以讓您的團隊專注於重要的事情——解決客戶問題並提供價值,而無需花費寶貴的資源來回答已經回答的問題。
但是,過於固執地認為引入新技術是不好的,可能會阻止您利用可以幫助您運行更少軟件並更輕鬆快速地擴展的技術。 從長遠來看,以最適合您的團隊和您的業務的方式應用此原則非常重要。
您有興趣加入對講機的工程團隊嗎? 了解更多信息並在此處查看我們的空缺職位。