2019年6月23日 星期日

怎麼回事?我怎麼會重新愛上CLI的?

當你有一定的年紀之後,話就會愈說愈小聲。雖然我清楚地明白這個道理,但每次發生在自己身上時總是印象深刻。

常看這個blog的人應該都知道,我不太喜歡CLI(Command-Line Interface),除了因為現在的圖形化介面其實大多都做得很完善,加上我從小討厭背指令,實在記不得要完成某個動作的時候,該在鍵盤上敲下什麼…而且更主要的原因是,我經歷過那個只有CLI沒有GUI(Graphical User Interface)的年代,那個時代的工程師天天跟黑底白字(或綠字)的螢幕為伍,花上數小時在鍵盤上敲打著別人看起來完全沒有意義的文字…

我也不例外,副作用之一當然是練就了超快的打字速度…但其實頗為辛苦。所以當GUI出現的時候,我和很多那個年代的工程師一樣,是大聲頌揚大力鼓吹的,並且對CLI棄之如敝屣。

一晃眼30多年過去了…

最近這幾年,CLI居然又成為主流,我在心理上其實很難立刻接受。(你會發現人的既定印象與觀念有時真的很死板,一旦形成後,無法改變到難以想像的地步)我始終認為,只要在有設計良好的GUI的前提下,我根本沒什麼理由需要跟以前一樣一天到晚用力敲打鍵盤!

直到…

最近因為上課的關係,需要實現『金絲雀佈署』,這導致我常常需要一口氣建立兩三個Web Site Slot,並且在不同的slot分別各自佈署網站(這還只是暖場)。然後,為了實現金絲雀,我必須要先在第一個網站佈署新版,然後透過Web App的traffic management改變流量,把10%流量導入第一個站台,依此類推,直到最後一個站台佈署完新版…

第一次,我用Azure Web UI用到覺得很X。

當我發現,過程中我少做(或做錯)了一個步驟,導致設定配置有錯誤的時候,為了讓整個Lab環境乾淨且順暢一點,我發現我得要重來 >_<。

佈署到第三輪之後,我開始覺得這樣在網頁上用滑鼠點來點去實在不行。

就在這一刻,我竟然毫不猶豫的打開了powershell:

其實過去就安裝過了azure cli,所以我隨手把建立網站的指令打了進去,不夠確定的話還可以請AI神燈阿拉丁幫忙查詢(在上面,有看到嗎,哈)…後來發現,我與其這樣一行一行打,不如用VS Code編輯。接著開了VS Code,想到印象中有一個azure cli套件,可以有intellisense的功能,還可以在VS Code裡面直接run Azure CLI,所以我把套件裝了起來…

然後沒兩下我寫完了重建Web Site和Slot的指令,來回測試之下,一口氣重複做了近10次上面這個Lab…建立resource group, 建立網站, 建立slot, 佈署三個網站,再佈署新版,切換流量,測試,刪除resource group…

做到第五次時候我懂了(其實我早就懂了,只是不想承認),這些動作沒有CLI不行。

我不可能在網頁上連續操作10次這些動作,首先步驟很容易搞混,隨便順序上的錯誤就可能讓結果不同。其次,使用GUI我得要等網頁的回應時間,它比起CLI根本慢太多,再來,這些動作要在課堂上帶著學員跟著step by step一起做,用GUI大概得多花個半小時,但CLI只需要給學員指令碼就行…

這還只是做十次,如果,我是IT維運人員,每天都要做個十幾次呢?我能用GUI嗎?不,我會瘋掉…終於,我徹底接受必須使用CLI的原因了。

其實,我早就知道CLI的優點,只是我不常碰到那些情境吧。咦? 再仔細想想,我真的碰不到這些情境嗎? 我發現,我過去其實是下意識地有點刻意避開那些會讓我用到CLI的情境,好讓自己維持一個繼續討厭CLI的理由!!!

我突然發現,我或許不是因為覺得它不好用而討厭它,我可能是為了想繼續討厭它而下意識的選擇不去用…人的大腦還真是詭異啊。

直到有一天,環境逼著我非翻出這個解決方案,我才承認,這個過去被我討厭的對象,其實非但並不討厭,而且還能夠在許多關鍵時刻幫上我的忙…然而我僵化的既定印象,卻讓我把這個解決方案一直排除在選項之外…

這根本是我自己天大的損失。

轉念一想,一個CLI是如此,其實生活當中許多事情不也是如此嗎?自己討厭的那群同事、那些政黨、那個該死的OOXX…是不是其實也是我刻意選擇的價值判斷? 是不是他們現在的真實的狀況其實也早跟我過去在腦袋裡植入的既定印象有所不同?如果,我能讓(強迫)自己更客觀一點,是不是或許能夠更早發現對方的優點,以及我可以和對方合作的機會?

想到這裡,我更無懸念的繼續用VS Code把Lab剩下的指令打完…『或許明天中午,去找那個很久沒說話的同事吃個飯吧...』我心裡這樣想著。

2019年6月10日 星期一

