我們知道,企業(yè)的 IT系統(tǒng)是通過網(wǎng)絡(luò)進行連接的,但是網(wǎng)絡(luò)也是由人來維護,所以運維自動化就非常重要了。 那什么是運維自動化呢? 運維自動化是指將軟件開發(fā)過程中的軟件運行維護環(huán)節(jié)(包括測試、開發(fā)、上線)的人工操作流程轉(zhuǎn)變?yōu)樽詣訄?zhí)行過程(包括部署、發(fā)布、監(jiān)控等),并實現(xiàn)部分或全部自動化控制和管理。它通過使用各種技術(shù)和工具幫助企業(yè)提高 IT運營效率,使企業(yè)更好地應(yīng)對來自市場競爭對手及內(nèi)部等外部環(huán)境的挑戰(zhàn)。 而運維自動化主要體現(xiàn)在兩個方面:一、通過應(yīng)用系統(tǒng)來自動執(zhí)行一些運維工作;二、通過應(yīng)用系統(tǒng)自動執(zhí)行業(yè)務(wù)功能。 而實現(xiàn)軟件運行維護自動化有兩種方法:一是通過編寫代碼實現(xiàn)程序的編寫;二是依靠各種技術(shù)手段來實現(xiàn)程序的運行維護。 但是不管采用哪種方法,都必須具備兩個要素:
1、必須具備一個能夠執(zhí)行的程序
所謂的能夠執(zhí)行的程序,是指通過某種手段能夠?qū)崿F(xiàn)對程序的控制,也就是我們說的運維自動化。 這個能夠執(zhí)行的程序是由程序代碼或者一些操作指令組成,而這些代碼和操作指令只能在程序員編寫程序時使用,不能在程序員之外其他任何人員手中使用。 這個能夠執(zhí)行的程序,也就是我們說的自動化工具。 所以想要做運維自動化需要先設(shè)計好運維應(yīng)用系統(tǒng),然后再開發(fā)運維自動化工具對其進行維護。
2、必須有一些能執(zhí)行的手段,比如人工操作和自動化執(zhí)行之間是否存在差別?
當然,這兩個要素不是完全孤立的,它們是相互聯(lián)系的。 如果把兩個要素完全分開來看,那么,人工操作和自動化操作就沒有任何差別。 因此,必須考慮到這些因素,在保證所有的業(yè)務(wù)流程都可以實現(xiàn)自動化執(zhí)行的前提下,才能讓運維程序自動化運行。 其實從上面我們可以看出,實現(xiàn)運維自動化有很多方法和技術(shù)途徑。 其中最重要的一種方式就是應(yīng)用軟件技術(shù)來實現(xiàn) IT系統(tǒng)的自動運行、維護。 而在應(yīng)用軟件技術(shù)中又有很多不同的方式和途徑:
3、運行維護的流程和過程(包括故障排除)是不是完全自動化了?
在自動化運維過程中,通常需要開發(fā)、測試和上線等多個環(huán)節(jié),這是不可避免的。 但是在這個過程中的任何一個環(huán)節(jié)都不能完全自動化,因為它會影響到整個業(yè)務(wù)的正常運行。 而對于那些有大量代碼依賴度的運維工作來說,完全自動化是不可能的。 例如,有些運維程序需要大量代碼依賴度來實現(xiàn)運行維護工作,比如:在測試過程中會寫很多命令執(zhí)行、在開發(fā)過程中會編寫很多代碼來開發(fā)這些功能等等。 所以如果一個企業(yè)完全采用自動化運維流程和技術(shù)的話,那么就可能導(dǎo)致整個企業(yè)運行維護的流程變得很復(fù)雜、很難維護。
4、如何選擇適合自己企業(yè)的運維自動化解決方案?
一個好的方案需要有一套完整的解決方案,并提供給用戶使用,而不是一套“模板”“插件”等產(chǎn)品,這樣可以節(jié)省大量的開發(fā)成本。 所以在選擇解決方案時應(yīng)該注意以下幾點: (1)、功能是否滿足企業(yè)業(yè)務(wù)需求。 (2)、自動化程度:是否具備自動化能力,是不是可以實現(xiàn)運維管理。 (3)、是否可以與現(xiàn)有系統(tǒng)集成:是否支持第三方系統(tǒng)如 Hibernate/Cloudera/VMware等。