標準先行數據庫
標準先行編程
標準先行緩存
雖然這個事情比較枯燥和繁瑣,可是於紛繁複雜中抽象出標準規範的東西,是咱們後續一系列自動化和穩定性保障的基礎。萬丈高樓平地起,因此請你必定不要忽略這個工做。服務器
標準化流程:網絡
(1)識別對象架構
(2)識別對象的屬性運維
(3)識別對象間的關係編程語言
(4)識別對象的使用場景微服務
基礎設施層面的標準化工具
(1)識別實體對象,主要有服務器、網絡、IDC、機櫃、存儲、配件等。
(2)識別對象的屬性,好比服務器就會有 SN 序列號、IP 地址、廠商、硬件配置、維保信息等;
網絡設備如交換機也會有廠商、型號、帶寬等信息。
(3)識別對象之間的關聯關係,好比服務器所在的機櫃,虛擬機所在的宿主機、機櫃所在 IDC 等簡單關係;
複雜一點就會有核心交換機、匯聚交換機、接入交換機以及機櫃和服務器之間的級聯關係等,這些相對複雜一些,也就是咱們常說的網絡拓撲關係。
(4)識別出針對運維對象所實施的平常運維操做有哪些,也就是識別出運維場景是什麼。
以服務器爲例,咱們針對服務器的平常操做有采購、入庫、安裝、配置、上線、下線、維修等等。
另外,可能還會有可視化和查詢的場景,如拓撲關係的可視化和動態展現,交換機與服務器之間的級聯關係、狀態(正常 or 故障)的展現等,這樣能夠很直觀地關注到資源節點的狀態。
(5)對上述運維場景的自動化開發。
應用層面的標準化
邏輯對象:應用
(1)識別對象。這裏的對象應該在微服務架構設計和拆分時就肯定下來,而後延伸到運維這裏,而不是由運維創造。
(2)識別對象屬性。對象的屬性分爲業務屬性和運維屬性,業務屬性由業務架構師去識別,運維屬性由運維工程師去識別。
應用的元數據屬性。如應用名、應用屬主、所屬業務、是不是核心鏈路應用、應用的功能說明。
應用的代碼屬性。如編程語言以及版本、GitLab地址等。
應用的部署模式。如基礎軟件包(JDK、C++、Go)、運行容器(Tomcat、JBoss)等。
應用的目錄信息。如運維腳本目錄、日誌目錄、應用包目錄、臨時目錄等。
應用的運行腳本。如啓停腳本、健康監測腳本。
應用運行時的參數配置。如運行端口、Java的JVM參數、GC方式、以及新生代、老生代、永生代的堆內存大小配置等。
(3)識別對象關係。也就是應用與外部的關係。
應用與基礎設施的關係。好比應用與資源的關係、應用與VIP的關係、應用與DNS的關係。
應用與應用之間的關係(平行層面)。也就是A應用服務或API與B應用服務或API之間的依賴關係。
(全鏈路工具平臺,用來管理應用間的關係)
應用與各種基礎組件之間的關係。好比應用與緩存、應用與消息隊列、應用與數據庫之間的關係。
(4)識別應用對象的運維場景。
應用的建立
應用的持續集成
應用的持續發佈
應用的擴容
應用的縮容
應用的監控
應用的容量評估
應用的壓測
應用的限流降級
(5)針對這些運維場景進行自動化。