又到了新的一屆鐵人賽,針對這次是否要參賽其實非常的糾結:一方面因為工作的關係,額外的時間越來越少,但是一方面又想把寫日誌的習慣找回來,在這種糾結的心情中,最後,還是想寫戰勝了不想寫。
這已經是第三次參加鐵人賽了,對我來說,每一年的主題都比上一年的更加困難,今年選擇的主題更是我這兩年想做但是一直沒有做的部分,也就是如何在日常生活中把DevOps引進來,並且提升日常工作效率。
同去年一樣,今年很多東西會是邊執行並且邊研究和邊記錄,希望大家能夠在這個系列學習到東西。
同步發表於我的部落格:http://blog.alantsai.net/2016/12/devopsSeries-intro.html
本來第8屆鐵人賽我想寫的是Typescript和Angularjs - 不過去年第8屆鐵人賽並沒有舉行,因此那個系列就夭折了(或許過一陣子有時間會在寫),那為什麼今年我不寫Typescript反而想寫DevOps呢?
原因很簡單,經過這幾年的開發生涯,我發現其實我花很多時間在非開發的事情上面。這些事情,很多都是重複性的,並且各別花的時間並不多,但是加在一起,時間非常恐怖。
舉個例子來說,大家有否算過,把VS打開只為了幫網站發佈出來。以我來說,一般來說,我可能會開2個VS以上(相信大家有多個維護案的時候,常常會開不同VS),這個時候,如果接到,“幫我把XXX系統更新一下”, 這個時候,要做的事情有:
這一整個流程下來,可能花的時間要10分鐘左右,來看一下,我們會發現好幾個地方時間都浪費了。
整個流程下來,會發現:
這些事情,其實如果算起來,會發現其實浪費掉很多時間,難道沒有什麼方式可以解決嗎?
如果注意分析,會發現,這些東西其實重複性非常高,而重複性高的工作在IT世界是哪種職業最多?其實是MIS,而MIS如何解決這種問題,就是透過自動化(Automation)。
舉例來說,今天MIS要檢查Server狀況,如果他每過1分鐘,就手動呼叫PING,可以感覺的出來,1 可能會忘記(例如忙什麼就忘記做了)2 實在很無聊 - 這個時候MIS就會寫script來自動化處理這個事情。
難道我們工程師就不能夠自動化?難道那些常常要做的事情一定要我本人做?不能請別人做或者做的時候我可以繼續做我本來在做的事情?
以我上面流程來說,還真的一定要我本人做,因為如果一個同事不懂得如何用VS的發佈(雖然很簡單),不就只能夠我來做?難道不能夠有個傻瓜式的東西,任何人只要執行了,得到的結果和我執行會一樣,甚至 不是人執行,而是機器依照什麼條件執行。對我來說,我只要那個結果,過程是不重要的。
這些想法其實一直環繞在我腦海里,直到有天我聽到了DevOps,然後發現其實就是自動化,這個時候我就想把一些想法代入到我的日常開發中。(不過拖了好幾年直到今年藉著鐵人賽把它落實下來)
基本上在這個系列裡面,最適合是.Net 工程師看,因為我的例子都是用.net寫的,最後甚至有個小小的package方便不同.net專案導入這個自動化機制。
不過更重要的是和大家分享是想法,觀念,看過我上個系列會知道,我基本上是先將概念和原因,然後實作反而只是一個驗證說如何實現的佐證。 所以就算今天你不懂.net,只要你懂了我提到的概念,在你的平台上面一定可以用類似的工具做到一樣的功能。
我會使用到:
這些工具都會在對應時間說明,所以不會用沒有關係
上面講了一大堆,其實總結起來就是,自動化如何給開發帶來便利?了解這個,其實就不難了解為什麼DevOps現在這麼夯。
希望大家在讀這個系列的時候都有所收穫,如果有發現錯誤,也不吝指正。
下一篇會從什麼是DevOps開始講起。