Azure DevOps(VSTS)的CLI命令列工具

你大概知道以前Azure DevOps叫做VSTS,其實打從VSTS時代,它就有一個很好用的CLI工具,就叫做VSTS CLI。

你可以從底下位置下載:https://aka.ms/vsts-cli-windows-installer

頁面位於:
https://docs.microsoft.com/en-us/cli/vsts/install?view=vsts-cli-latest

它可以幹啥呢? 基本上可以透過命令列的方式做所有事情,當然你必須先設定好環境和權限。下載後請先安裝:

安裝完成後,你就可以在命令列使用這個工具了,先來測試一下:

確定可以使用之後,我們先做一些基本設定,使用vsts configure指令之後,基本上都用預設值即可:

完成之後,我們就要登入了,可以透過底下指令,加上你的Personal Access Token:

Personal Access Token可以在Azure DevOps站台上申請:

來連結到一個azure devops專案試試看:

完成後,我們來測試一個好玩的指令:

輸入之後,你會發現所有人員登入azure DevOps網站之後,都會出現底下提示:

哈哈,我們把Azure DevOps變成Developers的公告系統了。

當然CLI的功能不只如此,舉凡建立專案、自動建置、套件管理、工作項維護…幾乎所有重要工作都可以透過CLI命令列來做,它是一個非常強大好用的管理工具。

不妨找時間玩玩看囉。

---

btw, vsts cli近期會改為Azure CLI的一部分,透過Azure DevOps extension來整合,後續再為大家介紹這個部分。

2019年6月8日 星期六

你準備往哪裡走…?

還記得我在研討會常講的那個故事嗎?

某次我老闆急著趕去會場,由於正在準備接下來會議的主講內容,手上拿著稿件低頭攔車,因為快要遲到,他跳上計程車後情急地說:『快…開快點。』卻忘了計程車駕駛壓根不是平時幫他駕車的司機,根本不可能知道他要去哪。

只見計程車司機二話不說猛踩油門車子狂飆了三個路口之後,我老闆才想到似乎有點不對,問計程車司機說:『我剛有跟你說要去哪嗎?』

司機驕傲地回答:『沒有,不過,我確實有開的很快,對吧?』

最近開始認真讀那本暢銷的OKR(先前是有看過一些介紹文章,但只能大致掌握基本概念),不過讀著讀著又開始覺得,近代幾乎每一本實用的管理書籍,都曾在書中以不同的姿態告訴你目標有多重要,而『認真地』訂出目標幾乎是一切管理的根本。

不管是柯維與成功有約系列、高德拉特目標系列、最近我很喜歡的『執行力的修練』、管理大師杜拉克的演講或著作、坊間流行的KPI和OKR...每一種方法論其實都在跟我們說同一件事情...

『若你沒有認真的訂出目標,就什麼都別談。』

這個道理其實大家都懂,但環顧身邊,有認真訂出目標的人似乎還真的不多。

的確,我們每個人或多或少都有(過)目標,但我們面對自己的目標到底有多認真呢?

我依稀還記得20多年前我的管理學老師在課堂上說:『你絕對可以實現任何(他強調任何)你想實現的目標,只要你「現在」把它寫在紙上。』他說『關鍵不在於你訂的目標有多麼大,而是你到底有多認真,你到底有渴望實現這個目標,願意為它附上多大代價...』

當然,那天全班沒人理會他說的話,當下我甚至有點懷疑他自己到底相不相信自己現在在說什麼?

20多年後,我唯一後悔的是當時寫下的目標太小。

當年他說,有一個非常簡單的指標,能夠衡量出你對這個目標有多認真。

不,不是你有多慎重的把它記錄在高價的筆記本上,也不是你每天把它拿出來膜拜的次數有多少。而是…你身邊和你最親近的人當中(朋友、家人、同學同事...),有多少人知道你的目標? 有多少人能在不需要提示的狀況下,就能清楚的說出你訂的目標,這些人愈多,你的目標實現的可能性愈大...,如果你身邊還沒有這樣的人,從今天開始,把你的目標寫在紙上,貼在你的書桌前、房門口、座位上…讓每一個你身邊的人,都知道你的目標是什麼…

不知道為什麼,他當年說的每一句話,我至今還記得相當清楚...

20多年過去了,各種管理技術和工具一直在進步著,便利貼的材質愈做愈好,價格也愈來愈便宜,但在我們的團隊和公司裡,依舊有許多人像是故事中的那位計程車司機一樣,看似全力地衝刺著,但根本不知道方向是否正確,甚至,也壓根不在乎方向是對是錯,彷彿有在衝刺就代表有在努力…可以催眠自己有資格心安理得地度過這一天… 

有時,我們的人生也像企業一樣,被身邊的競爭對手和這個世界逼著賣力往前衝,但終點線到底是不是自己想要的方向呢? 別忙到沒時間好好想清楚了。

別忘了,如果方向錯了,加倍的努力也只會讓你離目標再多兩倍遙遠而已。

Related Posts Plugin for WordPress, Blogger...

熱門文章