「微服務」 關於微服務的幾點老闆關心問題

2020-08-29 java架構筆記

回答關於微服務的幾點老闆關心問題

單體系統在初期可以實現比較方便地開發與使用,但是隨著系統的發展,維護成本變大,且難以控制(當一個系統業務複雜且架構設計不合理,同時以前的開發者之間沒有什麼規範的時候,後續新人對於功能的修改、維護、完善都必須建立在對系統整體業務的把握上,這也對開發人員提出了更高要求)。

引進微服務架構體系作為後續主體架構,將不同的模塊拆分成多個不同的服務,服務能夠實現獨立的部署與擴展,且不同的服務都運行在自己的進程中,由於部署存在穩定的邊界,這樣每個服務的更新都不會影響到其他服務的運行,也更方便後續整體架構的水平擴展。同時平衡需求的多變和軟體工程本身的技術複雜性的矛盾,從而在應用開發小團隊中推行敏捷開發開發模式。

1、開發效率能提高嗎?

  • 在單體架構中,隨著業務的發展,代碼會越來越多,變得臃腫,編譯、啟動、打包、發布會變得越來越慢。
  • 一個小功能的改動,重啟都需要等待幾分鐘,導致很多的時間會浪費在這個過程中。
  • 由於業務的變化性較高,使得各個業務的代碼交互變得複雜,如果維護不當,會導致這些代碼難以維護。 如果進行維護,就算只改動了一個小功能,也可能會影響到N個模塊業務。
  • 在微服務的體系下,將不同的業務層劃分成各個不同的業務模塊,使得模塊間的耦合度降低,方便維護。
  • 每個業務模塊獨立成一個微服務,由不同的人員(團隊)來維護,達到可以獨立開發和獨立部署。
  • 分工明確,代碼邏輯清晰、代碼量小,可維護性高,整體提高開發效率。

2、產品質量能提高嗎?

單體架構是將所有業務功能全部集中在一個系統服務中,如果某個業務突發請求,或者異常,可能會導致整個系統宕機。

微服務體系中,會將不同的業務劃分成不同的服務,各個服務會使用多個服務進行負載、容錯、隔離。如果某個服務宕機,不會影響到整個系統的正常運行。

3、代碼的執行效率能提高嗎?

代碼的執行效率與算法和設計有關係。微服務只解決了業務的劃分之後服務治理與服務調用,對業務代碼的執行效率不會有明顯的改善,但是在改造的過程中,會逐步修復算法與設計的問題。

4、可擴展性如何?支持靈活的二次開發嗎?以什麼形式來支持呢?

微服務可以根據業務情況,對高並發業務或者需要高保障的業務進行快速的橫向擴容。

微服務以組件化的形式存在,可以根據公司不同的業務場景,滿足各種定製化需求,快速交付

微服務對後續PaaS平臺的研發和支持提供了基礎技術保障。

5、伺服器成本如何?與現在是持平還是更節省?還是更高?

由於微服務都是運行在獨立的容器中,相比ECS,大大節約了CPU與內存的使用率。

對資源的要求相對單體系統來說整體降低。

單體架構只需要一個獨立的pod容器,但是在微服務中,每個獨立服務都需要一個獨立的pod容器。

獨立服務的容錯、負載(一個業務服務運行在多個進程/容器中),則需要消耗更多的系統資源。

在微服務體系中,資源與容錯能力是成正比的。容錯能力越強,則消耗的資源越多。

6、後續的運維成本如何?

