認識 Atlassian Datacenter 產品

認識 Atlassian Datacenter 產品

雲端原本就是羣集化的架構,Atlassian 系列產品,應用的開發團隊相當廣範且行之有年,但是將應用程序作爲節點(比如Jira,confluence,bamboo…等應用程式)然後羣集化的運維團隊卻是少之又少,希望以基礎架構的角度切入,由以下列舉之細目引導大家瞭解 Altassian DataCenter這個 羣集化的方案,進而盤點要建置DataCenter,到底需要哪些第三方技術才能夠完整這樣的架構:



羣集化不可或缺的虛擬環境 (Virtualization):

以一個節點爲單位,虛擬節點當然要比實體節點好調度,而且羣集化後的節點羣,要在實體機之間遷移,沒有俱備虛擬環境要如何輕易的完成這樣的任務。要發揮DataCeneter所帶來的好處,虛擬環境是必備的條件之一,且並不需要在特定的虛擬產品下運行。


如下知名的虛擬産品所建構的虛擬環境都可以

這裏寫圖片描述


雙機熱備 (Hight Avaliable)

針對負載平衡,也許客戶會列舉出運行中的 jira 負載還好,不需要用到負載平衡。但是雙機熱備HA,就不單單只是在性能或是備援的考量,反而是應用面。怎麼說呢?相信在應用程序或是插件的升級需求大家都有,但要在哪個節點測試呢?爲了測試多買一套應用程序嗎?就算預算充裕,那測試完畢確認是可以滿足開發人員需求,接下來要如何在不干擾下把在線人員整個移轉過來?還是就在線直接更新。在線直接更新是大部份目前的作法,所產的問題狀況百出,有時還回復不了原始狀態,輕則中斷開發人員的應用,重則數據遺失。
也因此,有了 DataCenter 的應用程序再加上 Pacemaker 所建置完善的雙機熱備,那麼整個應用程序的羣集或是插件的應用就擁有了順暢的演化環境,相關的升級就可以放手去進行,前端開發團隊所提出的需求也能快速反應。


(pacemaker,corosync) 雙機熱備首選技朮

全新建置的節點,在這裏建議大家採用 CentOS or RedHat 7 也就是 Linux 核心是 3.10,pacemaker 建置過程有稍稍較之前 Redhat or CentOS 5~6 較依賴 cli(command line)但整個建置完善後,不管是節點之間服務切換的速度,或是一些故障分析,都較能經得起考驗。
當然維持原有的 Linux HA 舊環境,或是操作系統版本有需要讓其他軟件依賴的考量而無法升級,DataCenter 的架構仍然是可以完成的。只是在多節點的佈署,操作系統最好選擇以 Linux 核心爲 3.10 來擔任。

以下兩張分別爲 pacemaker 的堆棧及內構圖示:

這裏寫圖片描述

在 Pacemaker 下完整建構的雙機熱備 HA,在以下三種情境都是可以正常運作的。

這裏寫圖片描述


網絡文件系統(NFS)及存儲裝置(DRBD)

Home-shared 是 DataCenter 的一個關鍵,原本 Atlassian 系列的應用程序都有一個 Local Home,透過 NFS 這個網絡文件系統讓同一種 AP 多個節點,供享同一個 home directory。如此協同運作,就可以讓單一個節點所作的設置(比如插件升級或是安裝),羣集裏的其他成員也就跟着完成。

NFS 的供應端可以是任何雲存儲的分佈式文件系統技術,這裏用 CEPH 爲示例來作說明,前端是藉由 NFS 分享出來的網絡文件系統,後端是由三個 osd 節點組合出來的 RAW device,接下來是一個有趣的組合,我把監控 mon 和元數據 msd 原來兩個節點組合爲一個節點總共兩組,這樣就可以爲 NFS-server 建置一個 HA 也就是提供一個虛擬 IP 給 Atlassian AP 作掛載,這樣 share home 就有了熱備援啦!在這裏的 Pacemake 建置 HA 主要是爲了 NFS-server 服務,mon 及 msd 的組合節點原本就有熱備援的機制存在,不需要依賴 Packmaker 的 HA。

請以下面圖型來想像一下我所描述的安排:

這裏寫圖片描述

雙機熱備一開始我們都只考慮到應用程序端,現在我們來看看數據庫如何跟雙機熱備集成,一開始當然想到數據庫的存儲位置,DRBD 跟 Pacemaker 整合的非常嚴密,以它來作爲數據庫的存儲位置再也理想不過了,這個裝置在兩個節點之間以塊層級隨時同步着,但盡有一方會被掛載着,因此這樣的構架方案不適合作數據庫的負載均衡,只合適數據庫的雙機熱備,也就是HA。

