社群雲(Community cloud),也稱社區雲,是由幾個組織共享的雲端基礎設施,它們支持特定的社群,有共同的關切事項,例如使命任務、安全需求、策略與法規遵循考量等。管理者可能是組織本身,也能是第三方;管理位置可能在組織內部,也可能在組織外部。
基本介紹
- 中文名:社群雲
- 外文名:Community cloud
- 領域:雲計算
- 特點:一個特定社區獨占使用
- 關鍵技術:身份管理與授權、服務集成
- 別名:社區雲
簡介,技術,聯盟,微服務,挑戰,
簡介
按照雲計算的部署模式,雲可以分為四種,分別是私有雲、社區雲、公有雲和混合雲。私有雲由單一組織獨占使用。社區雲是由一個特定社區獨占使用,該社區由具有共同關切 (如使命、安全要求、政策等) 的多個組織組成。公有雲由公眾開放使用。混合雲則是前述的兩種以上模式的混合。
技術
身份管理與授權
在社區雲的環境下,要跨機構的管理用戶,要在統一身份認證和各個機構的自主性之間達成良好的平衡,做到既方便用戶使用,又能在良好的授權控制前提下實現資源的高效利用。
代理授權是身份管理方面需要引起注意的問題。社區雲是多機構的聯合,在使用 A 機構的資源時,對用戶的授權則是在B 機構的身份管理系統中實現,這其中的代理關係是社區雲模式下的一類基本場景,需要得到很好的解決。代理授權的解決方案中涉及到一些開放標準,採用的是OAuth2,它可以支持多類套用,包括 Web、桌面和無線客戶端等,並且簡單方便。
認證聯盟的建立是為了實現跨系統、跨機構以及多個雲套用之間的協作,從身份管理角度涉及兩個核心概念:身份標識的提供者 (IdP) 和服務提供者(SP)。此二者可以是完全獨立的。比如中國科技網通行證,這是一個身份標識的服務,已經積累了40多萬的用戶,其中科學院的科研人員和學生占比一半左右。一些研究所自己建設和運行的用戶系統也提供身份標識服務。科技雲的套用服務如團隊文檔庫、學術會議平台、科研主頁,以及很多研究所的信息化服務等,都是服務提供者。當多個身份標識服務達成一致的約定,可以同時支持套用服務,就構成了認證聯盟。這方面的技術也已經有基本成熟的技術標準。通過認證聯盟建立統一的身份管理服務,對於推進社區雲、推進不同機構之間的合作具有關鍵性的作用。
服務集成
在雲的環境下,網路、計算、存儲和數據等資源都可以包裝成服務的方式,進而進行資源和服務的集成,在一些簡單、基礎的服務上構建出複雜、高級的服務。在社區雲中,這樣的服務集成更加具有普遍性,當然,這樣的集成也通常是不容易的。社區雲的用戶特點是不僅包括一般的最終用戶,還包括具有套用開發或二次開發能力的開發者用戶。雲平台為科研人員結合自身科研特色需求的二次開發提供基礎資源,這就要求社區雲提供這樣的技術和支撐環境。服務集成的重要工作是面向開發者提供接口 (API)。面向服務的架構 (SOA) 已經是成熟的技術,但在服務的互動和集成方面還有一些較深層的問題。我們認為無狀態化、動態遷移、服務的伸縮性這是三個關鍵點。面向服務集成的接口設計要儘可能地實現服務的無狀化。無狀態化可以大大簡化後續多個服務的集成問題,同時在無狀態化的基礎上更容易實現動態遷移,從而實現服務的伸縮性。這些對於服務的可靠性也會大有幫助。
測量與運行管理
從雲的運行來說,基於日誌的一些技術和手段是非常有用的。社區雲的資源提供者不是單一的管理域,服務的測量和基於日誌的運行管理更為重要。社區雲應有專門的日誌服務為各種套用提供日誌的收集、存儲和分析顯示等服務,並可以基於日誌進行測量,進行服務的監控和管理,再通過門戶進行適當的展示。測量數據及統計分析對於社區範圍內用戶、服務提供者群體的溝通和協調非常有幫助,也是指導我們做好運行管理的一個重要基礎。
聯盟
聯盟 (Federation) 即服務的聯盟,聯盟架構里核心的角色是服務提供者。聯盟意味著其中的各個實體是平等的,在此基礎上建立相應的機制和系統。從國際上看,聯盟的方式在學術界很流行。像科技雲這樣的社區雲,可以將聯盟的框架設定為大學、科研機構及一些科技企業,還有為科研提供服務的企業,等等。具體而言,聯盟的架構有兩種主要的模式:Mesh和 Hub-and-spoke,前者是所有實體完全對等,後者是有一個Hub作為溝通和協調的樞紐,可以提高聯盟中服務和運行的效率。
微服務
微服務架構(Microservices Architecture) 是在面向服務的基礎上近年來的一個新發展。對於社區雲來說,微服務具有更突出的價值。微服務強調比過去更細粒度的服務,支持大量的互動和頻繁的更新。要做到微服務,對於基礎設施自動化和持續集成有著高要求,並且儘量採取輕量級的通訊協定。微服務的理念是松耦合,高內聚,這也涉及到容錯性設計、複雜性控制和開發運維一體化 (DevOps) 等方面的內容。
松耦合、高內聚的實現要求接口儘可能簡化,並採用單獨的業務邏輯。Unix 經典的管道的設計是一個範例,當前的服務則普遍採用簡單的REST 風格,而不是複雜的協定。在通信方面,儘量採用輕量級訊息通信,這有利於使用不同技術所開發出來的服務進行互動。在微服務架構中,通過高效率的模組化設計,能夠方便地支持多團隊協作和並行開發。而且,服務之間是相互依賴的,需要進行相互的疊代,因此軟體開發必須要高度的自動化,能夠自動地構建軟體、測試、部署、發布等。這就要求整個開發環境也是雲化的,即從下層的硬體資源到上層的軟體管理,都可以通過雲的方式向整個社區內的成員提供。此外,微服務應該是容錯的。在一個分散式的系統裡面,複雜性會更高,依賴和動態更新又會帶來一些問題。
挑戰
社區雲在模式和機制、可靠性、安全、組織管理等方面面臨挑戰,有待進一步解決。社區雲與私有雲、公有雲相比模式上複雜一些,由多個組織共同構建和共享雲設施。格線計算(Grid Computing) 與雲計算最主要的區別,在於雲的模式是清晰的,雲的提供者和使用者之間有明確的劃分。而格線計算是一種共享模式,既是用戶又是服務提供者,這是格線沒有取得普遍成功的一個重要因素。社區雲也面臨著服務的提供者和用戶交織起來的問題,這對於社區雲的發展是不容忽視的挑戰。除技術之外,如何設計好必要的利益機制、協調好多個組織的團隊,也是社區雲發展所必需考慮的問題。社區雲中服務的相互交織和依賴會帶來可靠性問題,而且這個問題隨著社區雲的發展壯大而更為複雜,必需引起重視和做好預先設計。當很多的服務緊密關聯起來之後如何協調管理是一個挑戰性問題。一個社區雲存在的基礎是相關機構之間存在著某些共性。社區雲的成員單位往往在安全方面有共同關切或相近的策略,這是比較常見的。而且,社區雲資源和服務的集成又會帶來不同成員單位之間在安全方面的相互影響,社區雲的建設中應該考慮統一的或協調的安全服務。
如果社區雲的建設和運行由多個成員單位共同完成,這並不罕見,則開發和運行團隊的組織管理也是一個挑戰,應該充分利用新的技術手段來應對這個問題。