問題背景:php
公司開發人員幾十號人,很少也很多吧。人多就會亂,須要好的管理制度進行約束,以保證開發項目的順利進行。也就是項目管理中的一個難點,對於我目前遇到的狀況就是,項目開發的代碼的更新、調試和上線發佈的完整流程的問題,這也應該是每一個公司都會遇到的問題。服務器
在我來到公司以前,徹底未採用虛擬化,所有使用老舊的二手服務器,數量衆多,各類配置基本是現有管理人員手工進行的,每一個項目使用一臺物理服務器。工做簡單工做量巨大,常常要手工改不少軟件配置。網絡
並且因數量衆多的物理服務器共同工做。致使機房在夏天的時候耗電量特別大,儘管有兩臺空調吹也不能很好的降溫,常常致使服務器溫度太高致使失去響應而須要手動重啓。架構
因爲在上一個工做單位使用過VMware vSphere作過測試,其特有的功能和特性,很適合改造現有的環境,配合vCenterServer來進行管理,駕輕就熟的開展各項部署工做,大大提升了工做效率。運維
可是對於剛剛來到公司不久的我不是很瞭解開發這邊的具體流程,因此基本上是按照開發人員本身的想法來配合搭建基礎環境的。ide
開始一階段的開發環境是使用VMwarevSphere,部署單機使用,配置好一個功能齊全的虛擬機模板,而後複製必定數量的虛擬機,作開發測試環境:svn
1.branch端開發應用的各個分支,每一個人開發完成後自檢無誤後提交到SVN,合併到trunk。工具
2.trunk端 SVN更新代碼後,由測試人員進行應用的流程測試,經過後,提交svn代碼上線。測試
這是一個大致的流程,這其中的問題多到你沒法想象且須要數量衆多的虛擬機進行基礎環境的搭建,還有一個主要的問題就是新上崗的員工要在開始很快的部署開發環境。以便及時融入到開發的進程中來,這裏面的開發環境的部署就是一個很重要的問題了。最開始是新員工在即按照文檔進行熟悉,而後在本身的開發機器上進行部署。光員工本身行按照文檔進行部署,這些基礎工做就可能要花去他們至少一週的時間。由於太多的API和配置項須要變動。新入職的員工可能不太適應,也形成了人員的浪費,時間成本很高。雲計算
解決方案:
開發的主管找到運維組,尋求更好的解決方法。咱們通過仔細的研究討論各類可能的方案。在討論的過程當中瞭解到開發這邊針對基礎開發環境的搭建自行開發了一套自動部署環境的工具。只要有新的員工入職,只要執行一個簡單的命令便可將各個相關的代碼部署到申請的虛擬機上。能夠快速的熟悉環境,進行項目的開發工做。效率是否是很高呢?可是這樣會增長運維組的工做量,工做重心就會向開發技術支持傾斜了。運維最重要的任務是保證線上的業務穩定性。對開發的技術支持在與次要地位。你可能要說了,能夠招一個任專職管理嘛,若是你是老闆你會這樣作嘛?你回答是,那好,你頗有錢也很仁慈。可是國內的狀況相信你們經歷過的都是一我的要當作兩個甚至三我的來用的。對!這就是打雜的嘛!
咱們要用盡咱們的智慧來給本身創造足夠的空間纔是硬道理!
廢話不用多說了,這裏個人方案是將vSphere的虛擬化和CloudStack雲計算平臺進行結合使用。
VMware vSphpere ESXI5.0 的虛擬化是行業裏的領導者,有成熟的技術和架構。咱們常用到的功能好比:物理主機的HA集羣,虛機的克隆,主機之間的遷移,模板生成,快照生成,備份,還原等技術。
Apache基金會下頂級開源項目——雲基礎設施管理平臺CloudStack提供基礎和高級的網路環境將虛擬機進行組網、進行虛擬機的增長刪除等等配置操等操做。其核心功能的網絡模塊結合虛擬機管理軟件進行虛擬機的管理備份快照功能,進行不一樣虛擬機平臺的整合。給用戶自助管理的權限。經過將二者的優點結合,以知足開發部門的現有問題。
下面是一個具體的流程,來幫助讀者理解這個架構方案:
1. 安裝配置好的VMwarevSphpere ESXI5.0主機N臺,在其中一臺上安裝Windows2003 Server版本的虛擬機,並在此虛擬機上安裝vCenterServer集中管理中心。
2. 將VMwarevSphpere ESXI5.0主機添加到vCenterServer中以便於實現虛擬機的跨主機的遷移、克隆等操做。
3. 安裝配置好CloudStack,因爲開發環境都在一個小的局域網內進行,不須要複雜的網絡架構,因此選擇安裝基本的網絡環境同時選擇的虛擬機管理程序爲VMware便可知足需求。
4. 建立好模板虛擬機,安裝必要的基礎環境軟件等,並集成開發好的自動部署工具。
製做好的VMware模板計算方案:
5. 在CloudStack中建立開發部門的員工帳號。
6. 郵件通知新入職的員工所須要的各類信息,固然了CloudStack的帳號也會一併給他。收到了這些信息按照入職指導文檔進行本身工做環境的熟悉。
7. 員工瞭解到關於開發環境部署的方法,經過WEB登錄我的管理地址,進行虛擬機的自助式管理,按照已經有的模板進行建立,或者按照本身的意思進行上傳已有的鏡像系統定製本身的系統,而後按照說明說進行開發環境的部署工做。
用戶自定義項目:
整個流程走下來基本上新員工不會在基礎環境上花費超過2小時,不須要維護人員的干預,除非有某些不可預知的問題。
最後每位相關代碼編寫的負責人員,在本身的虛擬機上調試好之後就能夠提交到svn上,而後同時在trunk所在的虛擬化環境中,經過腳本進行代碼更新。
測試部門的同事在trunk上測試沒有問題後,進行代碼上線發佈。
方案總結:
這樣一整個開發的週期就走完了,能夠看到VMware在這個架構中的基礎環境做用是很是重要的,配合CloudStack讓用戶自行管理。這樣作其實就像銀行開通更多的ATM和網銀等是用戶進行自助式的辦事同樣的模式。
總體開發的基礎環境比較順利的得到,開發人員就能夠將大部分精力放在開發的工做上了,工欲善其事,必先利其器。如今整個開發部門的總體工做效率較之前有比較有了很大的改善。同時也因減小了物理機的數量,機房的耗電大大的下降,使公司的硬件等資源成本減小投入,響應了國家提倡的節能環保口號。