前言
說實話,看到自己在博客園的排名感到慚愧,因為自己最近兩年沒有持續地在博客園上寫技術博客了,有人私下問我是不是荒廢了?翻翻15年和16年的博客,真的是少的可憐。一方面的確由於崗位的變化,導致了工作變得越來越忙, 一方面寫作的精力放在了公司技術公眾號,內部技術和管理文檔,攝影博客上了。
我一直很感慨時代的變化,讀研的時候,我還在圖書館翻着一本本厚厚的專業書,短短幾年后的今天知識獲取來源已變得非常廣泛:博客,公眾號,微博,技術分享會等等,書籍的影響力反而變得渺小了。
但我內心里一直非常渴望自己能夠靜下心來,把近年來獲取的知識和經驗整理,並作專注性較強的輸出。
因此,很高興6月的第一周,由一幫大齡兒童們一起發布了《深入理解Openstack自動化部署》的第一個正式版本。說起部署這個事兒,一直伴隨着Openstack誕生到現在,稱得上是一個非常古老的話題了,然而在最近Austin Summit上,我們依然可以看到大量與部署有關的topic。
部署發展到今天,除了向部署速度更快和支持能力更強的方向發展,更重要的是部署作為運維體系中的一個重要環節,所有人都在考慮它的延展性,也就是如何能使用統一的平台或工具來完成Openstack集群的安裝,配置,變更,升級和狀態管理,因此如何選項顯得非常重要。
為什么是PuppetOpenstack Modules?
Puppet是目前CMS領域中的領頭羊,而PuppetOpenstack Modules項目(簡稱POM)誕生於12年,13年中進入到Openstack官方孵化項目(Stackforge),隨后又成為了Openstack官方Governance項目。POM之所以能取得成功的原因主要在於其獲得了大量公司和工程師的參與,甚至有一些主流的部署工具直接集成了POM:如Mirantis的Fuel,Redhat的Packstack, Openstack官方的TripleO,UnitedStack的Ctask都直接使用POM的upstream codes作為Openstack服務的部署模塊,並且連續7次在Openstack社區的User survey中,位列deployment tools領域的第一。
我們是誰?
UnitedStack DevOps Team是一支很年輕的團隊,不過我們持續專注在Openstack部署領域已有5個年頭,積累了一些經驗,因此想和各位分享:
- 在開源社區:早在12年底,POM項目尚處於雛形階段我們開始參與其中,並促成了13年 POM項目從Puppetlabs官方項目轉入到Openstack社區,我們對於POM項目的貢獻也得到了社區的認可,其中xingchao在13年的時候,成為該項目的核心開發人員。
- 在工程領域:截止到2016年5月,我們一共使用了96個puppet modules, 6台PuppetMaster服務器, 集中管理着87個Openstack集群, 7套不同的部署環境,支撐了近3500台Openstack集群的服務器,我們經歷了Puppet版本的數次升級,內部代碼的多次重構和POM的多次版本升級,每日Openstack線上集群的頻繁變更,我們也經歷了Puppet,PuppetDB的性能調優,踩過了無數個看不見的明坑和暗坑。
本書講什么?
本書是關於Openstack自動化部署工作核心部分的講解:PuppetOpenstack modules和相關基礎modules的深入分析和最佳實踐。
通過這本書,你可以學習到:
- 當前最流行的部署項目PuppetOpenstack的代碼級深入講解
- Openstack Mitaka版本核心服務的部署講解
- 關於配置管理的最佳實踐總結
- Puppet的一些使用技巧
- 如何一本正經地胡說八道
舉個栗子,在puppet-keystone模塊章節中,我們首先從Keystone的基本概念開始介紹,試圖為讀者理清楚v3中關於domain,group,project,role,user之間的關系。然后我們通過一個快速部署keystone的實例讓你先睹為快,接着我們就深入到核心代碼中去講解是如何做到的,最后我們會對本節重要的內容做一個小結。當然光看不練就是假把式了,我們為讀者們精心准備了一些習題,讓讀者動手實際練習,加深理解。
下個版本?
我們認為docs is codes。 因此,本書也遵循常見的release規范。在初期,我們會在每月第一周發布新版本以保持快速地迭代,同時我們也會保持對於已完成章節的內容更新,如何你想要了解更多細節,請參閱本書最后的 版本日志 一節。
如何參與?
本書遵循開源管理方式,使用markdown語法編寫,git作為版本控制,並托管在github上,如果你也對本書感興趣,有任何改進的建議和想法,歡迎加入我們一起來添磚加瓦。
更多細節請參與本書的 如何參與 一節。
關於出版
目前雖然有多家出版社聯系,但我沒有答應,一是本書還有大量的后續編寫計划沒有開始,二是覺得一本書至少得經歷多次的迭代才能變得成熟和穩定。所以,如何問我什么時候會出紙質版本?也許要等到我們發布v1.0版本的時候吧:D