這是我參與8月更文挑戰的第7天。java
做爲運維團隊的一員,當你登陸服務器第一時間是否有如下行爲:python
若是你存在以上行爲,那說明大家的團隊須要作目錄管理規範了。這是爲何呢?首先明確的是咱們不管作什麼規範,目的都是避免差別性;其次團隊中每一個人的習慣不一樣,沒有規範必將致使服務器配置差別五花八門,無形中增長了運維的難度;最後目錄的規範統一能夠給後續的自動化打下堅實的基礎。tomcat
舉個簡單的例子: 有了統一的備份目錄,咱們只需運行一個簡單的一條命令就能夠實現數據的遠程備份,而不用爲適配各類備份目錄而煩惱。服務器
所以,目錄管理經常被你們所忽略,可是作好目錄管理可讓咱們受益不淺!!markdown
既然目錄管理如此重要,咱們應該從哪方面做爲切入點呢? 下面就來談談咱們一些見解吧。app
對於目錄來講,最終承載的是各類技術棧、功能組件,所以它們就成了咱們目錄規範的需求依據。 咱們就來把這些需求來分下類。 1.開發技術棧運維
2.功能組件工具
能夠理解爲公共資源,如安裝軟件、腳本、備份等spa
能夠理解爲技術棧依賴的基礎工具,如jdk、tomcat等日誌
能夠理解爲應用相關,如應用軟件包、應用日誌等
經過以上兩個分類,能夠看出他們的包含關係爲: 開發技術棧 > 功能組件 > 目錄
理清了技術棧、功能組件與目錄的關係後,咱們就能夠本着「一目瞭然、一句到位、一清二楚的」規範風格,直接以圖表的形式進行展現,而不拘泥於文字。
技術棧 | 功能組件 | 名稱 | 目錄 | 屬主 | 備註 |
---|---|---|---|---|---|
X | 公共組件 | ||||
腳本 | /data/logs | app | 統一腳本目錄 | ||
備份 | /data/backup | root | 統一備份目錄 | ||
應用軟件 | /usr/local | app | 統一軟件目錄 | ||
源碼安裝包 | /usr/local/src | root | 統一源碼存放目錄 | ||
Java | 基礎組件 | jdk | /usr/local/jdk-1.X | root | |
supservisor | /etc/supervisor.d/{app_name}.conf | root | |||
業務組件 | 應用包 | /data/java_app/{app_name}/xxx.war | app | ||
運行時日誌 | /data/java_app/{app_name}/logs | app | |||
運行時數據 | /data/java_app/{app_name}/data | app | |||
Python | 基礎組件 | conda | /usr/local/conda | app | |
supservisor | /etc/supervisor.d/{app_name}.conf | root | |||
業務組件 | 應用 | /data/python_app/{app_name} | app | ||
運行時日誌 | /data/python_app/{app_name}/logs | app | |||
運行時數據 | /data/pyhton_app/{app_name}/data | app |
經過以上表格得出,對於交付一臺服務器,咱們首先要搞明白如下幾點:
只要把這些組件關係弄清了,那麼如何安放目錄也就不言而喻了。
咱們經過引入技術棧和功能組件的方式,在邏輯層面將原來揉雜在一塊兒的系統從新分組、分類編排,這不只有助於咱們更好的進行運維管理,更重要的是爲之後的自動化打下了堅實的基礎。。。。。