公司為什麼需要建立一套統一的開發框架?

2021-09-27 05:20:36 字數 3185 閱讀 8649

近十年,中國網際網路發展的速度越來越快,網際網路科技顛覆了越來越多的傳統行業,我們的衣食住行隨著網際網路科技的進步,發生了翻天覆地的變化。在這個大潮中,越來越多新興的公司如雨後春筍般的冒了出來,他們的業務增長非常快,公司規模也越來越大。這得益於中國經濟的高速增長和網際網路的快速發展。

在公司快速的發展過程中,往往會出現這樣乙個鏈條。新增一塊業務 —> 招聘一位高階技術人員 —> 圍繞這位同事組建乙隻技術團隊 —> 該業務基本由這只團隊負責。然後就形成了乙個閉環。當需要跟其他業務進行互動時,經常是技術負責人之間自行決定。(我曾經經歷過乙個專案,同樣乙個業務介面,同時提供 rpc,http,mq 等多種方式,為了給不同的專案提供基礎服務)。

隨著業務規模的快速發展,這個團隊很快的形成了乙個部門,團隊決策者通常會從自身利益考量,希望儘量減少對外部門的依賴,無論是技術選型,規範建立,元件選取,執行環境都能夠自行掌控。(在這裡講乙個笑話,在一家公司怎麼成為中層領導呢?很簡單,招聘足夠多的下屬就可以了)。

當這樣的技術氛圍一旦形成,單個員工對單個專案的影響就會變的非常巨大。乙個產品經常會因為一兩個核心員工的離職難以為繼,最後不得不重新開發新的產品。

當每個團隊都在試圖構建自己完整的研發流程時。中間的技術研究,產品研發,運維管理就會出現非常多的資源浪費。

怎麼衡量乙個川菜廚師和乙個魯菜廚師誰更優秀?當每個團隊都採用不同技術棧,不同的技術元件,不同的維護方式和規範時。已經無法從產出效率來判斷乙個團隊的績效。kpi 指標也就非常難以設立。

在公司發展初期,為了快速的進行業務拓展,大都不考慮成本投入,運營維護以及技術沉澱等問題。所有的指標導向都是業務的快速發展,盡可能的搶占市場份額,獲取足夠多的使用者數量。

在公司發展到一定階段後,市場逐漸趨於穩定,先期快速擴充套件的各種問題會逐步暴露出來。從技術層面來講,如果可以形成公司級別的統一開發框架,會在實際的生產過程中帶來非常大的收益。

讓專案組把精力更多的投入到業務中。相信這是大多數技術公司的共識,如果讓專案組把精力投入在業務中?就需要在專案組之下構建乙個基礎的開發架構平台,把技術的共性問題提煉出來,交給這樣乙個團隊負責處理。避免每個專案都獨自去解決遇到的各種各樣的技術難題,有效的把精力釋放出來。

要千人一面,而不要千人千面。採用統一的開發框架(平台)後,在技術棧,技術元件,技術實現方案,甚至在**規範上就能形成標準化的技術輸出模式,標準化帶來的最大效果不僅僅開發效率的快速提公升,還有產品質量的大幅提公升,這是顯而易見的。

技術的進步**於不斷的技術積累和沉澱。每個工程師都是站在別人肩膀上完成工作的。以專案為導向的技術團隊,一般都會以實現業務需求為最重要的目標,技術只不過是完成業務的一種工具而已。基於此,業務開發團隊就不可能把技術積累作為一項重要的工作。當一位核心員工構建了一些基礎的平台工具後,往往隨著他的離開把之前的技術積累全部丟棄掉,而更嚴重的情況會導致整個專案的持續執行都成了問題。

當存在公司級別的統一開發框架(平台),專案團隊基於該平台進行自身專案的研發,不再需要關注於底層技術實現,只需要關注業務即可。當存在核心同事離職時,平台的研發同事可以對新進入專案的同事進行相關培訓,不會導致青黃不接的事情發生。而且,專注於平台的同事為了更好的滿足專案組的技術需求,對平台進行不斷的改進,從而達到技術積累和沉澱的目標。

