運維思索:目錄管理規範的重要性

這是我參與8月更文挑戰的第7天。java

簡述

做爲運維團隊的一員,當你登陸服務器第一時間是否有如下行爲:python

  • 肯定應用的啓動目錄、數據目錄、日誌目錄、啓動用戶;
  • 肯定應用如何啓動及是否有開機自啓動或守護進程;
  • 肯定服務器的平常腳本目錄、軟件源碼目錄、公共目錄等;

若是你存在以上行爲,那說明大家的團隊須要作目錄管理規範了。這是爲何呢?首先明確的是咱們不管作什麼規範,目的都是避免差別性;其次團隊中每一個人的習慣不一樣,沒有規範必將致使服務器配置差別五花八門,無形中增長了運維的難度;最後目錄的規範統一能夠給後續的自動化打下堅實的基礎。tomcat

舉個簡單的例子: 有了統一的備份目錄,咱們只需運行一個簡單的一條命令就能夠實現數據的遠程備份,而不用爲適配各類備份目錄而煩惱。服務器

所以,目錄管理經常被你們所忽略,可是作好目錄管理可讓咱們受益不淺!!markdown

思路

既然目錄管理如此重要,咱們應該從哪方面做爲切入點呢? 下面就來談談咱們一些見解吧。app

對於目錄來講,最終承載的是各類技術棧、功能組件,所以它們就成了咱們目錄規範的需求依據。 咱們就來把這些需求來分下類。 1.開發技術棧運維

  • Java
  • Php
  • Python
  • 等等

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

經過以上表格得出,對於交付一臺服務器,咱們首先要搞明白如下幾點:

  • 開發技術棧
  • 公共組件
  • 基礎組件
  • 業務組件

只要把這些組件關係弄清了,那麼如何安放目錄也就不言而喻了。

總結

咱們經過引入技術棧和功能組件的方式,在邏輯層面將原來揉雜在一塊兒的系統從新分組、分類編排,這不只有助於咱們更好的進行運維管理,更重要的是爲之後的自動化打下了堅實的基礎。。。。。

相關文章
相關標籤/搜索