對於這幾年技術架構演進一點總結
第一年時更多是把系統做穩定,提升線上服務效能、可用率100%、應對電商618、雙11大促。以及研發ABTest工具、配置管理工具等工具。穩定的服務是使用者體驗的前提,沒有穩定的服務其他目標都是次要的,所以研發主要目標就是提升小組成員能力,應對業務快速迭代,效果提升以及618、雙11大促穩定。
任何時候在公司作出一些成績,或者希望做一些技術探索的前提以及基礎是團隊成員能力,有了足夠能力才能將事情做好、做紮實。技術探索也是同樣,需要技術能力支撐,以及對技術發展情況理解、把握,再有就是對未來以及技術演進方向把握,可以說是一件非常困難的事情。
每年都會有層出不窮的新技術產生,也會有一些技術走下坡路甚至走向消亡。對於技術發展路徑前景需要對當下有深刻認知,以及對未來演進理解才能有一定程度上正確認知,有正確的認知是投資那種技術前提,花費多少時間去學習,能給研發效率帶來提升,帶來效果提升,以及團隊技術水平的提升。新技術能帶來一個公司甚至行業巨大發展,判斷準確是在技術浪潮之中取得成績的前提。
新出現的技術如果判斷失誤,一個小的團隊來說就是花費錯誤的時間與精力去研究沒有什麼實際價值的技術,花費大量時間成本,對於一個公司判斷錯誤可能就是生死,離我們最近的就是移動網際網路,成功抓住的企業取得巨大發展蘋果、Google,沒有抓住的就要被時代拋棄比如諾基亞、摩托羅拉。
第二年推薦引擎框架、實時模型預估服務,提升架構靈活性,提升研發效率。主要是推薦引擎由規則引擎演進到了機器學習,線上服務研發方式由每個業務實現,轉變為基於配置檔案的實現方式,來實現業務邏輯抽象,本質是減少研發重複性工作投入提升研發效率。以及提升我們實現業務邏輯抽象能力,以及技術研發水平,由研發業務慢慢轉移到研發框架。
第三年引擎新方向探索、儲存探索,基於推薦業務的特點,一般業務是寫少讀多,舉個例子比如微信朋友圈寫與讀比是1:6(來自於微信團隊公開分享技術文章),而推薦業務會打亂時間順序,並且包含大量離線集中寫以及實時大量寫入,對於儲存寫入量有明顯區別於其他業務場景。這對儲存來說是比較大的挑戰。
做的東西越複雜,越需要有完善的研發流程,比如開發業務邏輯可能自測就夠了,開發推薦引擎用於多個線上業務就需要詳盡測試,除了自測之外需要產品經理、業務需求方、以及測試人員進行測試,如果自研儲存系統,那不僅需要黑盒測試還需要有自動測試用例研發人員,以及開發人員單元測試,越是級別高系統,不單單是研發人員能力,研發過程管理更是重中之重的一環。
寫程式碼容易,寫好很難,每一個部分給出合理設計與實現,並考慮擴充套件性、易維護、高效能可以說是相當高要求的一件事。軟體設計與實現是需要我們持續投入熱情、投入精力的一件事。