天天看點

我們總結了每個技術團隊都會遇到的 4 個難題

阿裡巴巴 2019 年實習生校園招聘已經啟動,為此,我們整理了一篇《每個技術團隊都會遇到的4個難題》,幫助即将從校園進入公司實習的後端程式員,以實踐的視角,看看一個後端技術團隊會遇到的一些難題。雖然,技術上的難題遠不止于此,但如果能從這篇文章中獲得一些職業體感,也許對你的實習面試會有所幫助。

參與“

測測你的程式員屬性

”,有機會獲得 Cherry 櫻桃機械鍵盤、羅技滑鼠等獎品。

- 正文開始 -

從單個應用到多個應用,從百千級别的通路流量到十萬、百萬級别,從兩三個人的創業技術團隊到上千人的技術團隊矩陣,這些過程中,技術團隊都避不開了以下 4 個問題:

  • 如何預測業務峰值時的容量
  • 如何提升業務的穩定性
  • 如何提高業務的監控能力
  • 如何提高開發效率

早期的做法是在開發測試環境進行壓測,來評估線上容量,但線下環境的機器規模,和線上差距很大,很難通過線下推導線上。根據經驗,将采購的機器加入不同的應用裡面,這時候就會遇到一個問題: 最大業務峰值容量是多少?

我們總結了每個技術團隊都會遇到的 4 個難題

這個問題,其實挺難回答的。這個應用多加幾台,那個應用少加幾台,整體的業務峰值承受能力就會不一樣,加減的規則很難通過人的經驗來确定,最多隻能作為一些輔助判斷。另外,核心交易鍊路的梳理,也是一個體力活,如果依賴人為處理,有可能會漏掉一些看起來不那麼重要的”分支”,這是整個容量不确定的地方,可變的因子很多。

比較有效的方式, 是在生産系統部署全鍊路壓測,來驗證各個生産環節是否能經受住各類流量的通路,讓真實的流量來通路生産環境,實作全方位的真實業務場景模拟,確定各個環節的性能、容量和穩定性均可做到萬無一失。

日常的各種營運活動,都有可能帶來巨大的流量高峰,除了通過引入全鍊路壓測來驗證各個生産環節是否能經受住各類流量的通路, 建構系統的高可用保障能力也很關鍵,涉及多個元件或子產品,例如軟負載和配置中心、服務接入和排程編排、消息接收和發送、容器和排程、限流和降級 等。

我們總結了每個技術團隊都會遇到的 4 個難題

營運一次活動,最大的流量峰值是可以預測的,這就是服務的最大接待能力,比如50萬筆的交易建立峰值,那超過的怎麼辦?這時候,采用限流的方式,被限流的客戶在某一段時間内無法進行購物,一旦系統恢複服務能力,就可以繼續服務被限流的客戶,進而避免因流量超過上限,而影響整個平台的客戶。

分布式應用系統在協作性,擴充性和一定的容錯性方面,展現出了優勢,但是在監控、運維和診斷層面,面臨相當大的挑戰。

我們總結了每個技術團隊都會遇到的 4 個難題

早期,架構師可以畫出整個應用系統的互動架構圖,随着業務的發展,當擁有大量的應用、微服務和容器,即便整理了一幅互動架構關系圖,也會因為應用系統的變更,新需求的實作,整個應用系統的互動又會發生變化,這種變化無處不在,每天都在發生。是以,随着業務量的增加,需要覆寫面廣且深的全鍊路跟蹤監控系統 ,來診斷調用鍊的問題。

越是複雜的業務形态,定位的難度越大,就越需要全方位、360度無死角的監控,是以,建立一個平台化、跨領域和立體化的監控,能極大的縮短業務遇到問題時的恢複時間。

開發效率是一個很廣泛的話題。不同的開發崗位,不同的使用場景,會有不一樣的開發效率工具。這裡,我們介紹幾款後端工程師經常會用到的效率工具。

我們總結了每個技術團隊都會遇到的 4 個難題
  • 雲端部署效率工具:

Cloud Toolkit 是一款 IDE插件,可以幫助開發者更高效地開發、測試、診斷并部署應用。借助這個工具,開發者能夠友善地将本地應用一鍵部署到任意機器,或 ECS、EDAS、Kubernetes,并支援高效執行終端指令和 SQL 等。

點此了解詳情。
  • MacOS 搜尋利器:

MacOS 自帶的聚焦搜尋(Spotlight),可以将文稿、郵件、應用等整合在一起,通過關鍵詞比對來進行搜尋。Alfred 可以看作是Spotlight的增強版,是計算機依賴者的效率神器,支援添加自定義網絡搜尋引擎,指定規則精準定位本地檔案,以及在指令框内使用電腦、詞典等實用工具。

  • 畫圖效率工具:

系統架構圖是為了抽象的表示軟體系統的整體輪廓和各個元件之間的互相關系和限制邊界,以及軟體系統的實體部署和軟體系統的演進方向的整體視圖。通過架構圖,可以讓幹系人了解、遵循架構決策,就需要把架構資訊傳遞出去。架構圖就是一個很好的載體,所謂一圖勝千言。

  • JSON 浏覽效率插件

對于 JSON 的資料,如果不編排,格式檢視起來會很費勁。JSON-handle 是一款對 JSON 格式的内容進行浏覽和編輯,以樹形圖樣式展現 JSON 文檔的插件,支援實時編輯。

  • Java 代碼規約掃描效率插件

這是一款 Java 代碼規約掃描工具,旨在以工具的手段進行代碼規約的落地,項目包含三部分:PMD規則實作、IntelliJ IDEA 插件、Eclipse 插件,幫助開發人員在工程研發的多個階段進行代碼規約檢查, 降低故障率、提升編碼效率和品質。

當然,除了這些現成的效率工具,提升整個技術團隊的開發效率,需要單獨開發或改造一些系統,例如團隊協作平台、服務化改造等,當你以實習生的身份加入公司後,若有機會參與到這些提升開發效率的項目過程中。由此形成的效率意識,将會影響到你今後的工作習慣和理念。

本文部分内容來源于阿裡巴巴中間件資深産品專家丹臣的内部分享《阿裡巴巴中間件上雲實踐》。阿裡巴巴中間件的實習生招聘詳情,請檢視本期推文的第三篇。

互動

掃碼參與

我們總結了每個技術團隊都會遇到的 4 個難題
創意 by 岚杺,插畫 by 淩風,前端 by 子林,動畫 by 世傑。