最容易入門的雲端應用情境 – 開發/測試在雲端 (Development and Test in the Cloud)


 

註: 內文提及Visual Studio Ultimate已於 2015/3月改名為 Visual Studio Enterprise

: 內文提及Visual Studio Online已於 2015/11月改名為 Visual Studio Team Services

所有「開發/測試在雲端」的學習資料都在本文下方

MSDN 訂閱優惠方案 - https://aka.ms/vs2013tw

各位開發者及研發主管:

雲端應用愈來愈普遍,但對企業用戶而言,仍有一些疑問,包括:「哪些雲端應用情境是最容易導入的?」、「如何開始在企業內導入雲端應用」,本文介紹一種應用情境叫「開發/測試在雲端 (Dev and Test in the Cloud)」,什麼叫做「開發/測試在雲端」呢? 從字面上解譯,就是將應用程式開發或研發團隊所需的開發、測試環境都放到雲端,對企業的開發團隊或是研發部門,算是最容易入門的雲端應用了,本文介紹它的應用情境價值,以及如何導入。

建立開發/測試環境的痛? 從一個小故事說起

        筆者早期是從事電子商務網站開發的工作,帶領專案團隊為不同行業別的企業客戶開發過線上書城、線上賣衣服、線上買賣股票的下單系統,這類的系統因為很嚴謹,針對每個客戶都需量身訂作,且需在上線前做好驗證及測試,且很多時候需與客戶內部系統的環境做整合或搭配,例如:該客戶內部是使用不同的資料庫 (SQL Server、Oracle ….),不同的作業系統 (Windows or Linux) 且版本也都不一樣,因此針對不同客戶的開發/測試環境都不同。在當時,為了準備上線前的開發/測試用環境,還得在內部申請機器,針對不同客戶的環境配置安裝不同的軟體,並麻煩我們的系統管理人員安裝相關軟體,如此我們專案團隊才有辦法開工。光是要搞定這些開發/測試用的Lab 環境,就得耗上1個星期以上,對我們開發團隊而言,心急啊!

        還有程式開發工程師所使用的工作機器,通常新人剛進公司,會先拿到一台空機,接下來 PM 會給他一個軟體安裝清單,清單上詳述在他的工作機上面,需安裝哪些軟體及工具,例如: 作業系統版本、開發工具版本、Framework /SDK 版本 (.NET 版本、JDK版本 …)、編輯器小工具 (xxxEditor)、瀏覽器測試用小工具、各類的模擬器、外掛及元件,相信各位開發者都有類似的經驗,光是安裝好這些軟體清單,可能就得花上1天以上的時間都還不一定能搞定。

        當然在近幾年虛擬機器 VM 的技術已很成熟,企業會在內部建立 VM 來建立測試環境,但內部申請 VM 除了仍需由人員花時間建立外,大都只是安裝好作業系統,對開發團隊而言仍需在其上安裝各式軟體才能真正的開工,另一個問題是,若是研發產品或是執行客戶的客製化專案,上線前測試環境需模擬各種客戶端可能的機器環境及設定,例如:不同作業系統版本、不同的資料庫版本、不同的CPU數、記憶體大小以驗證或測試在各種環境下都能執行正確,或是執行壓力測試以確保系統在大量壓力下的可用性,這些情境都需要能「很有彈性且快速地建立或設定機器、環境或 VM,試想你們公司內部能很快速且有效率地執行嗎?

 

董大偉老師分享其「開發/測試在雲端」的經驗。

最容易入門的雲端應用情境 – 開發/測試在雲端 (Dev/Test in the Cloud)

雲端最大的好處就在於彈性(Flexibility)及敏捷 (Agility), 也就是要多少有多少, 要什麼有什麼, 完全依你的需要隨時動態地建立、設定各種開發測試環境;再來的好處就是自行管理(Self-managed)及自動化 (Automation),讓開發/測試團隊自行在雲端建立環境,這好處是「讓機器做機器該做的事、而人做更有價值的事」,而不該由人工的方式,花大量的時間在申請流程、安裝軟硬體或設定環境。因此我常常對剛開始要採用雲端的使用者說:「雲端最大的好處在於彈性,軟硬體的成本降低算是附加價值,雲端讓你可以很敏捷地因應各種市場及競爭狀況、以及快速的回應使用者需求及回饋,讓企業及團隊更有競爭力!」

