混合云架構(gòu)將跨地理分布的公共云、私有云和本地基礎(chǔ)設(shè)施的多個環(huán)境匯集在一起??,作為一個單一的托管 IT 基礎(chǔ)設(shè)施。在基本層面上,這可能只是一家企業(yè)在其本地數(shù)據(jù)中心托管遺留應(yīng)用程序——在公共云服務(wù)上調(diào)用一些API 。然而,這種初步實(shí)施并不是混合云基礎(chǔ)架構(gòu)的最佳旗艦用例。
最大潛力的混合云包括利用云實(shí)現(xiàn)基礎(chǔ)設(shè)施即服務(wù) (IaaS)、平臺即服務(wù) (PaaS) 和軟件即服務(wù) (SaaS) 功能,能夠托管在本地、私有云和公共云以及邊緣環(huán)境的組合上運(yùn)行應(yīng)用程序,并具有無鎖定多云方法的靈活性。了解設(shè)計模式和要考慮的關(guān)鍵因素有助于提煉設(shè)計此類混合云架構(gòu)所涉及的復(fù)雜性。
最近,混合云方法通常涉及將一些服務(wù)從本地基礎(chǔ)設(shè)施遷移到公共或私有云,并且這些服務(wù)相互通信。即使構(gòu)建了一個新的應(yīng)用程序以托管在公共云上,它也會遵循傳統(tǒng)的面向服務(wù)的架構(gòu) (SOA)。
但是,今天,基于微服務(wù)的架構(gòu)是混合云模型的核心。微服務(wù)是一種將應(yīng)用程序分解為更小的組件或服務(wù)以便于部署的方法。這些微服務(wù)與 SOA 中的服務(wù)不同,因為它們有自己的技術(shù)堆棧并部署在容器中,容器是包含微服務(wù)及其依賴庫的輕量級可執(zhí)行文件。
容器是輕量級的,因為它們共享機(jī)器的操作系統(tǒng) (OS) 內(nèi)核,這意味著每個容器只包含微服務(wù)及其依賴項。任何操作系統(tǒng)依賴項都從容器所在的硬件共享。這種虛擬化允許微服務(wù)在任何本地或云環(huán)境中獨(dú)立部署。而自給自足性使得微服務(wù)與 SOA 有很大不同,更適合云部署,其中對彈性和靈活性的需求以優(yōu)化云資源是至關(guān)重要的。
容器化作為在任何環(huán)境中隔離進(jìn)程的打包模型并不是一個新概念,但2013 年作為容器引擎出現(xiàn)的Docker創(chuàng)建了一個通用的打包結(jié)構(gòu)。此外,像Kubernetes這樣的容器編排平臺可以跨混合云環(huán)境自動部署 Docker 或任何其他符合開放容器倡議 (OCI) 標(biāo)準(zhǔn)的容器。
容器化的出現(xiàn)有助于真正利用混合云的優(yōu)勢,重點(diǎn)轉(zhuǎn)移到工作負(fù)載的輕松移植和服務(wù)在您選擇的云環(huán)境上的自動部署。幾年前,關(guān)于混合云架構(gòu)的討論中的關(guān)鍵問題集中在每個工作負(fù)載應(yīng)該在哪個云或本地環(huán)境中運(yùn)行,以及如何讓這些不同的環(huán)境相互通信。從本質(zhì)上講,托管位置和物理連接仍然是主要考慮因素。
例如,處理敏感數(shù)據(jù)的應(yīng)用程序?qū)⑼泄茉谒接性粕??;蛘?,難以實(shí)現(xiàn)現(xiàn)代化的遺留應(yīng)用程序?qū)⒗^續(xù)存在于本地。同時,組織會將需要可擴(kuò)展性的應(yīng)用程序提升并轉(zhuǎn)移到公共云環(huán)境。然后,他們將建立虛擬專用網(wǎng)絡(luò) (VPN) 隧道或消息流等通道,以促進(jìn)環(huán)境之間的通信。
這些仍然是需要考慮的重要因素,但是對于容器化范例,重點(diǎn)已經(jīng)從物理位置和連接性轉(zhuǎn)移到將工作負(fù)載從一個環(huán)境無縫移動到另一個環(huán)境的靈活性。因此,無論是在私有云還是公共云中托管應(yīng)用程序都不一定是一個嚴(yán)格的決定。如果該策略不起作用,則可以輕松地跨環(huán)境移動打包為容器的工作負(fù)載、擴(kuò)大和縮小規(guī)模,甚至在不同環(huán)境中運(yùn)行相同服務(wù)的實(shí)例。所有這一切促成了現(xiàn)代、高度可用且靈活的架構(gòu),該架構(gòu)可提供高性能、資源效率和成本節(jié)約。
混合云架構(gòu)的設(shè)計和實(shí)施需要考慮很多因素,包括企業(yè)的業(yè)務(wù)目標(biāo)、當(dāng)前的技術(shù)格局、數(shù)字化轉(zhuǎn)型目標(biāo)和安全考慮。由于這種具有多個混合云解決方案的架構(gòu)可能會很快變得復(fù)雜,因此利用 ops 工具進(jìn)行集中、無縫和可擴(kuò)展的云管理非常重要。以下是創(chuàng)建混合云戰(zhàn)略時需要考慮的一些因素。
對于大多數(shù)組織而言,混合云計算的想法始于現(xiàn)代化或?qū)⑵鋺?yīng)用程序從本地遷移到云端,有幾種方法可以執(zhí)行此操作:
企業(yè)運(yùn)營團(tuán)隊通過統(tǒng)一的控制平面管理他們的云環(huán)境,該控制平面提供跨環(huán)境的內(nèi)聚和一致的云運(yùn)營體驗。它支持核心集群管理功能,如工作負(fù)載調(diào)度和編排、持續(xù)集成和部署 (CI/CD) 管道、日志記錄、遙測和聯(lián)合安全。目標(biāo)是從應(yīng)用程序團(tuán)隊中抽象出各個云服務(wù)提供商 (CSP) 和運(yùn)行時的底層復(fù)雜性,并為運(yùn)營團(tuán)隊提供一個通用接口來管理企業(yè)中的工作負(fù)載。
以下是統(tǒng)一控制平面的一些優(yōu)勢:
集中式API 網(wǎng)關(guān)和服務(wù)網(wǎng)格等架構(gòu)模式支持對路由、服務(wù)到服務(wù)通信、安全性、速率限制和可觀察性等云功能進(jìn)行透明管理。
API網(wǎng)關(guān) 作為跨地域的統(tǒng)一前門,負(fù)責(zé)處理“南北”流量功能,包括:
另一方面,服務(wù)網(wǎng)格處理服務(wù)依賴項之間的“東西向”流量:
例如, Istio是一個開源服務(wù)網(wǎng)格層,它根據(jù)云管理員提供的預(yù)定義配置來指導(dǎo)服務(wù)之間的通信。它充當(dāng) Kubernetes 編排層的邊車,并與容器一起工作,對程序員和管理員來說是不可見的。
混合云架構(gòu)的復(fù)雜性需要在不同層采用多層方法來確保端到端的安全和保護(hù)。 IBM Cloud、Amazon Web Services (AWS)、Microsoft Azure 和 Google Cloud 等 CSP 有責(zé)任根據(jù)服務(wù)水平協(xié)議 (SLA) 對外圍層的任何調(diào)用進(jìn)行身份驗證和授權(quán),從而在企業(yè)應(yīng)用程序周圍構(gòu)建防火墻。這包括拒絕服務(wù)保護(hù)和遵守隱私法規(guī),如通用數(shù)據(jù)保護(hù)條例 (GDPR) 和健康保險流通與責(zé)任法案 (HIPAA)。
在本地基礎(chǔ)架構(gòu)中,可以使用 API 網(wǎng)關(guān)實(shí)現(xiàn)邊界安全,API 網(wǎng)關(guān)保護(hù)所有 API 端點(diǎn)。來自駐留在數(shù)據(jù)中心之外的 Web 服務(wù)或移動應(yīng)用程序的任何調(diào)用都必須通過 API 網(wǎng)關(guān)進(jìn)行驗證和路由。
云計算環(huán)境包含一個額外的安全層,其形式是在服務(wù)網(wǎng)格和編排平臺公開的 API 中定義的控制策略。這些策略確保只有安全調(diào)用才能轉(zhuǎn)發(fā)到 Kubernetes 節(jié)點(diǎn),然后再轉(zhuǎn)發(fā)到微服務(wù)。
此外,微分段的概念——將環(huán)境劃分為不同的邏輯安全段以定義每個服務(wù)和工作負(fù)載的訪問控制策略——可用于在環(huán)境中運(yùn)行的服務(wù)之間構(gòu)建和劃分安全級別。最后,加密策略作為額外的數(shù)據(jù)保護(hù)層。
在單個云區(qū)域中,可用性區(qū)域具有連接網(wǎng)絡(luò)中所有節(jié)點(diǎn)的專用光纖網(wǎng)絡(luò),允許企業(yè)創(chuàng)建帶寬不受限制且網(wǎng)絡(luò)延遲低的高可用性架構(gòu)。然而,跨區(qū)域和多個云提供商的通信是通過公共互聯(lián)網(wǎng)路由的,并且以更高的延遲和潛在的故障為代價。
在混合云架構(gòu)中,底層提供者之間存在三種數(shù)據(jù)交換模式:
由于這些選項在傳輸速度、延遲、可靠性、SLA、復(fù)雜性和定價方面有所不同,因此在設(shè)計網(wǎng)絡(luò)連接層之前權(quán)衡限制和收益非常重要。
混合云意味著能夠?qū)⒐ぷ髫?fù)載從一個環(huán)境轉(zhuǎn)移到另一個環(huán)境,并擁有在任何云上運(yùn)行的應(yīng)用程序開發(fā)平臺。真正的云原生,不應(yīng)該緊緊依賴任何特定的技術(shù)、平臺甚至CSP,企業(yè)應(yīng)該對市場變化保持敏捷。
開源架構(gòu)支持這種統(tǒng)一的開發(fā)方法,開發(fā)人員可以管理其底層基礎(chǔ)架構(gòu),而不管用于其實(shí)現(xiàn)的技術(shù)如何。開源不再處于邊緣地位,不再有使用它來獲得成本效益的利基、排他性受眾;由于其豐富的功能、質(zhì)量和基于社區(qū)的開發(fā),它現(xiàn)在已成為主流并占據(jù)了中心位置。
正如Red Hat Report on The State of Enterprise Open Source所報告的那樣,即使在安全性等敏感領(lǐng)域,開源軟件現(xiàn)在也被視為一個不錯的選擇。安全性、質(zhì)量和對云原生架構(gòu)的支持是企業(yè)對開源表現(xiàn)出有意識的偏見的主要原因。