Trove項目作為一個DBaaS(數據庫即服務),可以方便地為用戶提供關係型和非關係型數據庫,並在數據庫生命周期內提供各種便捷的管理操作。
本書由Tesora團隊的CTO Amrith Kumar和研發副總裁Douglas Shelley聯閤編寫,深入介紹並研究瞭OpenStack中Trove項目的架構及工作原理。
本書適用於對OpenStack生態圈有所瞭解,並對數據庫和開源事業有興趣的開發者。
《深入理解OpenStack Trove》由Tesora團隊的CTO Amrith Kumar和研發副總裁Douglas Shelley聯閤編寫,深入介紹並研究瞭OpenStack中Trove項目的架構及工作原理。Trove項目作為一個DBaaS(數據庫即服務),可以方便地為用戶提供關係型和非關係型數據庫,並在數據庫生命周期內提供各種便捷的管理操作,例如復製、備份、擴容等。《深入理解OpenStack Trove》首先介紹瞭Trove的相關概念,以及如何下載並安裝Trove;接著以實際操作為示例,講述瞭Trove的基礎架構和一些典型的操作方法,以及如何調試Trove並進行一係列故障排查;最後介紹瞭如何構建Trove guest鏡像,以及在生産環境中操作Trove時需要注意的事項。
《深入理解OpenStack Trove》適用於對OpenStack生態圈有所瞭解,並對數據庫和開源事業有興趣的開發者。
Amrith Kumar 是Tesora 公司的CTO 和創辦者,這傢公司擁有超過20 年為專門從事企業存儲應用、高性能容錯係統和大規模並行數據庫的公司生産業界領先産品的經驗。Amrith kumar 是OpenStack Trove(數據庫即服務項目)的活躍技術貢獻者,也是該項目核心審查團隊的一員。在那之前,他曾在Dataupia 公司擔任技術副總裁和産品經理,也是Satori Data Warehousing 平颱的創辦者及Sepaton 的董事長兼總經理,負責核心虛擬磁帶庫産品的開發。他擁有多項專利,這些專利涉及高性能數據庫和算法,在分布式計算中有著廣泛的適用性。
Douglas Shelley 是Tesora 的産品開發副總裁,也是首位加入Tesora 的員工。他組建瞭一支經驗豐富的企業級軟件專業團隊,緻力於發布Tesora DBaaS 平颱,並且在OpenStack 社區有著積極的貢獻。他在IT 界和軟件産品開發領域工作超過20 年,緻力於應用交付、數據管理和集成,是OpenStack Trove 項目的活躍技術貢獻者。在加入Tesora 之前,他負責軟件的産品開發超過10 年,並帶領各個團隊應對瞭有關數據同步、集成和轉換方麵的挑戰。
在工作之餘,他會經常趴在桌子上,刻苦鑽研他的樹莓派或NAS4Free 盒子,或者寫詩歌和短篇小說。
譯者簡介
黨明,雲計算開發工程師,對OpenStack和數據庫領域有所研究,目前緻力於服務器端開發和機器學習。
雷鼕,金山雲高級開發工程師,緻力於OpenStack開發。為開源社區的活躍貢獻者,對其他雲計算領域也有所研究,主要研究方嚮為數據結構和算法。
王少輝,從業5年,先後在鄭州景安、象雲擔任雲計算工程師、OpenStack研發工程師等職位,在存儲優化和OpenStack開發等方麵積纍瞭多年經驗,目前專注於文件係統和大規模對象存儲的實踐。
第1 章關於DBaaS的介紹
1.1 什麼是DBaaS
1.1.1 數據庫
1.1.2 服務
1.1.3 服務類彆
1.1.4 DBaaS的定義
1.2 IT 部門麵對的數據庫挑戰
1.3 DBaaS的特性
1.3.1 管理平麵和數據平麵
1.3.2 租賃
1.3.3 服務位置
1.3.4 服務vs 平颱
1.4 DBaaS的好處
1.4.1 易於提供
1.4.2 一緻性的配置
1.4.3 自動化操作
1.4.4 自動縮放
1.4.5 提高開發的靈活性
1.4.6 更好的資源利用和設計
1.4.7 對於提供者或操作者簡化角色
1.5 其他DBaaS的提供者
1.5.1 亞馬遜RDS
1.5.2 亞馬遜Redshift
1.5.3 微軟 Azure SQL Database
1.5.4 Google Cloud SQL
1.5.5 亞馬遜DynamoDB
1.6 OpenStack Trove
1.7 Trove 的一段簡要曆史
1.8 OpenStack Trove 中的租約
1.9 OpenStack 生態係統中的Trove
1.10 總結
第2 章下載和安裝OpenStack Trove
2.1 部署一個單節點的開發環境
2.1.1 配置Ubuntu 環境
2.1.2 安裝一些基礎包
2.1.3 確認你的配置
2.1.4 給“ubuntu”用戶賦予免密碼sudo權限
2.1.5 使用devstack工具安裝OpenStack
2.1.6 啓用默認的Trove 公鑰
2.1.7 係統認證
2.1.8 創建你的第1 個Trove 數據庫實例
2.1.9 在devstack中使用Neutron
2.1.10 訪問Dashboard
2.2 在多節點的OpenStack 環境中部署Trove
2.2.1 前提條件
2.2.2 安裝必需包
2.2.3 創建Trove 用戶
2.2.4 創建Trove 操作的數據庫
2.2.5 在OpenStack 中配置Trove
2.2.6 配置Trove 服務
2.2.7 初始化Trove 操作的數據庫
2.2.8 在Keystone 中配置Trove Endpoint
2.2.9 重啓Trove 服務
2.2.10 下載或構建一個Trove Guest 鏡像
2.2.11 配置數據庫類型及其版本
2.3 總結
第3 章基本的Trove 操作
3.1 使用curl 命令和RESTful 服務交互
3.1.1 從Keystone 中獲取Token
3.1.2 使用Token 和RESTful 服務交互
3.2 理解應用程序如何與OpenStack 服務交互
3.3 Trove CLI 腳本編程
3.4 展示實例列錶
3.5 啓動實例
3.6 重啓實例
3.7 刪除實例
3.8 配置多個數據庫類型
3.8.1 配置數據庫類型
3.8.2 指定默認的數據庫類型
3.9 創建用戶和數據庫
3.9.1 啓用數據庫的root 用戶
3.9.2 數據庫操作
3.9.3 用戶操作
3.10 總結
第4 章概念和架構
4.1 Trove 基礎架構
4.2 Trove 的概念
4.2.1 Trove 服務
4.2.2 Trove Guest Agent API
4.2.3 Trove 策略
4.2.4 Trove 拓展
4.2.5 Guest Agent 的分類模型和策略
4.2.6 Trove Guest 鏡像
4.2.7 Trove 消息隊列和Trove 內部的API
4.2.8 Trove 基礎設施數據庫
4.2.9 Trove 公共API
4.3 OpenStack Trove 的架構
4.4 總結
第5 章 Trove 的高級操作
5.1 自定義f lavor
5.2 Trove 的備份和恢復
5.3 Trove 的復製
5.3.1 對復製的支持情況
5.3.2 創建一個復製
5.3.3 故障切換
5.4 Trove 集群
5.5 配置組
5.6 調整實例的大小
5.7 終止實例
5.8 總結
第6 章調試與故障排除
6.1 訪問Trove guest 實例的命令行
6.1.1 OpenStack guest 鏡像
6.1.2 Tesora guest 鏡像
6.2 閱讀Trove 錯誤日誌
6.2.1 Trove 控製節點的錯誤日誌
6.2.2 關於guest 實例的錯誤日誌
6.2.3 錯誤日誌的一些實例
6.3 理解Trove 日誌級彆
6.4 在Trove 中使用OpenStack 分析庫
6.4.1 在開始和停止位置之間分析代碼
6.4.2 使用Python 結構分析一個代碼塊
6.4.3 使用修飾器分析一個方法
6.4.4 使用修飾器分析整個類
6.5 總結
第7 章構建Trove guest 鏡像
7.1 使用預先構建的Trove guest 鏡像
7.1.1 Trove guest 鏡像組件
7.1.2 注冊Trove guest 鏡像
7.2 使用磁盤鏡像生成器構建guest 鏡像
7.2.1 安裝磁盤鏡像生成器
7.2.2 磁盤鏡像生成器元件
7.2.3 使用Trove 相關的元件構建guest 鏡像
7.2.4 使用redstack構建guest 鏡像
7.3 磁盤鏡像生成器的工作原理
7.3.1 元件內的階段
7.3.2 執行順序
7.4 Trove 涉及的元件
7.5 使用 guest agent 代碼
7.5.1 在運行時安裝 guest agent 代碼
7.5.2 構建時安裝guest agent 代碼
7.6 不同的操作係統中的 guest 鏡像
7.7 總結
第8 章生産環境下Trove 的運作
8.1 Trove 的基礎設施配置
8.1.1 配置Trove 使用專用基礎設施
8.1.2 AMQP 服務器上的安全配置
8.1.3 為訪問AMQP 服務器提供憑證
8.2 guest 安全
8.2.1 在guest 實例上使用SSH
8.2.2 使用安全組和安全網絡
8.3 Trove 作為其他OpenStack 服務的用戶端
8.3.1 私有OpenStack 結構中的消費服務
8.3.2 使用隱藏租戶和服務租戶
8.4 總結
附錄A Trove 配置選項
A.1 Trove 配置文件
A.2 Trove 配置選項
A.3 特定的數據庫配置選項
A.4 總結
附錄B Trove 命令行接口
B.1 命令行接口
B.1.1 trove 命令
B.1.2 trove-manage 命令
B.2 總結
附錄C Trove 中的API
C.1 Trove API 服務的end point
C.2 API 的習慣用法
C.3 列齣API 的版本
C.4 實例API
C.4.1 列齣實例
C.4.2 創建實例
C.4.3 展示實例
C.4.4 實例操作
C.4.5 修改實例
C.4.6 更新實例
C.4.7 刪除實例
C.4.8 備份列錶
C.4.9 實例配置列錶
C.5 數據庫類型的API
C.5.1 數據庫類型列錶
C.5.2 數據庫類型版本列錶
C.5.3 顯示數據庫類型版本(通過數據庫類型和版本)
C.5.4 顯示數據庫類型版本(通過UUID)
C.5.5 數據庫類型版本配置項列錶
C.5.6 顯示數據庫類型版本配置項
C.5.7 數據庫類型版本配置項列錶
C.5.8 顯示數據庫類型版本配置項
C.6 實例類型API
C.6.1 實例類型列錶
C.6.2 顯示實例類型
C.7 限額API
C.8 備份API
C.8.1 備份列錶
C.8.2 顯示備份
C.8.3 創建備份
C.8.4 刪除備份
C.9 數據庫擴展API
C.9.1 獲取root 用戶的激活狀態
C.9.2 啓用root
C.9.3 數據庫列錶
C.9.4 創建數據庫
C.9.5 刪除數據庫
C.9.6 創建用戶
C.9.7 用戶列錶
C.9.8 查看用戶的權限
C.9.9 刪除用戶
C.9.10 用戶訪問授權
C.9.11 顯示用戶的訪問權限
C.9.12 解除用戶的訪問權限
C.10 集群API
C.11 集群列錶
C.11.1 集群詳情
C.11.2 創建集群
C.11.3 集群操作:添加實例
C.11.4 刪除集群
C.12總結
關於技術評論員
Nikhil Manchanda 是惠普雲的核心工程師之一。他從OpenStack Trove 的Juno、Kilo和Liberty 發布伊始就一直是該項目的技術負責人(PTL)。他設計並編寫瞭OpenStackTrove 項目的重要部分,並在項目開始時就成為Trove 的核心貢獻者之一。他的專長在OpenStack、Python 和數據庫領域,但也偶爾涉足C++ 和機器學習領域。他之前從事軟件更新智能、本地地理係統和移動應用相關工作。在工作之餘,他會經常趴在桌子上,刻苦鑽研他的樹莓派或NAS4Free 盒子,或者寫詩歌和短篇小說。
鳴謝
我們要感謝整個OpenStack Trove社區,感謝社區成員對Trove版本的提交和貢獻,以使得OpenStack的數據庫服務成為現實。如果沒有這麼多開發者、審閱者和運營商在數年裏對項目的貢獻,我們不會有如此豐富的話題進行寫作。
特彆感謝Tesora的整個團隊,他們通過評論、迴答技術問題和提供有創意的內容來支持本書。
感謝Apress團隊,Mark Powers、Louise Corrigan、Christine Ricketts和Lori Jacobs都很棒。
特彆感謝Laurel Michaels,他在社區裏做瞭很多改善Trove文檔的工作,在本書初稿完成後精心審閱瞭每個章節,並提供瞭寶貴的改進建議。
——Amrith & Doug
這本書的封麵設計就透著一股子專業範兒,深邃的藍色背景,輔以抽象的雲和核心組件的示意圖,讓人一眼就能感受到其“深入”的特質。我一直對OpenStack的數據庫服務Trove心存好奇,但網上零散的資料實在難以形成體係。拿到這本《深入理解OpenStack Trove》,我滿懷期待地翻開瞭第一章。雖然書中提及瞭Trove的安裝部署,但對於我這種初學者來說,即便有圖文並茂的步驟,還是會遇到一些預料之外的配置問題。比如,在配置數據庫的鏡像倉庫時,書中雖然給齣瞭示例,但現實中不同網絡環境和存儲後端可能會有細微差異,導緻同步失敗。我當時就卡在瞭這一步,好幾個晚上都在摺騰日誌,希望能找到問題的根源。好在,書中對Trove的架構進行瞭詳細的解析,讓我能從宏觀上理解各個組件之間的關係,這對於定位問題非常有幫助。當終於剋服瞭部署的障礙,我迫不及待地想瞭解Trove是如何管理不同類型的數據庫實例的。書中對MySQL、PostgreSQL等主流數據庫的支持做瞭介紹,讓我對Trove的靈活性有瞭初步認識,但具體到某個數據庫版本的配置優化,或者如何應對極端高並發場景下的性能調優,書中雖然有所涉及,但感覺更像是拋磚引玉,留下瞭很多探索的空間。不過,這反倒激發瞭我進一步學習的興趣,畢竟,真正的“深入”往往意味著永無止境的探索。
评分這本書的書名《深入理解OpenStack Trove》確實名副其實,其深度和廣度都超齣瞭我的預期。我最初抱著學習如何使用Trove來簡化數據庫部署的想法,但讀完後,我發現自己對Trove的理解已經提升到瞭一個新的維度。書中不僅講解瞭Trove提供的各項功能,如創建、刪除、修改數據庫實例,還深入探討瞭Trove的擴展性。例如,書中介紹瞭一種自定義數據庫鏡像的策略,這讓我看到瞭Trove可以支持各種特定需求數據庫的潛力,不僅僅局限於主流的幾種。我特彆關注瞭書中關於Trove的插件化架構的講解,瞭解瞭如何通過開發新的插件來支持更多類型的數據庫或者集成第三方數據庫管理工具。這對於一些有特殊數據庫需求的企業來說,無疑是一個巨大的福音。雖然在實際操作中,開發和集成一個新的插件可能需要相當的技術積纍,但書中提供的理論基礎和架構思路,為我們指明瞭方嚮。我開始設想,如果能將Trove與我們自研的某些特色數據庫結閤起來,將會為我們的雲平颱帶來多麼大的價值。這本書為我打開瞭一扇新的大門,讓我看到瞭Trove在定製化和擴展性方麵的巨大潛力。
评分坦白說,在閱讀《深入理解OpenStack Trove》之前,我對Trove的認知僅停留在“OpenStack提供數據庫服務”這個層麵。我一直以為它就是一個簡單的數據庫托管平颱,用戶隻需要選擇數據庫類型和配置,然後就可以坐享其成瞭。然而,這本書徹底顛覆瞭我的認知。作者在書中花瞭大量的篇幅去剖析Trove的內部機製,從API的調用流程到數據庫實例的生命周期管理,再到備份與恢復的原理,都進行瞭細緻入微的講解。我尤其對書中關於Trove如何實現數據庫高可用性的部分印象深刻。它不僅僅是簡單地提及“主從復製”或者“集群”,而是深入到具體的實現方式,比如如何通過代理層進行流量轉發,如何處理主節點故障後的自動切換,以及數據一緻性的保障機製。這讓我意識到,Trove背後有著多麼精妙的設計和復雜的工程實現。盡管書中的技術術語和概念相當密集,有時候需要反復閱讀纔能理解,但每當理清一個環節,都會有一種豁然開朗的感覺。我開始明白,一個看似簡單的服務,背後卻凝聚瞭多少工程師的心血。這本書讓我看到瞭Trove作為雲原生數據庫服務的強大之處,也讓我對OpenStack整體的架構有瞭更深的敬畏。
评分我拿到《深入理解OpenStack Trove》這本書,主要是想瞭解一下Trove在多租戶環境下的安全性設計。畢竟,在一個共享的OpenStack雲環境中,如何確保每個租戶的數據隔離,防止敏感信息泄露,是至關重要的。書中雖然提到瞭RBAC(基於角色的訪問控製)和項目隔離的機製,但具體到Trove是如何將這些安全原則落地到數據庫管理中的,我的理解還比較模糊。比如,當一個租戶創建一個數據庫實例時,Trove是如何自動為其分配獨立的網絡空間、存儲捲,並限製其對其他資源的訪問權限的?書中對資源調度的邏輯有所提及,但如何與OpenStack的Neutron、Cinder等服務緊密集成,以實現精細化的安全策略,這部分內容感覺可以再展開一些。而且,書中關於數據庫本身的加固和審計方麵,也隻是點到為止。我希望能夠更深入地瞭解,Trove是如何幫助用戶提升數據庫的安全防護能力的,例如,如何集成第三方安全掃描工具,或者如何自動化敏感數據檢測和脫敏。雖然這本書已經非常詳盡,但對於安全性這個話題,我覺得還有很多值得挖掘的細節,也為我今後的工作中提供瞭一個清晰的研究方嚮。
评分讀完《深入理解OpenStack Trove》,我最大的感受是,它讓我從一個“使用者”的角色,轉變為一個“理解者”,甚至是一個潛在的“貢獻者”。書中對Trove的每一個核心組件,如API服務、數據庫代理、鏡像管理、配額管理等,都進行瞭層層剝繭的分析。我曾一度好奇,Trove是如何做到在統一的接口下,管理如此多樣化的數據庫實例的。書中詳細解釋瞭其設計模式和抽象層,如何通過適配器(driver)的機製來屏蔽底層數據庫的差異性,從而實現統一的管理。這讓我對軟件架構設計有瞭更深刻的認識。此外,書中對Trove的自動化運維能力也進行瞭深入的探討,特彆是關於自動伸縮和容量規劃的部分。雖然書中給齣的示例比較基礎,但其背後的原理,比如如何根據監控指標觸發自動擴容或縮容,以及如何進行容量預測,都讓我受益匪淺。這對於提升雲平颱的整體運維效率,降低運營成本,提供瞭非常具有操作性的指導。總的來說,這本書不僅僅是一本技術手冊,更是一部關於如何構建和管理現代化數據庫服務的思想寶庫。
評分書不錯,軟件開發人員很好的輔助工具
評分不錯啊……非常好啊!喲西
評分東西不錯還要細細研究
評分感覺這書每一頁都隻有上半段,下半段少好多行!28行之間跳到39行!看不懂啊!真是垃圾
評分數據庫還是很有必要的
評分挺好的入門讀物,可以看看!
評分時刻學習新知識。。。
評分東西非常不錯,第一版我也有
評分非常專業的書籍,印刷質量也很好
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.qciss.net All Rights Reserved. 圖書大百科 版權所有