從 5 天到 10 分鐘 – 運用雲端快速建立開發/測試環境

公司正要開發一個新專案,需準備好一個供數10人的研發團隊進行開發、測試用環境,你要花多少時間準備呢? 是3天、5天還是2星期呢? 現在透過 Microsoft Azure,在短短數分鐘馬上建立好這些環境,讓開發團隊可以馬上開工,用最省錢的方式,彈性因應開發及測試應用程式的需求!

例如建立一個 QA 或 UAT (User Acceptance Test) 環境,或是 POC (Proof of Concept, 概念驗證,確定某技術/解決方案可以符合需求) 環境、這些環境的建立最適合運用雲端服務,快速又有彈性的滿足開發團隊的需求。再來許多企業的開發/測試環境會與上線環境 (Production) 分開,上線環境是由系統維運團隊(Ops Team)所管理,然而企業可能對於雲端應用處於剛導入或試用階段,將雲端運用於開發/測試環境是最沒有疑慮的應用了!建立開發/測試環境在雲端 (Development and Test in the Cloud) 對企業而言是最容易入門,且最快可以享受到好處的雲端應用!

我們來看一下「開發/測試在雲端」的應用情境有哪些:

1. 開發人員工作機 (Developer workstation)

從Azure上許多設定好的VM Image快速建立 VM 或自行上傳製作好的 VHD檔,讓開發人員透過遠端桌面連線 (RDP, Remote Desktop) 連線到該 VM,馬上就有一個高生產力的程式開發環境,並已安裝好 IDE (Visual Studio, Eclipse, ...), Frameworks, Tools, 外掛或元件等工具軟體,讓開發團隊的環境一致,關於資訊安全,你仍然管理 VM,隨時可以停止、關掉。應用情境 - 外包廠商、freelancer、短期專案需要一個開發人員環境。

2. 團隊開發及專案管理環境 (Team collaboration)

包括程式碼版控、工作單管理、測試、建置及專案管理環境。Visual Studio Team Services ( 原名Visual Studio Online) 是Azure上的一個服務,它是一個雲端團隊開發平台,涵蓋了整個軟體生命週期 (Application Lifecycle Management, ALM) 所需的功能。更好的是不論開發團隊使用的技術為何 (.NET/Java/PHP/iOS/ Android 開發....),皆可以在 VSTS 上,3分鐘馬上開通好一個團隊開發環境!

3. 開發/測試環境 (Dev and Test environments)

需要一個乾淨/獨立的測試機器,用來佈署開發中的 AP 供內部測試、 UAT (使用者測試/user acceptance testing) 或是 QA 環境。例如公司打算升級資料庫到 SQL Server 2014,但想先測試應用程式在SQL Server 2014是否可以移轉無誤,或是要有一個環境進行 POC、或是需要有一個獨立的環境,供外包廠商開發/測試。

以上三種應用情境,對開發團隊而言是很常見的,你可想想若在本地端或企業內建立這些環境,需花多少時間呢? 現在透過 Azure 及 Visual Studio Team Services ( 原名Visual Studio Online) ,只需數10分鐘馬上就建立好了!

 

董大偉老師的經驗分享為什麼將「開發/測試環境搬到雲端」?

我們在2014/6月底曾舉辦了軟體開發高峰會 ALM Day,其中微軟MVP董大偉老師 (David) 分享了他自己帶領專案團隊的經驗,David 已是數十年經驗的研發及專案主管經驗,開發過大大小小各類的專案,團隊成員分佈在多地,包括台灣、深圳、香港、新加坡,以及一些外包商 (contractor),他說明了為什麼將開發/測試環境搬到雲端,它的好處是什麼。其中三個使用經驗讓人印象深刻:

1. 一致化的開發人員環境馬上可上手

    針對外包人員及短期 freelancer,給他們一個設定好的Azure VM,內已安裝好 Visual Studio 及相關的開發工具、軟體。另外因要讓專案團隊大家寫碼的標準一致,後續好維護,有一些公用的Framework及元件,也建立了Private Nuget Server在Azure上,因此開發一個新專案時,所有會引用的Framework、元件、Library 都會自動從 Nuget Server 更新,大幅降低開發人員安裝軟體的時間,以及解決了元件版本不一致花太多時間 troubleshooting的問題。只需給這些外包人員 VM的連線權限,透過遠端桌面連線的方式,馬上可以開工了。更好的是,當專案結束時,可暫時將 VM 停止以節省費用,即使後續不同的維護人員接手,或是有新的延伸專案,可再將同一個 VM 啟用。

2. 善用 Visual Studio Team Services ( 原名Visual Studio Online)  提高專案透明度 (Visibility)

    除了讓專案成員很清楚的了解目前的專案進度、成員的工作負載狀況、Bug及工作單管理外,同仁間的信任感更好;更重要的是,也開放外部客戶參與專案,給客戶 Visual Studio Team Services ( 原名Visual Studio Online)  觀看專案進度的權限,好處是讓客戶隨時可以了解進度及目前成果,大幅提升與客戶間的信任度。

3. 更重視客戶回饋及互動

    David 的團隊目前是採敏捷開發 Scrum 的方式進行專案,每2到3週重要Sprint 結束後會邀請客戶來檢視 Demo 並給予回饋,因將 UAT 測試環境都放在Azure上,客戶隨時可以來檢視專案成果,另外透過 Feedback Client 工具,VS Online 會自動發出 email 通知客戶上來 UAT 環境檢測,當客戶有疑問或回饋,可以線上截圖 screenshot、甚至將測試的操作過程錄音、錄影並附上文字說明並回報到 Visual Studio Online,讓開發團隊可以即時在 Visual Studio Online 中看到這些意見回報,取代了以往透過 email 與客戶往來的bug 回報,客戶也會很感謝這些貼心的小地方,表示團隊很重視使用者及客戶的意見。

若你錯過了董大偉老師當天的演講,想了解更多開發/測試在雲端的應用,可觀看他的Blog文章!

另外之前的用戶案例,也可參考這篇 - [案例分享] 趨勢科技 - 善用 Scrum 敏捷開發 靈活因應市場變局

 

 

哪些 Azure 的特色,讓開發及測試的工作更便利呢?

1. 快速建立測試沙箱,Windows Server 或 Linux 虛擬機器環境

不到 10 分鐘,啟動單一核心到八核心、小於 1 Gb 到 56 Gb 的虛擬機器,不論是在辦公室、在家或全球各地有網際網路連線的位置,都可以直接安全連線到 Azure,來開發/測試應用程式。

2. 支援不同開發技術 - Visual Studio Online 雲端團隊開發平台

.NET/Java/PHP/iOS/Android各種不同技術、及使用Visual Studio/Eclipse/xCode不同開發工具的團隊及開發者,都可以透過 Visual Studio Online 進行版本管控 (支援 Git 分散式版控Team Foundation 集中式版控)、工作單管理、Bug Tracking、建置 (Build)及測試、敏捷開發、專案管理,只需 3分鐘立即在線上開通團隊開發環境,也可用企業 AD 帳號登入進行權限管理 (Azure AD 整合)。

3. 雲端壓力測試 - 測試應用程式負載及延展性

上線前執行負載壓力測試 (Stress Test / Load Test),確保應用程式在大量壓力下的可用性。以往進行壓力測試,需準備產生壓力的機器,所需的機器數量通常是數10台以上,才能模擬大量的 (上萬/或數10 萬) 同時線上使用者 (concurrent users)。現在可以運用 Visual Studio Team Services ( 原名Visual Studio Online)  所提供的雲端壓力測試 (Cloud Load Test),快速且彈性地產生這些壓力,馬上幫你省下準備機器的成本及安裝/設定相關軟體的時間。

4. MSDN 訂閱用戶獨享權益

MSDN 用戶在訂閱期間,可享有每個月 NT$ 1,600 ~ 4,700元的免費Azure額度供開發/測試用,不夠部份需加購可享最高 33% 折扣。可在Azure 中建立已設定好的 VM,包括 SQL Server、SharePoint Server及Visual Studio 等常用的開發環境,其中 Visual Studio 及 Windows 7/8.1的 VM,為 MSDN 用戶專屬,因 MSDN 訂閱原就是提供給開發/IT人員進行開發/測試/展示的工作,一般非 MSDN 授權的 Azure 帳號,無法使用; 若 VM 中需再安裝其它軟體,也可從 MSDN 訂閱下載軟體並安裝在 VM 中,這是 MSDN 訂閱獨享的權益並合法使用於Azure雲端的開發/測試環境。MSDN 也可以免費使用 Visual Studio Team Services ( 原名Visual Studio Online) ,更多 MSDN 權益請參考 - MSDN 訂閱是什麼? 開發者及 IT 如何善用 MSDN 提供的好物 - MSDN 購買及採購方式

關於在 Azure VM 上,安裝使用 MSDN 下載的軟體進行開發測試,或是直接從 Azure VM Gallery 中建立 MSDN 專屬的 VM (有 Visual Studio, Windows 7/8.1 VM,如下圖,左下角選取 "MSDN" ),其授權注意事項 –

1. 在 Azure 的 VM上,若要使用 Visual Studio,需要有 active 的 MSDN 授權 (仍在期限內的MSDN訂閱,非過期,並且以使用人數為授權計算方式),且 MSDN 的等級要對。例如: 擁有 Visual Studio Ultimate with MSDN 授權者,可以在 Azure VM Gallery 中選取 Visual Studio Ultimate 的 VM 直接建立並連線使用。擁有 Visual Studio Pro with MSDN 者,則可選取 Visual Studio Pro VM 建立。當連線到 VM 第一次打開 Visual Studio 時會需用 Microsoft Account 登入 (原 Live ID),因 MSDN 訂閱也是用 Microsoft Account 登入,以確認你的MSDN 等級,並且將你的 IDE 設定 (例如編輯器字型、顏色、TFS /VS Online 連線設定 ...) 都從雲端回復,讓你很方便地馬上使用

2. 若 Azure VM 上要安裝其它 MSDN 的軟體進行開發測試,則需有 active 的MSDN 授權 (仍在期限內的MSDN訂閱,非過期,並且以使用人數為授權計算方式)。

開發/測試放在雲? 給企業的建議是 …

將開發/測試這是最容易立即採用的雲端情境,例如雲端壓力測試 Cloud Load Testing,你的受測系統、資料都還是在企業自己的datacenter; 又比如做 POC,需要測試環境,馬上可以在 Azure 開 VM,待 POC 結束後就可關掉,再來開發團隊會需要一個乾淨的測試環境,隨時可以將開發中的應用程式佈署上去做測試,例如開放給 User 或外部使用者測試的 UAT 環境,這都很適合利用雲端,快速又有彈性的建立好環境。對資訊安全考量的企業,也可結合企業的 Active Directory - AD 做身份驗證,登入 Azure 或 Visual Studio Online 也可輸入 AD 帳號做到Single Sign-On,企業一樣可以管理、控制其存取權;也可建立 Azure 到企業內部本地端 VPN 連線,建立安全的連線通道。

請立即告訴你的開發團隊及研發主管,馬上開始,立即享受雲端的好處!

你的應用情境是什麼?

 

學習資源:

[簡報] 我想要向主管、同事、朋友簡報「開發/測試在雲端」的應用及好處 - 觀看投影片

[簡介入門文]

[學習影片]

MSDN 訂閱優惠方案 - https://aka.ms/vs2013tw

Comments (0)

Skip to main content