DRBD 只提供到 Raw Device,再上層的文件系統就由操作系統接手了,接下來的掛載再由 Pacemaker 安排,DRBD 模塊負責着三個訪問(Raw DriverDisk DriverNIC Driver)。

這裏寫圖片描述

這裏寫圖片描述

DRBD 算是很忙碌的一個模塊,因爲是塊層級的傳輸,所以雖然負責許多面向,但效率不減(訪問 DRBD 官網請連接http://drbd.linbit.com/
再次提醒: DRBD的存儲構架,對羣集而言只適合集成雙機熱備構架也就是HA,不合適負載均衡的安排,這點請注意


負載均衡 (LoadBalance)

HAproxy 是個非常不錯的負載均衡舵手,在這個角色下可以用簡單的參數來調配,可以作到讓出來面對客戶端提出需求的 web-service 羣,是用什麼樣的模式來運作。比如 roundrobin 或 static-rr ,甚至可以分頭顧及到下層的數據庫是不是採用 leastconn 模式。
當然 HAproxy 這麼重要的網關怎麼可以只由單一的節點來擔任,再建一組 HA 嗎?一個很有趣的安排,把 HAproxy 往羣裏面配,不管是由雲存儲的羣(sql)或是雲計算的羣(html)都可以,只要把羣裏每個成員上的 HAproxy 服務全部啓動,參數調配好後就由 Pacemaker 所供應出來的虛擬IP來面對客戶端的需求訪問,這樣 HAproxy 就有熱備援的機制啦!

可以參考如下的圖示想像一下這個有趣的安排。

這裏寫圖片描述

  1. roundrobin:平均輪詢在各個節點上,可調整權重讓不同等級的服務器分配不同的負載。
  2. static-rr:平輸詢在各個節點上,但權重調整無效。不管各個服務器規格如何,按總節點數平圴輪詢。
  3. leastconn:適合sessions較長的服務端,比如 LDAP,SQL….等,權重調整後會較緩慢生效。
  4. first:該算法的目的是要始終使用最小服務器的數量。
  5. source:這確保了同一客戶端地址將始終達到相同的服務器端。
  6. url:同 source 差別在用 url 來辨別客戶端。
  7. url_arm:同 url 差別在有參數,一般是服務器對服務器的訪問。
  8. hdr:這一般指的是可識別的用戶標頭,也就是同一個用戶帳號登入不同客戶端作訪問服務器,都是由同一臺服務器來服務。
  9. rdp-cookie:如同 hdr 但以 cookie 存在與否來判別是否改變訪問的主機。


設置步驟 (DataCenter Setup)

以下爲 Atlassian 原廠 DataCenter for jira 的設置步驟 
這裏寫圖片描述

  1. 首先把數據庫跟應用程序(這裏指的是 jira)分離。
  2. 確認原本的 jira 版本是在 6.3 以上(含),如果版本條件不滿足,請先進行升級或是改版計劃。
  3. 將 Loadblance 的節點安排好,這篇文章建議的是 HAproxy 服務器。
  4. 把 Local Home Directory 分享出來,作爲 DataCenter 最重要的 Share Home 的一個位置。
  5. 加入第二個應用程序節點,把數據庫設定好,NFS-client 設定好訪問 Shared Home。
  6. 將 HAproxy 上層之AP設定爲 roundrobin 模式,將下層數據庫設定爲 lessconn 模式,然後全部串接起來,由 Pacemaker 建置好的虛擬 IP,準備接受客戶端的訪問。


效能監控工具 (Performance Monitor)

在建置 DataCentor 的整個過程還算繁瑣,不只步驟繁多,構架多樣化,但整個模型是一致的,會建構 jira 應用程序的 DataCenter 也就會建構其他應用程序的 DataCenter,整個過程中,在這裏建議隨時觀測虛擬環境的效能監控工具,一邊進行建置一邊進行診斷,纔不㑹進行了大部份的建構步驟纔開始回頭查問題的原因,那將㑹增加問題分析的困難度。

如下圖標示例,在我們瀏覽 jiraIP 我們可以知道 ha1 和 ha2 彼此之間並非 roundrobin 關係 
這裏寫圖片描述

在整個 DataCenter 建置完成後開始上線,運行過程中要注意 CPU 負戴不要持續攀升在 80% 以上,持續攀升需要調優或是硬件升級,瞬間是不礙事的。

如下以 VMware 性能監控器顯示只有瞬間攀升。 
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章