微服務體系物理架構在後續水平擴展方面可減少伺服器數量和降低對伺服器配置要求(高頻/高可用微服務和低頻/低可用微服務可分別部署至不同配置的伺服器上。

微服務體系中每個服務都可以獨立部署(高內聚低耦合),這樣每個服務的更新都不會影響到其他服務的運行或影響範圍可控,也更方便後續整體架構的水平擴展。

對於運維人員的要求: 掌握全鏈路監測、灰度發布,掌握基礎微服務知識等相關能力。

對於測試人員的要求: 混沌測試(全鏈路測試)。


微服務架構體系加持續集成方案帶來的預期收益主要有:

  • 系統水平擴展能減少應用伺服器需求數量和降低對伺服器的性能要求;
  • 快速響應業務部門的需求(系統短周期開發,測試,發布迭代的敏捷開發模式);
  • 相對單體系統降低開發人員的開發成本(微服務功能原子化)及管理成本(持續構建,靜態代碼檢測,部署自動化);
  • 系統水平擴展更便捷(子系統以微服務熱發布集成);
  • 系統穩定性更好(前後端分離,服務流量控制,服務健康檢查,服務調度可監控及可追溯)。

相關焦點

  • 被微服務轟炸?莫怕!耗時35天整出的「微服務學習教程」送你
    又被微服務轟炸?莫慌莫怕!小編連續25天,整出這份最新最全「學習教程」送你!(1)SpringCloud教程——SpringCloud微服務實戰(2)服務調用Feign入門服務調用Feign高級服務註冊與發現總結微服務架構的高並發問題服務熔斷Hystrix入門服務榕斷Hystrix高級
  • F版本SpringCloud1—大白話為啥要有微服務?啥是微服務?
    本文分為三個部分:架構的演變,即為什麼會出現微服務技術什麼是微服務,即微服務的標準概念微服務要解決什麼問題,即微服務中那麼多的組件都是幹嘛的從單體到微服務「小故事講解架構演變」於是老闆大手一揮,指引商城技術改革,emmm,還加錢招人,又招了小羊,小馬數位同事,對並夕夕商城進行升級優化。
  • 2021升級版微服務教程—為什麼會有微服務?什麼是SpringCloud?
    2021升級版SpringCloud教程從入門到實戰精通「H版&alibaba&鏈路追蹤&日誌&事務&鎖」教程全目錄「含視頻」:https://gitee.com/bingqilinpeishenme/Java-Wiki微服務基本概念架構的演變為什麼會有微服務?
  • 面試都在問的微服務、RPC、服務治理...一文幫你徹底搞懂!
    相較之下「微服務架構」能夠解決這個問題。微服務微服務 (Microservices) 就是一些協同工作小而自治的服務。此外,實施SOA時會遇到很多問題,比如通信協議(例如SOAP)的選擇、第三方中間件如何選擇、服務粒度如何確定等,目前也存在一些關於如何劃分系統的指導性原則,但其中有很多都是錯誤的。SOA並沒有告訴你如何劃分單體應用成微服務,所以在實施SOA時會遇到很多問題。這些問題在微服務框架中得到很好的解決,你可以認為微服務架構是SOA的一種特定方法。
  • 為什麼說即便是新手,也應該學習微服務?
    簡單來說,微服務架構基本符合我們拆解問題的方式:把一個複雜問題拆成多個簡單的問題,但微服務的拆解是基於業務模塊的,微服務具有以下特徵:1、這裡的獨立性指的是各個服務的開發、測試、部署都相互獨立,比如用戶服務就可以拆分作為一個單獨的服務,而它的開發也不用依賴於其他服務,如果用戶量很大,我們可以很容易的對其進行負載。
  • GO語言:微服務簡介-解決複雜問題
    許多大公司如阿里巴巴,騰訊,微博,滴滴等,已經採用現在所謂的微服務架構模式解決了我們前文所提到的單體應用遇到的種種問題。主要的思路:將應用程式分解成一套較小的互連服務。
  • 是什麼讓你這麼嚮往微服務?5分鐘了解微服務的本質
    有不少人經常問我,「最近想換個工作,不會微服務怎麼辦?」,「我們公司新立的那個項目不是微服務架構,好失望!」,「我希望下家公司使用微服務」……這樣的話聽到的太多了,但我每次問為什麼你這麼嚮往使用微服務呢,對方給出的回答總是含糊不清,都是諸如「反正其他人都在用,覺得高大上」這類的回答,所以我覺得有必要來寫一篇文章來澄清下微服務的本質了。
  • 雲原生和微服務,讓SaaS成了精
    因為用微服務技術構建的「雲原生」應用對標的是這時候問題出現了雲改造≠雲原生雲改造有一定的迷惑性上雲後做「局部」微服務裝修因為房子地基、主承重牆早定了無法改成真·微服務↓SaaS平臺為廣大成長型企業奉上技術紅利擁抱「用友」,即刻「擁有」↓
  • 微服務網關——需求篇
    聚合服務上面的「路由」處理的是一個請求直接由對應服務來處理的場景。前面說了,微服務中每個服務提供的是系統的一部分功能,所以可能一個完整的功能需要由多個微服務來提供服務,這可能就需要客戶端為了完成某個功能發送多次請求。
  • Alibaba架構師終於發布「微服務架構與實踐」文檔
    如今阿里架構師針對一系列的微服務問題,終於發布了《微服務架構與實踐》PDF文檔,接下來我們一起學習下。關於微服務架構專題特別聲明第1章 微服務架構設計概述:1. 為什麼需要微服務架構.2.傳統應用架構的問題3.
  • 微服務治理實踐:服務契約
    從以上場景,我們可以總結出使用微服務框架後,會帶來的幾點進度協同問題:1、不及時提供接口API:尤其體現在項目交接上,該問題對人員變動比較頻繁的組織,如高校項目的準畢業生和新生交接、企業項目的外包人員交接,問題會顯得更加突出。
  • 面試不會微服務沒關係,跟著我4天學會微服務
    如今微服務倍受關注:文章、博客、社交媒體和會議演講都在討論微服務。微服務正在迅速朝著加德納技術成熟度曲線(Gartner Hype cycle)的高峰前進。與此同時,也有持懷疑態度的軟體社區人員認為微服務沒什麼新鮮可言。反對者聲稱它的思想只是面向服務架構(SOA)的重塑。然而,無論是炒作還是懷疑,不可否認,微服務架構模式有非常明顯的優勢 —— 特別是在實施敏捷開發和複雜的企業應用交付方面。
  • 詳解微服務架構(一):什麼是微服務
    「去中心化」治理(DecentralizedGovernance):整體式應用往往傾向於採用單一技術平臺,微服務架構則鼓勵使用合適的工具完成各自的任務,每個微服務可以考慮選用最佳工具完成(如不同的程式語言)。微服務的技術標準傾向於尋找其他開發者已成功驗證解決類似問題的技術。
  • 微服務挺好,但你真的適合嗎?
    ,仿佛秋天裡的第一杯奶茶,給了網際網路企業初戀的感覺,仿佛所有的問題都迎刃而解了。老闆,我們轉型微服務吧」「老闆,我們這個新項目要開始了,現在都流行微服務架構,我們直接採用微服務架構設計吧」」老闆,現在雲計算這麼火,大家都在轉型做微服務,我們也技術升級做微服務吧「
  • 阿里微服務布道師:詳解微服務架構設計
    合適的業務問題選擇合適的技術可以獨立演化。服務與服務之間採取與語言無關的API進行集成。相對單體架構,微服務架構是更面向業務創新的一種架構模式。獨立團隊和自治 團隊對服務的整個生命周期負責,工作在獨立的上下文中,自己決策自己治理,而不需要統一的指揮中心。團隊和團隊之間通過鬆散的社區部落進行銜接。
  • 微服務架構開發實戰:如何實現微服務的自動擴展?
    如何實現微服務的自動擴展前面講了一些關於自動擴展的理論知識,但如何實現自動擴展,並不是三言兩語就能夠說得清楚的。特別是為了實現前面提到的那些自動擴展的模式及策略,在作業系統級別方面會需要大量的執行腳本。
  • 在雲原生時代,就一定要用微服務嗎?
    尤其是在今年 3 月初,服務網格的著名開源項目 Istio 發布了 1.5 版本,其控制面由原先的多個微服務組件,合併成了一個單體應用,大大簡化了其架構與部署運維的複雜性,贏得了滿堂喝彩。社區關於微服務模式質疑的聲音此起彼伏,也有文章大聲呼喊:「醒醒,你不是真的需要微服務!
  • 談數據:微服務環境下,數據如何治理?
    前段時間,我的一個小夥伴跳槽到了某大型國有企業,剛到公司不久,老闆給交給他一個重要項目——公司的數據中臺規劃。老闆交代:「要搞一個數據中臺架構,涵蓋數據資產管理、數據治理、數據分析等,同時這個數據中臺,要體現去中心化,甚至無中心化的理念」。
  • 「技術篇」微服務的重試和冪等
    1、摘要2、重試2.1、常見的重試場景3、冪等3.1、頁面 和API 冪等實現3.2、定時任務冪等3.3、mq的冪等消費3.4、微服務架構4、遺留問題但是對於寫的業務場景,就會導致很多問題,比如重複訂購,重複生成記錄,甚至重複扣費。
  • 什麼是微服務?
    上圖是我從 ProcessOn 模板裡隨便找的一張關於電商平臺應用服務的架構圖,可以看到裡面交織了各種各樣的業務,當行業的擴張速度超出預計的增長的時候,對底層支撐的考驗要求也越來越高。02什麼是微服務需要注意,「微服務」與「微服務架構」有著本質的區別:「微服務」強調的是服務的大小,它關注的是某一個點。