開源雲雜談

2021-09-06 15:45:09 字數 2358 閱讀 1919

dbaas是目前雲計算服務的重要部分,資料庫作為一種特殊的應用程式,在應用中普遍存在。而其獨特性不僅在於普遍性,而且其效能對應用的表現是至關重要 的。資料庫的通用性和重要性使得維護乙個健壯的資料庫例項變得極為複雜和繁瑣,dbaas服務旨在解決讓使用者能夠在雲中輕鬆設定、操作和擴充套件關聯式資料庫。 在承擔耗時的資料庫管理任務的同時,又可提供經濟高效的可調容量,使您能夠騰出時間專注於應用程式和業務。

通過aws的資料庫服務可以快速了解雲服務中的dbaas的輪廓。

amazon web services提供了多種不同資料庫服務,如rds(關係型資料庫服務),dynamodb(鍵值資料庫),redshift(資料倉儲服務)等。其中rds作為目前資料庫主流得到最廣泛的關注。

amazon rds的目標使用者是需要關聯式資料庫的完整功能的開發人員或企業,或是希望對使用關聯式資料庫的現有應用程式和工具進行遷移的使用者。它能夠使客戶訪問自己的 amazon rds資料庫例項上執行的 mysql、oracle 或 sql server 資料庫引擎的功能。

amazon rds的特點是使用簡單,幫助客戶處理複雜的資料庫任務如備份、複製和擴充套件等。還能夠與其他服務配合使用如ec2在同乙個az區內減少延遲。通過預配置的 iops可以使客戶自由選擇選擇的資料庫服務並且能夠輕鬆公升級。除此之外,rds還具備自動軟體修補的能力,確保軟體公升級的效能提公升和安全修復能得到利 用。

dynamodb是amazon的nosql資料庫服務,是一種快速、全面受管的nosql資料庫服務,它能讓使用者以簡單並且經濟有效地方式儲存和檢索任何資料量,同時服務於任何程度的請求流量。

dynamodb所有的資料項都儲存在固態驅動器(ssd)中,同時在 3 個可用區域間進行複製,確保達到較高的可用性和永續性。dynamodb 表沒有固定的結構,每乙個專案可以擁有不同數量的屬性。多種資料型別增加了資料模型的豐富性而本地二級索引可以增加在執行查詢時的靈活性,且不會影響性 能。

trove是openstack實現database as a service(dbaas)的專案,為要能過戶提供可擴充套件和高可靠性的雲資料庫,並作為乙個基本服務可以同時支援關係和非關係型資料庫。

trove在設計之初就計畫在openstack上執行,目標是能夠允許使用者快速、簡易的使用關係型資料庫而不需要處理複雜的 資料庫管理任務,使用者和資料庫管理員都可以管理多個資料庫例項。trove與openstack其他專案如nova、swift和cinder互動完全通 過api來實現,因此對nova等的配置沒有任何要求。

trove目前是乙個 openstack 孵化器專案,現在致力於提供高效能前提下的資源隔離,並且提供自動化的複雜管理任務包括部署、配置、打補丁、備份、恢復和監控。

trove分為三個元件: trove-api, trove-taskmanager, trove-guestagent。

* task-api: 主要提供restful api並且支援json和xml,用來管理和掌控trove例項。它是乙個wsgi元件負責監聽服務外部的請求。

* task-taskmanager: 主要完成具體的管理命令,如建立例項,管理例項的生命週期,完成對資料庫的操作等等。它主要監聽rabbitmq topic來得到請求。

* task-guestagent: 主要提供具體資料庫的執行和管理,並且對資料庫本身進行操作。guestagent同樣監聽rabbitmq topic來得到請求,並且執行在每乙個資料庫例項上。每一種資料庫都需要乙個自己的guestagent實現,目前只有mysql agent。

目前trove支援使用者建立乙個資料庫服務例項,在例項裡可以建立多個資料庫並進行管理。資料庫服務例項目前通過nova api來建立,然後同樣通過nova api建立乙個volume(未來通過cinder api)作為儲存,然後在nova instance裡載入預定義的帶有mysql的image來啟動mysql。此時使用者在得到乙個建立好的資料庫服務例項以後可以通過api建立資料庫並 且指定引數,trove通過在資料庫服務例項裡的guest agent來完成相應的命令。下圖是trove處理請求的最主要流程。

trove是rackspace開源出來放到openstack專案,作為乙個孵化器專案,其本身不太成熟並且缺少更多的資料 庫型別支援。trove目前有三個子專案: trove本身,trove-client, trove-integration(trove與openstack整合的部署專案)。目前mysql和percona(mysql的衍生版本)是 trove支援的資料庫型別,不過redis的支援已經在社群的實現程序之中。trove本身**並不是特別複雜,但由於本來是rackspace內部項 目,在測試**實現上非常magic,目前trove的實際維護者(實際上是後來接手的)也無法完全掌控專案。

trove在未來進入openstack core專案應該不是特別困難,但根據我對專案本身的理解和**閱讀,在短期內應該無法進入。在openstack i版本成為core project是乙個不小的目標。

剖析開源雲 開源雲剖析

存檔日期 2019年5月14日 首次發布 2010年3月9日 雲計算不再是一種突如其來的技術,而是一種有價值的重要技術,它將從根本上改變我們使用和開發按需應用程式的方式。如您所料,linux 開放源 為公共和私有基礎架構的雲提供了基礎。探索雲的解剖結構,其架構以及用於構建這些動態且可擴充套件的計算和...

「雲與網格」計算雜談

雲計算概念是新的,但內容並非是新的,只是為了某種利益 比如商業效應 學術效應,但最終都是經濟效應 人們把他總結了出來。雲計算的關鍵在於對雲計算的某種定位,比如充分利用現有網路能力提供高階計算 帶智慧型化的服務 定製的專家系統與自學習系統 提供共享儲存 網格 再比如裡面涉及到的分布式計算的排程 資訊的...

雲組態軟體開源 雲並未殺死開源軟體

雲組態軟體開源 在過去的幾個月中,我參加了兩個主題演講小組,人們在其中詢問有關開源許可的問題 對於通常非常保守的開源許可空間,去年是我記憶中最重要的一年 軟體 商做出這些更改的最常見原因是雲 商的 不道德行為 爭論是雲 商不公平地提供開源軟體 即服務 從而獲得了很大一部分收入,而原始軟體 商繼續承擔...