阿里集團搜索和推薦關於效率&穩定性的思考和實踐

背景

效率和穩定性是咱們從工程層面來衡量系統對業務支持能力的兩個關鍵指標。從流程管控上來看,業務效率的提高必定程度上會影響到穩定性,而對穩定性要求太高又會帶來對業務效率的影響。從業務的角度來看,成熟的業務會更偏向於穩定性,而新業務更偏向於效率。效率和穩定性兼顧,也就變成了一個巨大的挑戰。html

咱們理解的效率

一般咱們提到「效率」更多的是關注開發效率或迭代效率,咱們這裏稱之爲「業務效率」。你們一般容易忽視「資源效率」,在阿里集團搜索和推薦現有業務規模下,忽視資源效率的將付出很大的成本。docker

效率 = 業務效率 + 資源效率測試

影響業務效率的因素主要有:阿里雲

  • 開發複雜度
  • 業務迭代流程
  • 業務維護成本
  • 穩定性要求

開發複雜度取決於其生態能爲業務的開發提供什麼支持,包括語言層面和業務領域所在的第三方生態、集團層面的二方生態、以及業務所在平臺。迭代流程一方面能夠保證業務功能的正確性,同時也能夠提高線上系統的穩定性,可是複雜的流程會很大程度上影響到業務的效率。如何下降業務開發複雜度,爲業務開發提供更強大的生態支持?如何簡化迭代流程且不影響穩定性?如何下降業務的維護成本,提高其穩定性?我有幾張阿里雲幸運券分享給你,用券購買或者升級阿里雲相應產品會有特惠驚喜哦!把想要買的產品的幸運券都領走吧!快下手,立刻就要搶光了。spa

影響資源效率的因素主要有:htm

  • 穩定性要求:一般出於穩定性考慮會適當的下降資源利用率的要求,好比爲了應對流量高峯咱們須要提早準備容量,爲了容災咱們須要有必定的容量buffer。
  • 資源的管理和分配方式:傳統靠人來管理和分配物理機效率低下,因此纔有了容器技術以及如今docker的大規模應用,可是沒有調度系統的支持docker與傳統vm相比並無明顯的優點,並不能有效解決總體資源利用率低的問題。
  • 長尾業務:傳統人治的方式沒法顧及長尾業務,長尾業務因爲其業務規模限制必然存在資源浪費。
  • 資源採購交付時間:一般採購交付時間從業務的角度來看是不可控的,爲了應對業務將來的資源需求,咱們一般須要提早1年提預算、提早半年左右時間提交採購。而這裏時間的把控徹底依賴於我的經驗。

提高資源效率最直接的手段固然是讓全部業務提高資源利用率。而運動式的作這項工做成本巨大收益也不必定能達到預期,還會極大的影響到業務效率和穩定性。如何用更低的成本、在不影響業務效率和穩定性的前提下,持續的讓資源利用率保持在合理的範圍內,是否勇於延遲採購交付時間?這是咱們的挑戰。內存

咱們理解的穩定性

一般咱們對穩定性最直觀的認識就是不core、沒有內存泄露,這也是咱們一般穩定性測試的範圍。每每你們比較容易忽視穩定性另一個重要的因素 ——— Robustness(魯棒性)。咱們認爲穩定性是在任何狀況下都不會出現服務異常中斷或資源泄露,同時在非正常輸入和非正常壓力狀況下服務在可接受延遲範圍內正確響應率不低於必定比例。資源

相關文章
相關標籤/搜索