做業務架構,全局觀很重要

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"採訪嘉賓 | 呂倩"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"今天的互聯網,用戶是本源。爲了滿足不斷變化的用戶需求、更好地解決業務發展痛點,很多企業選擇了以業務戰略爲中心的業務架構,並不斷優化和升級。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"小紅書作爲一個生活方式社區,業務邏輯是保證用戶能夠生產足夠的內容,並通過內容聯動和交流,最後激發更多的創作分享行爲。作爲年輕人的聚集地,想法多變是小紅書用戶的主要特點,這也導致小紅書在業務架構上經常面臨優化和升級。爲此,InfoQ 採訪了小紅書社區平臺架構負責人呂倩,來聊聊業務與架構的那些事兒。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"架構升級史即業務發展史"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"小紅書的架構升級史就是其業務發展的縮影。從最初的單體服務到 16 年的微服務,再到 18 年的容器化、中臺化,背後轉變的推動力就是業務的發展和用戶體量的增長。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"“最開始,我們是想快速上線,可以立刻爲用戶服務。但隨着用戶量增多,單體架構難以支撐,我們改成了微服務。再到後面,我們發現業務越來越多,很多服務是可以通用的,團隊要做的就是將其中臺化。在水平擴容方面,我們便開始進行容器化,這也爲後來做雲原生打下了很好的基礎。”呂倩說道。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/wechat\/images\/98\/98d3231e5d46ea332e591b7e7bb1164e.png","alt":null,"title":null,"style":null,"href":null,"fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":"center","origin":null},"content":[{"type":"text","text":"小紅書社區架構演進"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"2020 年上半年,小紅書對資源耗費大、單機 QPS 承載不高的網關架構做了升級。這次升級的方向就是提高資源利用率和性能,同時應對日益增長的流量。小紅書選擇按功能模塊將其拆成不同組,先打基礎再做業務。“整個過程中,架構、業務和產品的同學一起溝通、改進和驗證,架構升級是一個團隊協作的事情。”呂倩說道。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"如今業務迭代越來越快,意味着開發時間短,而用戶量在不斷快速增長,穩定性成爲企業普遍面臨的挑戰。在研發服務上,小紅書研發團隊也會進行優先級劃分,劃分的依據依然是用戶。用戶核心主鏈路上的開發優先級最高,其次是網關等,以用戶優先的系統也要求企業有很強的保障機制。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在呂倩看來,可觀測性是穩定性治理的第一步。一套敏捷可靠的監控報警平臺可以幫助研發人員及時發現問題。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/wechat\/images\/95\/95057c17b62ef2abb56cd455aa4fe649.png","alt":null,"title":null,"style":null,"href":null,"fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":"center","origin":null},"content":[{"type":"text","text":"小紅書監控報警技術棧演進"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在高可用方面,小紅書目前在做雙活架構,未來也會探索多活架構,保證在像機場斷電、火災等極端場景下服務器仍可穩定運行。當然部署雙活架構後,也會伴隨着更復雜的流量調度、故障切換等問題出現,這些都需要解決。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"現在,面對像雙十一這樣的高併發場景,很多企業已經輕車熟路。在這種情況下,小紅書通常會事先做流量預估,並做預擴容和壓力測試等,如果遇到計劃之外的流量,則利用消息隊列去“消峯填谷”,同時要建立流控、熔斷、降級等機制應來保障後端的服務。最新數據顯示,目前小紅書月活用戶已超 1 億,系統完全可以支撐得起該級別體量。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在升級過程中,很多時候都是“邊換輪子邊跑”的狀態。呂倩表示,在上線改造過程中,要保證新業務可以直接在底層架構上開發。新業務優先到新架構上做,老業務再逐步遷移,最後形成一個完整的架構升級。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"呂倩總結了升級過程中需要注意的三點:瞭解現在遇到的問題,統一大家的訴求;有明確的規劃,使大家行動一致,並有序進行;改造驗證,這對用戶體驗很重要。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"做業務架構,全局觀很重要"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"架構迭代速度快似乎正在成爲國內互聯網企業的一個“特色”。一方面,國內互聯網變化太快,用戶需求和業務需求一直在變,並且變化速度非常快,這導致系統的迭代更新也要非常快。另一方面,國外企業更看重標準化,從提需求到測試、發佈等,整個流程更加規範,但同時也會使流程更加繁瑣且耗時更長。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"“只有跑得足夠快,才能跟上用戶需求。”呂倩說道。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"但面對成千上萬種不同的業務需求,架構師們並沒有統一的模型可以套用。很多人會選擇“先做再說”。雖然業務邏輯可能千差萬別,但呂倩認爲技術卻是通用的。比如高流量、高併發等技術痛點是很多企業都在面臨的問題,對應的,雲原生等這樣的技術解決方案也可能是通用的。“技術本身是通用的,只是反映到業務上會各有不同的側重點。”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"無論搜索還是推薦,最終的落腳點還是內容。在對通用問題的處理上,小紅書將一些通用化能力通過中臺進行打包,並以接口形式支持外部系統,以此來避免很多重複性工作,快速支持業務發展。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"呂倩表示,小紅書提出中臺化的目標除了保護核心數據,更重要的就是做標準化,讓核心系統更加穩定和高可用,並且能夠支撐業務迭代,讓業務跑得更快。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"但是,這裏也存在一個矛盾:作爲底層服務,改變接口會帶來相關業務的一系列改變,這就要求接口不能有太大的改變,但用戶需求和相關業務的變化是很快的,不變又無法跟上企業發展需求。既要保證新業務能夠快速上線,又要保證業務能夠平穩地水平擴展,成爲當前企業在業務架構上普遍面臨的難點。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"那麼,如何做到架構升級又快又穩呢?在呂倩看來,架構師需要有清晰的思路,明白哪些事情是需要優先解決的,哪些是可以稍往後放的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"“雖然架構師優先要緊跟業務需求、解決當前迭代痛點,但架構師不能只顧當下的問題,還要有前瞻性和全局觀,走進用戶和業務,瞭解當前業務的問題及未來可能的變化,提前做技術儲備。”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"面對快速變化的業務,企業在進行着大大小小的升級,有的可能一兩個月就可以搞定,有的則可能要半年。呂倩表示,如果升級週期較長,架構師在設計的時候就要把思維放在這個週期之後,也就是說要預先去規劃這個週期之後的事情。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在呂倩看來,業務預測並不簡單,要預測業務發展基本方向。同時爲計劃之外的新業務出現,提前可以做庫表、組件等接口的預留,保證系統可以輕鬆擴容等。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"各大企業都在做業務閉環,鏈路越拉越長,導致不同的業務系統越來越多。呂倩表示這雖然會對底層架構產生一定的影響,但將不同的業務系統融合起來就會形成一個整體的生態體系,生態化也會降低事情的複雜度。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"但如何構建業務生態系統,這涉及到了企業重要的發展規劃問題,這對架構師來說會是一個巨大的挑戰。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"嘉賓介紹:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"呂倩,小紅書社區平臺架構負責人"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章