如何避免程式設計師和產品經理打架?「微服務」或將成終極解決方案

程序員與產品經理打架,早已稱不上互聯網圈的新聞。懷揣改變世界的遠大抱負,卻要每天和多變刁鑽的需求戰鬥,這是許多程序員的“生存困境”。那麼除了板磚和拼死不從,程序員就沒有別的對付變態需求的辦法嗎?

如何避免程序員和產品經理打架?“微服務”或將成終極解決方案

持續更新是產品常態

不否認存在過於異想天開或需求不清的產品經理,諸如要求“App隨手機殼變色”,此時程序員只想掄起板磚,拍死產品經理。然而在這個互聯網成為基礎設施的數字經濟時代,需求的變化是常態,不論哪個行業,不管是為滿足客戶或是出於競爭壓力,都會有需求的變動挑戰程序。很多時候,程序員即便把產品經理打到生活不能自理,也無助於解決企業發展的問題。

根據IDC《數字經濟創新引領——2018中國企業數字化發展報告》,數字化創新需要打造的多項能力與變化有關,譬如:

敏捷能力:企業在不斷變化、不可預測的經營環境中快速反應並給予恰當應對措施的能力。

數字化產品與服務:通過不斷迭代、實驗和測試的方式開發新產品與服務,並實現頻繁乃至連續更新,不斷提供客戶價值的能力。

鑑於當前市場競爭的激烈程度,我們甚至可以推論,企業所允許的迭代頻率,決定了這個企業成長的下限。在這種情況下,程序員的工作變得更繁忙、更瑣碎也是必然。

微服務的曙光與陰影

解決這種矛盾,必須把目光投向一直在迭代中發展的互聯網公司,新的答案將是“微服務架構”。以不追逐風口穩健發展的網易為例,網易考拉採用微服務架構之後,每天的發佈次數從2次做到了1000次,500倍的提升,可謂從步槍到大炮。

所謂微服務架構,就是將應用服務按功能拆分成一組相互協作的服務,每個服務負責一組特定、相關的功能,可以獨立開發、部署。用網易副總裁、網易杭州研究院執行院長汪源的類比解釋,就是把系統劃分成多個非常小的模塊,而且這些模塊都可以通過一套標準的服務接口進行溝通,從而持續發展——類似人類社會,基於人這個最小單位,設計了標準的語言、文字、貨幣、法律,發展形成了發達的文明。

微服務對整體問題的分解,為迭代帶來了好處——局部的技術選擇、變更不會影響整個系統,而且不同模塊的開發可以同時進行。然而,整個系統的完善程度,也受限於微服務“分”與“合”的各項標準,這正如文字、法律等標準的成熟度決定一個文明的高度。

微服務的“標準”至少需要解決如下問題:微服務之間的調用和通信、服務之間的發現、服務調用鏈的跟蹤和質量問題、微服務的測試因依賴關係變得複雜、跨服務的更改。

當然,還有分區的數據庫體系和分佈式事務這樣的問題。

立體化的微服務方案緩解矛盾

解決上述問題的,有不少微服務框架。在微服務技術迅速普及的今天,Spring Cloud、Dubbo等開源微服務開發框架在某種程度上成為了微服務的代名詞。知乎上有不少相關的討論。

如何避免程序員和產品經理打架?“微服務”或將成終極解決方案

微服務框架並不能解決所有的問題。比如Dubbo在服務治理方面很優秀,但功能不如Spring Cloud完善;Spring Cloud雖是一個體系化的微服務解決方案,卻也沒有覆蓋整個應用生命週期,比如對微服務測試就鞭長莫及。

網易考拉使用的工具,是網易雲在2018網易雲創大會上發佈的“輕舟”微服務解決方案。汪源表示,輕舟微服務基於微服務這個基本單元,構建了多維度完整的解決方案,讓架構可以像人類社會一樣持續發展。

根據網易雲官方資料顯示,輕舟微服務包括微服務框架、API網關、DevOps、容器服務、AIOps和測試平臺等模塊,是一套複雜的解決方案,但是對用戶來說是功能完整、易接入、易運維——因為該平臺兼容開源微服務框架,並整合了網易微服務架構實踐的各種工具,藉助智能化、自動化的能力,能夠快速分析整個服務鏈路,技術發現和解決問題,讓微服務順暢運行。

如何避免程序員和產品經理打架?“微服務”或將成終極解決方案

相信這個立體化的微服務解決方案,能夠啟發企業建設新的開發流程,使企業的數字化產品與服務能夠更快、更好地迭代,程序員也有更多的時間去和產品經理進行有效的溝通,讓雙方的矛盾得以緩和,而企業業務目標的完成也不會受到影響。


分享到:


相關文章: