微服務架構與云應用程序效率二三事
云計算讓應用程序管理員可以訪問或獲取可靈活擴展的計算和存儲資源,從而改變了我們交付服務的方式。但是云計算也在顯著影響IT的另一個方面:應用程序開發。企業組織應該重新考慮應用程序的設計原則,并調整設計模式,以便充分利用云計算具有的可擴展性;而做到這一點的一條途徑就是通過微服務架構。
微服務帶來了一種全新的應用程序設計策略,它使用諸多服務來實施應用程序,而不是構建整體式應用程序。比如說,按傳統方法,企業組織會使用運行用戶接口代碼的網站服務器、運行所有業務邏輯和服務的整體式應用程序,以及滿足所有持久存儲需求的單一數據庫,構建電子商務網站。可能要部署網站服務器和應用服務器各一臺,它們配備負載均衡系統和自動擴展功能,以便根據負載的變化增加和減少資源。
雖然這是一種很常見的設計模式,卻存在其劣勢。比如說,整體式應用程序哪怕出現細小的變化也需要開發人員重新構建和重新部署整個應用程序。這可能很耗費時間,如果開發人員沒有全面深入地測試應用程序,還會導致問題。如果應用程序必須保持一組復雜的狀態信息,測試所有可能的狀態組織即使并非不切實際,至少也困難重重,問題也會出現。
傳統應用程序設計存在的另一個缺點是,它依賴單一的持久數據存儲區,通常是關系數據庫,比如MySQL或PostgreSQL。這些是很流行的選擇,因為它們在許多情況下效果很好,但是它們并非總是最佳選擇。比如說,需要靈活模式和可擴展性時,就要使用NoSQL數據庫。此外,關系數據庫這種選擇最適合需要支持事務的數據存儲系統,比如網站的結賬服務。
微服務架構可以將應用程序組件分解為比整體式應用程序所使用的單位粒度更細小的單位。開發人員可以為應用程序里面的每一個邏輯功能構建一個服務,而不是實施擁有所有業務邏輯的單個應用程序。所以,在上述電子商務這個例子中,可能有不同的微服務從商品目錄獲取產品數據,另一個微服務檢查產品庫存,還有一個微服務向第三方服務提交裝貨單。這每一個服務都會運行自己的流程,應用程序可以根據需要調用這些服務,并在它們之間傳送信息。
采用面向云的微服務架構
微服務為云部署提供了幾個優點。
- 企業組織想要盡可能高效地運行云服務器。在微服務架構中,它們可以在小型服務器上運行應用程序,或者將多個微服務合并到一臺較大服務器上,以一種更經濟高效的方式來使用計算資源。
- 另外,由于微服務是細粒度化,企業組織只要在需求量很大的情況下增加運行微服務的服務器數量。比如說,如果在網站上運行搜索的需求大幅上升,自動擴展服務檢測到這一點后,就能為搜索集群部署額外的服務器。雖說整體式設計也可以在自動擴展環境下運行,但是不像微服務那么高效。微服務需要的最小實例比支持整體式應用程序的最小實例可能要小得多。
- 在云計算環境下使用微服務時,總是要規劃好安全。不然,非法來源(即未授權用戶)可能部署這些服務。除了用戶授權外,微服務還應該需要某種形式的驗證令牌,驗證令牌允許服務驗證調用方的身份。另外,要對你的服務運行模糊測試及其他類型的滲透測試,幫助識別安全漏洞。
- 微服務架構與持續部署方法很搭。自動化工具有助于簡化構建代碼、將微服務部署到生產環境的過程。同樣,整體式系統也能做到這一點,但是整個過程卻不如微服務來得高效。比如說,如果你非得回滾(roolback)之前已經部署的代碼,回滾微服務給生產環境帶來的干擾要比回滾大規模應用程序來得小。
總的來說,微服務可以補充云計算,并且便于更高效地使用資源,如果不同的服務有不同的性能概況更是如此。
責任編輯:售電衡衡
-
碳中和戰略|趙英民副部長致辭全文
2020-10-19碳中和,碳排放,趙英民 -
兩部門:推廣不停電作業技術 減少停電時間和停電次數
2020-09-28獲得電力,供電可靠性,供電企業 -
國家發改委、國家能源局:推廣不停電作業技術 減少停電時間和停電次數
2020-09-28獲得電力,供電可靠性,供電企業
-
碳中和戰略|趙英民副部長致辭全文
2020-10-19碳中和,碳排放,趙英民 -
深度報告 | 基于分類監管與當量協同的碳市場框架設計方案
2020-07-21碳市場,碳排放,碳交易 -
碳市場讓重慶能源轉型與經濟發展并進
2020-07-21碳市場,碳排放,重慶
-
兩部門:推廣不停電作業技術 減少停電時間和停電次數
2020-09-28獲得電力,供電可靠性,供電企業 -
國家發改委、國家能源局:推廣不停電作業技術 減少停電時間和停電次數
2020-09-28獲得電力,供電可靠性,供電企業 -
2020年二季度福建省統調燃煤電廠節能減排信息披露
2020-07-21火電環保,燃煤電廠,超低排放
-
四川“專線供電”身陷違法困境
2019-12-16專線供電 -
我國能源替代規范法律問題研究(上)
2019-10-31能源替代規范法律 -
區域鏈結構對于數據中心有什么影響?這個影響是好是壞呢!