Alan Tsai 的學習筆記


學而不思則罔,思而不學則殆,不思不學則“網貸” 為現任微軟最有價值專家 (MVP)、微軟認證講師 (MCT) 、Blogger、Youtuber:記錄軟體開發的點點滴滴 著重於微軟技術、C#、ASP .NET、Azure、DevOps、Docker、AI、Chatbot、Data Science

[iThome第8屆鐵人賽 01]開篇 - 為什麼要寫這個主題

又到了新的一屆鐵人賽,針對這次是否要參賽其實非常的糾結:一方面因為工作的關係,額外的時間越來越少,但是一方面又想把寫日誌的習慣找回來,在這種糾結的心情中,最後,還是想寫戰勝了不想寫。

這已經是第三次參加鐵人賽了,對我來說,每一年的主題都比上一年的更加困難,今年選擇的主題更是我這兩年想做但是一直沒有做的部分,也就是如何在日常生活中把DevOps引進來,並且提升日常工作效率。

同去年一樣,今年很多東西會是邊執行並且邊研究和邊記錄,希望大家能夠在這個系列學習到東西。


為什麼寫這個主題

本來第8屆鐵人賽我想寫的是Typescript和Angularjs - 不過去年第8屆鐵人賽並沒有舉行,因此那個系列就夭折了(或許過一陣子有時間會在寫),那為什麼今年我不寫Typescript反而想寫DevOps呢?

原因很簡單,經過這幾年的開發生涯,我發現其實我花很多時間在非開發的事情上面。這些事情,很多都是重複性的,並且各別花的時間並不多,但是加在一起,時間非常恐怖。

舉個例子來說,大家有否算過,把VS打開只為了幫網站發佈出來。以我來說,一般來說,我可能會開2個VS以上(相信大家有多個維護案的時候,常常會開不同VS),這個時候,如果接到,“幫我把XXX系統更新一下”,
這個時候,要做的事情有:

  1. 要把那個網站的VS打開
  2. 選擇發佈
  3. 把發佈資料夾壓縮
  4. 最後把它傳到機器上面
  5. 解壓縮更新

這一整個流程下來,可能花的時間要10分鐘左右,來看一下,我們會發現好幾個地方時間都浪費了。

  1. 要把那個網站的VS打開 - 開VS其實是一個很花時間的動作,尤其是在電腦滿載,然後VS專案又大的情況,可能關開這個專案就要2~3分鐘,更別說開啟中會影響本來工作
  2. 選擇發佈 - 透過點擊右鍵選發佈,會發現機器慢的時候,還要等,甚至右鍵內容太多還會造成VS當掉
  3. 把發佈資料夾壓縮 - 壓縮的時候要輸入壓縮出來的檔案名稱,通常我會寫下日期方便日後比對,這個可能寫錯,容易造成混搖
  4. 最後把它傳到機器上面
  5. 解壓縮更新

整個流程下來,會發現:

  1. 很多時間浪費在等待
  2. 很多重複動作,很有可能人為疏失造成要重新在做一次
  3. 當做錯的時候,尤其是在很急的情況,心情很嘔

這些事情,其實如果算起來,會發現其實浪費掉很多時間,難道沒有什麼方式可以解決嗎?

如果注意分析,會發現,這些東西其實重複性非常高,而重複性高的工作在IT世界是哪種職業最多?其實是MIS,而MIS如何解決這種問題,就是透過自動化(Automation)

舉例來說,今天MIS要檢查Server狀況,如果他每過1分鐘,就手動呼叫PING,可以感覺的出來,1 可能會忘記(例如忙什麼就忘記做了)2 實在很無聊 - 這個時候MIS就會寫script來自動化處理這個事情。

難道我們工程師就不能夠自動化?難道那些常常要做的事情一定要我本人做?不能請別人做或者做的時候我可以繼續做我本來在做的事情?

以我上面流程來說,還真的一定要我本人做,因為如果一個同事不懂得如何用VS的發佈(雖然很簡單),不就只能夠我來做?難道不能夠有個傻瓜式的東西,任何人只要執行了,得到的結果和我執行會一樣,甚至
不是人執行,而是機器依照什麼條件執行。對我來說,我只要那個結果,過程是不重要的。

這些想法其實一直環繞在我腦海里,直到有天我聽到了DevOps,然後發現其實就是自動化,這個時候我就想把一些想法代入到我的日常開發中。(不過拖了好幾年直到今年藉著鐵人賽把它落實下來)

適合什麼人看

基本上在這個系列裡面,最適合是.Net 工程師看,因為我的例子都是用.net寫的,最後甚至有個小小的package方便不同.net專案導入這個自動化機制。

不過更重要的是和大家分享是想法,觀念,看過我上個系列會知道,我基本上是先將概念和原因,然後實作反而只是一個驗證說如何實現的佐證。
所以就算今天你不懂.net,只要你懂了我提到的概念,在你的平台上面一定可以用類似的工具做到一樣的功能。

使用到的工具

我會使用到:

  1. Visual Studio
  2. github - 範例程序
  3. powershell(psake) - build的工具
  4. Appveyor(Visual Studio Team Service)
這些工具都會在對應時間說明,所以不會用沒有關係

結語

上面講了一大堆,其實總結起來就是,自動化如何給開發帶來便利?了解這個,其實就不難了解為什麼DevOps現在這麼夯。

希望大家在讀這個系列的時候都有所收穫,如果有發現錯誤,也不吝指正。

下一篇會從什麼是DevOps開始講起。


如果文章對您有幫助,就請我喝杯飲料吧
街口支付QR Code
街口支付QR Code
台灣 Pay QR Code
台灣 Pay QR Code
Line Pay 一卡通 QR Code
Line Pay 一卡通 QR Code
街口支付QR Code
支付寶QR Code
街口支付QR Code
微信支付QR Code
comments powered by Disqus