關於微服務架構,你不得不知道的事
微服務架構最主要的兩個特徵:細粒度和獨立,簡單來講微服務就是細粒度的獨立的服務。這有什麼好處呢?
第一,細粒度就是每一個服務專注做好一件事情,每個服務完成一個單一任務。在功能不變的情況下,應用被分解為多個可管理的服務,很好的解決了複雜性問題。
第二,獨立開發,獨立測試,獨立部署,獨立更新。開發者不再需要協調其它服務部署對本服務的影響。這種改變可以加快部署速度,快速的部署變化。因為是分散式的,微服務架構模式使得持續化部署成為可能。
從架構的角度來講,微服務架構是相當於過去的單體架構來看的。過去是單體架構,雖然做到了SOA面向服務了,但是這些服務都只是分了模組,沒有成為獨立的服務,他們都是訪問統一的資料庫。在微服務架構裡面這些服務都是獨立部署的,服務是獨立開發、測試、變更。這些服務都有自己的資料,這是微服務架構。
單體架構與微服務架構的區別:
在單體系統架構下做一個變更修改,不得不把整個系統重新部署一遍,這個時間週期會很長,而且牽一髮動全身。
而微服務架構,每個服務都可以獨立的變更和部署。從應用架構的發展來看,最早的CGI,到MVC,到SOA,再到MSA。MSA跟SOA相比新的特徵是什麼呢?一是獨立部署、快速迭代、持續交付。過去的SOA裡面每一個模組不是獨立部署的。
為什麼一直強調獨立部署很重要呢?
首先,因為獨立部署可以做到快速迭代。持續交付,永遠的測試版,這個系統沒有完成時,永遠在改,因為服務只要有新的需求時就快速變更,哪些服務不用了,讓它休眠就完了,這樣的話就可以做到持續的交付。
其次,獨立部署可以做到只針對需要的部分進行擴充套件,比如說某一個功能使用者大量在使用時,就把更多資源配給它。過去是整塊的結構,只能基於整塊進行擴充套件。現在當併發量很大時,只需要根據它的訪問系統自動的把資源配給它。
再次,獨立部署擁有自己的資料,每個服務都擁有自己的資料,給資料治理也帶來了新的要求,推動實現去中心化的服務治理。
第一,細粒度就是每一個服務專注做好一件事情,每個服務完成一個單一任務。在功能不變的情況下,應用被分解為多個可管理的服務,很好的解決了複雜性問題。
第二,獨立開發,獨立測試,獨立部署,獨立更新。開發者不再需要協調其它服務部署對本服務的影響。這種改變可以加快部署速度,快速的部署變化。因為是分散式的,微服務架構模式使得持續化部署成為可能。
從架構的角度來講,微服務架構是相當於過去的單體架構來看的。過去是單體架構,雖然做到了SOA面向服務了,但是這些服務都只是分了模組,沒有成為獨立的服務,他們都是訪問統一的資料庫。在微服務架構裡面這些服務都是獨立部署的,服務是獨立開發、測試、變更。這些服務都有自己的資料,這是微服務架構。
單體架構與微服務架構的區別:
在單體系統架構下做一個變更修改,不得不把整個系統重新部署一遍,這個時間週期會很長,而且牽一髮動全身。
而微服務架構,每個服務都可以獨立的變更和部署。從應用架構的發展來看,最早的CGI,到MVC,到SOA,再到MSA。MSA跟SOA相比新的特徵是什麼呢?一是獨立部署、快速迭代、持續交付。過去的SOA裡面每一個模組不是獨立部署的。
為什麼一直強調獨立部署很重要呢?
首先,因為獨立部署可以做到快速迭代。持續交付,永遠的測試版,這個系統沒有完成時,永遠在改,因為服務只要有新的需求時就快速變更,哪些服務不用了,讓它休眠就完了,這樣的話就可以做到持續的交付。
其次,獨立部署可以做到只針對需要的部分進行擴充套件,比如說某一個功能使用者大量在使用時,就把更多資源配給它。過去是整塊的結構,只能基於整塊進行擴充套件。現在當併發量很大時,只需要根據它的訪問系統自動的把資源配給它。
再次,獨立部署擁有自己的資料,每個服務都擁有自己的資料,給資料治理也帶來了新的要求,推動實現去中心化的服務治理。
[img index=1]
所以,單體架構更適合輕量級的簡單應用。如果你用它來開發複雜應用,那真的會很糟糕。微服務架構模式則可以用來構建複雜應用。未來業務的敏捷一定要依賴於IT的敏捷,我們一直追求敏捷的IT:一個彈性可擴充套件的雲端計算與大資料基礎平臺(IaaS + PaaS),加上基於微服務架構的原生雲應用(SaaS)開發,這已成為企業級IT的必然選擇!
相關文章
- 如何拆分你的微服務架構?微服務架構
- 關於React Hooks,你不得不知的事ReactHook
- 關於javascript你不得不知道歷史JavaScript
- 微服務架構 | 11. 分散式事務微服務架構分散式
- 關於微服務雲架構構建電子商務平臺微服務架構
- 快速搭建微服務架構的關鍵微服務架構
- 你瞭解微服務架構麼?微服務架構
- 微服務架構中的分散式事務全面詳解 -DZone微服務微服務架構分散式
- 微服務架構分散式事務管理問題微服務架構分散式
- DTM:Golang中微服務架構的分散式事務框架Golang微服務架構分散式框架
- 微服務架構及分散式事務解決方案微服務架構分散式
- 基於sanic的微服務基礎架構微服務架構
- 架構設計 | 基於Seata中介軟體,微服務模式下事務管理架構微服務模式
- 關於Java序列化你不知道的事Java
- 微服務架構微服務架構
- 關於前端架構師的二三事前端架構
- 微服務2:微服務全景架構微服務架構
- 第三代微服務架構:基於 Go 的部落格微服務實戰案例,支援分散式事務微服務架構Go分散式
- 基於SpringCloud的微服務架構設計SpringGCCloud微服務架構
- 基於容器雲的微服務架構實踐微服務架構
- [雲原生微服務架構](十)微服務架構的基礎知識微服務架構
- 關於 Git 你所不知道的一些事Git
- 關於手機裡的IP地址,你不得不知道的“祕密”
- 微服務架構:構建PHP微服務生態微服務架構PHP
- 微服務架構初探微服務架構
- 慎用 “微服務” 架構微服務架構
- 教你玩轉微服務--基於DDD的微服務架構落地實踐之路微服務架構
- 微服務架構下分散式事務解決方案-hoop(一)微服務架構分散式OOP
- 單體架構&微服務架構&中臺服務架構架構微服務
- 微服務業務架構的探索微服務架構
- SOA架構和微服務架構的區別架構微服務
- 基於Java的微服務架構原始碼案例AbixenJava微服務架構原始碼
- 關於檔案傳輸協議,你不知道的事協議
- 關於 Google 你可能還不知道的26個事實Go
- 關於執行緒池,那些你還不知道的事執行緒
- 關於Docker你不知道的事——虛擬化歷史Docker
- 架構演進之「微服務架構」架構微服務
- 架構之:微服務架構漫談架構微服務