我們的基礎架構如何與客戶一起擴展
已發表: 2022-06-03我們非常重視通過我們的 Engagement OS 提供最佳的客戶體驗。 我們有真正的全球雄心,將我們的使命使互聯網業務個性化,帶給全球最大的企業客戶。
這一雄心體現在我們設計和構建支持對講平台的基礎設施的方式上。 我們的建設是長期的——這意味著默認情況下確保可靠性,以及隨著我們的發展適應大規模的能力。
對講機一直在增長,而且只會繼續增長——多年來,我們的許多長期客戶都與我們一起發展。 隨著這些現有客戶的增長,我們歡迎越來越大的客戶,我們一直專注於說“是”來擴大規模。
這是探索對講如何擴展關鍵功能以支持企業客戶需求的系列文章中的第三篇。
我們與客戶一起成長
- 您希望為數百萬活躍用戶提供服務。 對講機能做到嗎?
- 您需要存儲數百萬條用戶記錄。 對講機能做到嗎?
- 您的工作區中有成千上萬的活動代理需要操作。 對講機可以處理嗎?
是的以上所有。
如今,我們的系統可以動態擴展以在峰值每秒處理約 50,000 個 Web 請求、每秒 26,000 個後台作業和每秒 11,000 個公共 API 請求,這表明我們有能力不斷擴展以滿足現代企業的需求。
我們希望與您的抱負相匹配。 這意味著能夠以可靠和高性能的方式容納巨大的工作負載,並隨著我們的客戶與我們一起成長而不斷擴展它們。 我們希望與我們的客戶真正合作,以確保我們能夠長期、大規模地解決他們的問題。
在 Intercom,我們的目標是運行更少的軟件
我們完全建立在一小部分核心技術之上。 這使我們能夠開發由深度領域專家組成的團隊,以支持和支持產品工程師構建下一代對講機,並提供世界一流的可觀察性工具、可擴展性、可靠性和默認安全構建模式。
我們的工具可實現高可用性
我們專門與 AWS 作為我們的雲服務提供商合作,目前在三個不同的全球區域(美國、歐洲和澳大利亞)提供數據託管產品,每個區域都跨多個可用區構建以實現高可用性。
我們的隊友應用程序是一個由Ruby on Rails單體支持的Ember.js前端。 Rails 應用程序是 Intercom 的核心,我們將其部署到專用的每個功能集群上的數千個 Web、API 和異步工作人員。
“每年的黑色星期五,隨著我們的許多客戶進入他們最繁忙的時期,我們的基礎設施規模可以在沒有人為乾預的情況下匹配”
當我們每天經歷客戶流量的高峰和低谷時,這些集群會自動擴展以服務客戶請求。 例如,每年的黑色星期五,隨著我們的許多客戶進入他們最忙碌的時期,我們的基礎設施規模可以在沒有人為乾預的情況下進行匹配。
我們的可觀察性工具使我們能夠密切監控我們如何為流量提供服務
我們的可觀察性工具確保我們掌握脈搏,了解我們為每個客戶提供流量的效率和有效性。 我們還與 AWS 在新技術和新方法方面密切合作,以在未來證明我們的快速增長。
除了標準指標和日誌記錄之外,我們的 Rails 單體應用還自動配備了高質量、屬性豐富的跟踪。 這使工程師無需編寫任何額外代碼即可觀察生產。
我們的可觀察性管道基於Honeycomb Refinery ,默認情況下動態採樣有價值的請求以保留有趣的跟踪(例如,面向客戶的錯誤)。 我們還能夠配置自定義規則以實現全面採樣控制。
“我們支持 100% 保留,以便在我們構建新功能或調試生產問題時為工程師提供他們需要的所有數據”
至關重要的是,對於最有價值的交易,我們支持 100% 保留,以便在我們構建新功能或調試生產問題時為工程師提供他們需要的所有數據。 此外,當我們用請求發起者的客戶 ID 標記所有跟踪時,我們可以深入了解我們的任何客戶如何體驗對講。
不同的數據存儲允許跨各種用例進行優化
我們運行幾種不同類型的數據存儲來支持我們跨應用程序的各種數據讀取和寫入要求:
- AWS Aurora MySQL :我們的真實數據存儲源主要建立在 AWS Aurora MySQL 之上。 作為我們初始擴展的一部分,我們按功能對數據庫進行了分片。 一旦單個數據庫集群增長到 AWS Aurora 提供的最大實例,我們就啟動了一項計劃,為每個客戶構建駐留在多個較小數據庫集群集群上的數據庫,我們現在可以水平和垂直擴展這些數據庫。 這項工作於 2020 年初完成,該架構允許我們無限擴展我們最大的表。
- Elasticache :在我們的數據庫前面,我們有一個構建在 Elasticache 之上的memcached緩存層。
- DynamoDB :我們謹慎地使用 DynamoDB來處理非常高的讀寫用例。
搜索是對講機不可缺少的一部分
搜索支持一系列核心對講功能——收件箱視圖、 API 、文章、用戶列表、出站、報告、解析機器人和我們的內部日誌系統。
搜索主要由許多按功能劃分的Elasticsearch集群提供支持。 我們構建了許多工具來自動化 Elasticsearch 最費力的任務,包括安全補丁、升級和更換退化的硬件。 我們還構建了允許我們針對索引運行遷移(以類似於 MySQL 的方式)的工具。
“我們的全球基礎設施旨在為成千上萬的大大小小的公司提供服務”
除了提高我們工程師大規模迭代索引架構的能力外,它還允許我們將大型索引分解為更易於管理並提供更高性能和穩定性的較小索引。 它還為我們提供了進一步的維度,我們可以在其中擴展 Elasticsearch 集群。 就像我們的 MySQL 分片方法一樣,這為我們提供了多年的擴展跑道。
對講機的全球基礎設施專為互聯網規模而構建
我們的全球基礎設施旨在為數十萬家大大小小的公司提供服務,我們在管理基礎設施運營方面所採用的嚴謹態度確保了一切順利進行。
在製定路線圖時,擴展是每個團隊都考慮的關鍵輸入。 我們的定期運營審查由我們後端團隊的多個級別的專家做出貢獻,我們在這些團隊中評估基礎設施指標並審查容量要求。
我們努力並聰明地保持這種狀態,這就是我們的客戶信任我們的原因——從最小的初創公司到世界上最大的企業。
發現企業對講系列中的其他帖子