什麼是微服務?

 

微服務泛指數千個獨立網路標準、程式設計語言、資料庫平台與網路伺服器元件,其存在於現行軟體開發生命週期中,並做為開發人員工具使用。從傳統觀點來看,過去的企業著重採用服務導向架構 (SOA),由單一 IT 公司提供整合的軟硬體技術。而微服務提供的,是由獨立開發公司或開放式原始碼社群提供的雲端軟體應用程式與網路伺服器元件,支援的元件數量達數千個之多。過去,IT 部門需要尋求嶄新思維,在超大規模的公有雲資料中心內管理跨越隔離多租戶環境的生產作業微服務,並廣泛運用虛擬化解決方案搭配支援服務網格技術的軟體定義的資料中心標準,才能解決問題。微服務則可組成建構區塊或基礎元件、平台與架構,而當中的程式碼會在雲端資料中心內的網路伺服器上建置與運作。

單體架構與微服務架構

  • 單體架構:誕生於 IBM 大型主機時代,以及 Microsoft Windows 作業系統壟斷企業 IT 的時期。 
  • 微服務:源自於開放式原始碼社群、協力廠商開發人員,以及新創公司,由獨立程式設計人員貢獻程式碼,為最受歡迎的網路伺服器平台提供基礎功能延展。現在,多數主流 IT 公司都會發行專屬微服務並對開放式原始碼專案貢獻心力,在奠基於獨特基礎上的更廣大解決方案市場中,這些標準廣為不同的垂直產業與團隊所採用。雖然微服務也運用相同的開發人員創新原則,透過開放式原始碼解決方案提供雲端應用程式,但目前也有許多採專利授權模式的微服務。

 

微服務的優勢

  • 快速實現創新:相較於使用單體架構,當需要為軟體應用程式建立新功能時,企業與新創公司能加快從創新到產品上市的速度。使用網路與行動應用程式的客戶可要求新功能。創新技術也能透過廣為採用與企業接受度獲得資金。無論是主流還是新創 IT 公司,都可透過整合新微服務來維持程式設計與開發的領先地位。
  • 進一步推動資料中心自動化:開發人員偏好使用特定平台或標準來完成工作,而這也包括使用微服務支援網路/行動應用程式中的程式設計語言與資料庫。微服務可透過 API 等指令碼編寫流程來連接,進一步推動資料中心自動化。

 

微服務的運作方式

微服務的主要運作方式,在於透過預設作業系統、網路或資料中心管理平台,增加網路伺服器的可用功能。部分微服務為網路伺服器堆疊的延伸功能,像是程式設計語言平台與資料中心架構。網路伺服器環境必須使用 LAMP 平台支援進行設定,才能開發 PHP 與 MySQL 應用程式。微服務式解決方案的主要競爭對手,正是 Microsoft、Oracle、IBM,以及其他封閉式原始碼主流 IT 公司提供的服務導向架構。現在,企業的生產環境必須先後或同步支援以 PHP、Python、Ruby-on-Rails、Java、C++ 與 ASP.net 撰寫而成的多個應用程式。在其他情況下,透過多租戶硬體上的虛擬機,資料中心可運用多個資料庫架構。網路伺服器必須透過設定來支援自訂延伸功能,以便串流媒體與整合 API,或透過新增專屬公用程式來進行分析。只要將上述所有協力廠商與開放式原始碼服務加在一起,典型的生產作業網路伺服器上便坐擁數千個微服務;接著,這些微服務將與公有雲服務環境中的數百萬個虛擬機,進行超大規模的交相加乘。

 

微服務的歷史

「微服務」一字誕生於網路 2.0 時代,當時的企業 IT 需要透過新方式將軟體開發環境概念化,以反映當下商業網路與最佳實踐方式。使用微服務進行網路與行動應用程式開發,增加了資料中心管理員支援企業營運的複雜度。過去,公司只需與 Oracle、IBM 或 Microsoft 簽訂契約,即可一舉涵蓋所有必備軟體與資料中心解決方案;現在,他們必須在數百萬個選項中,尋找提供企業級解決方案的開放式原始碼專案。許多網路標準都需面臨來自其他公司的競爭版本。許多程式設計語言與資料庫的使用功能也多有重疊。每個開發團隊都有偏好使用的工具與程式設計方法。為能在雲端時代的整合式企業 IT 部門中管理種種複雜度,促使全球眾多複雜組織需在專業軟體開發作業中支援微服務。

 

瞭解微服務架構

瞭解微服務架構的最佳途徑,就是描繪網路伺服器堆疊中的各個軟體層。網路伺服器的作業系統可以是 Windows、Linux 或 BSD。網路上有許多資料中心管理與負載平衡工具可供選用。網路伺服器則有 Apache、IIS、NGINX、Caddy 與 Tomcat 等選項。接下來,則是安裝程式設計語言支援的分層,例如 PHP、ASP.net、Python、Ruby、Perl、Java 與 Go。隨後為資料庫架構層,例如 MySQL、MSSQL、PostgreSQL 與 MongoDB。另外,還有 Varnish、Redis、CDN 等快取公用程式與最佳化公用程式的分層。其他支援分層則包括邊緣伺服器、無伺服器平台,以及人工智慧/機器學習整合。存在於公有雲商業網路中且同時運行的數千個微服務,需要在服務網格中加以管理,才能支援互通性,並進行路由與通訊。

 

服務導向架構 (SOA) 與微服務

服務導向架構 (SOA) 通常會由單一廠商提供,或包含一個由軟硬體解決方案組成的套件;只要部署該套件,即可滿足明確定義的產業需求。透過不同的發行或產品模式,SOA 可支援資料中心、網路伺服器與堆疊層。廠商可透過專屬或開放式原始碼解決方案來提供 SOA。雲端資料中心與內部私有資料中心的網路設備與光纖連線,管理方式不盡相同。如果需要在軟體開發現況下尋求創新,就需要使用微服務。規模數一數二的企業也需採用微服務,才能為敏捷程式設計團隊提供支援,繼而推出新的網路/行動應用程式,讓產品支援得以涵蓋數千個品牌或領域。舊版企業軟體經常需要使用微服務來進行現代化改造與容器化。

VMware 針對微服務提供的相關產品、解決方案與資源

軟體定義的儲存是什麼?

VMware 軟體定義的儲存是簡便的智慧型儲存資料中心架構,可配合業務與應用程式要求。立即深入瞭解。

雲端服務定義

使用雲端服務定義的最佳實踐方式,為數千個服務導向與業務導向的作業模式奠定基礎。

什麼是虛擬化?

無論企業組織的規模為何,虛擬化都是降低 IT 開銷、提高效率和靈活性的最有效方式。

專案導向與服務導向有何不同?

現行的 IT 部門會使用「專案」做為工作管理結構。採用服務導向思維有助於加快佈建速度並降低成本。

企業雲端套件

企業雲端套件整合了一系列產品,可用來管理混合雲,並提供自助佈建。

建立服務定義與對應的虛擬端點

您必須使用 NSX Manager API 為公有雲中的服務應用裝置建立服務定義與虛擬端點。