當基於同一開發框架(平台)的標準化技術規範建立起來後,對業務功能的**實現就可以進行相對有效的評估和考量,可以避免因為技術實現差異而出現的種種問題。這對 kpi 的制定和考核是乙個巨大的幫助。

統一開發框架(平台)定位於技術層面,其主要目的是為統一公司內相關產品研發和專案實施使用的技術架構和開發工具,有效提高統一技術支援力度,形成持續的技術積累手段,提公升技術人員的利用率並降低對人員的依賴性,最終提公升軟體的規模化、流水線式的生產能力。

spring cloud 在 2017 年一躍成為最流行的微服務開發框架,不是採用了 spring cloud 框架就實現了微服務架構,具備了微服務架構的優勢。正確的理解是使用 spring cloud 框架開發微服務架構的系統,使系統具備微服務架構的優勢。下圖為選擇 spring cloud 作為技術棧的原因。

spring cloud 提供的基礎構建可能無法完全滿足業務需求,需要在部分構件之上做二次研發。比如我們在 zuul 基礎之上研發的 api 閘道器、服務註冊發現中心 eurekaplus 等。

下圖為服務註冊發現中心 eurekaplus 的截圖,可以手動控**務註冊中心的節點狀態,從而支援藍綠部署。

下圖為分布式任務排程框架原理。執行器在啟動時將任務介面註冊到分布式資料中心,編排中心從分布式資料中心獲取執行器資訊進行編排,然後把編排資訊儲存到資料儲存中,排程中心從資料儲存中獲取資訊對執行器進行遠端排程。

如何在公司推進統一開發框架(平台)的建設,並不是一件簡單的事情。以我個人的經驗,從分工和運作方式上來講,我主要著重把統一開發框架(平台)的工作分成三個部分。

開發示例、技術支援和技術規範。編寫完整的開發示例,對很多新接觸統一開發框架的同事來說,有乙份完成業務開發是非常重要,不僅僅可以指導你如何進行業務**的編寫,同時還能夠指導你如何編寫出正確、高效的**。還需要對很多同事進行技術培訓與技術支援支援,都是統一開發框架(平台)團隊應該完成的工作。

服務運維。統一開發框架(平台)提供了很多公司內部的服務,比如服務註冊發現中心、配置中心、監控中心、鏈路中心、健康監測中心等。這些都需要統一開發框架(平台)團隊進行運維。

新元件、新產品的研發。前一章節提到的 api 閘道器、分布式任務排程框架、服務註冊中心 plus 等。都是統一開發框架(平台)團隊的工作範圍。

雖然建設公司級的統一開發框架(平台)會在實際的生產過程中帶來非常大的收益。但未必適用於所有情況,考慮到某些專案產品的特殊性,並不能一概而論。

SpringCloud為什麼需要統一配置中心

springcloud為什麼需要統一配置中心 1 不方便維護。2 配置內容安全與許可權,在乙個公司,線上的配置基本上不會對開發公開,特別是一些敏感資訊,比如資料庫賬號密碼等等。3 更新配置專案需要重啟。springcloud統一配置中心架構簡圖 springcloudbus自動更新配置理論 conf...

為什麼你需要設計和維護一套自我移動標準?

從這次對話以及其他的一些與建立標準相關的經歷中,我意識到大多數公司都是從品牌的角度來看標準的。有一些甚至是從介面設計的角度來看標準。但是建立標準絕不僅僅包括這些,尤其是對移動裝置來說。移動平台不同於普通的計算平台,在普通的計算平台中,你可以做出一些確定的假設,即工作將會如何進行以及人們將會如何操作。...

搭建一套積分商城系統需要注意什麼?

越來越多的企業意識到積分 系統的重要性,一套積分 系統的開發,不僅可以拉新使用者,提高使用者活躍度,還可以提公升使用者留存率,從而提高企業的轉化效果。積分 系統的開發過程,有什麼需要我們注意的呢?1 從使用者角度出發,搭建完善的積分 系統 在開發之前,企業就應該從使用者角度去考慮問題,把握好使用者的...