行動應用開發平台寶典 (三) 行動 DevOps

前言

微軟的 Visual Studio Team Services、Team Foundation Server、Xamarin Test Cloud 與 HockeyApp 提供開發者與 IT 人員一個全方位的環境,讓您的團隊可以管理專案並快速地建置、測試與佈署行動 app 和後端的服務。

由下圖我們可以更清楚地瞭解每一個流程,VSTS 可以用來建置 iOS、Android 與 Windows 裝置的 app,透過 Xamarin Test Cloud 來測試,用 HockeyApp 來佈署到行動裝置,並提供開發者 app 的回饋與即時分析。

devopsm-1

行動 app 的開發越來越複雜,有越來越多新的裝置,新版的作業系統,app 必須要能夠適應各種不同的裝置類型與螢幕解析度。為了要在這環境下生存,您的專案必須要在整個開發的生命週期自動化。不只是建置與開發,版本管理與測試用戶也是,還有收集回饋與遙測數據.總結來說 VSTS 擁有以下這些能力:

  • VSTS/TFS 程式碼管理(Git 或 TFVC),敏捷開發計畫(有支援 Agile、Scrum 與 CMMI),持續整合,發佈管理與其他 agile 團隊的工具。
  • VSTS/TFS 包含了第一方與第三方外掛的強大而且不斷增長的生態系統,您可以輕鬆地建構行動 app 持續整合,建置,測試,交付與發佈管理的流程。
  • VSTS/TFS 的構建可以直接串聯至 HockeyApp,而它會佈署 app 給您的測試人員。app 安裝到測試人員的裝置後,HockeyApp 會收集使用資料、錯誤報告與用戶回饋並附上螢幕截圖,而當下一個構建可以取得會發出提示。
  • HockeyApp 緊縮了 DevOps 的生命週期,透過測試、A/B 實驗、beta 回饋管理與錯誤資料分析。
  • Azure App Service 也支援了 DevOps 的後端,讓您可以配置與定義開發的 slot、暫存,而生產從 VSTS 整合並允許您這些 slot 的配置、部署與管理行動服務。

 

使用 VSTS/TFS 來管理團隊與專案

我們列出幾點主要的好處:

  • 彈性的版本控制 您可以選擇使用 Git 來進行分散式的版本控制或使用 TFVC 來進行集中式的版本控制。
  • 無上限的私人存放庫 不需要限制您開發的專案數量。VSTS/TFS 能提供團隊建立任何專案所需的存放庫。
  • 現代化的合作流程 分支隔離了開發專案的風險。Pull Request 提供工具,可以使協作更為容易,並可以檢閱要被合併回去有更動的程式碼。
  • 分支政策 要求所有程式碼的提交都要有程式碼檢閱,與透過閘道組件來消除建置中斷。
  • IDE 整合 使用您最喜愛的語言與開發工具。版本控制支援任何語言。
  • 構建整合 建立與管理構建過程,在雲端自動編譯與測試您的應用程式。根據您的需求或是作為自動化持續整合策略的一部份。
  • 待處理項目 快速地定義、設定優先權與分解您專案的工作。設定優先權幫助您讓最重要的工作擺在待處理項目的最上頭。
  • Scrum 規劃 衝刺(sprint)計畫使用以團隊為基礎的能力規劃、拖拉工作項目作業到您需要它們的地方,並透過燃盡圖來監控整個進程。
  • 任務版 用一個符合目的的任務版來執行您的衝刺,當工作要開始您可以進行觀看。
  • 自訂的 query 使用 query 您可以追蹤與組織您的資料來符合每個專案與狀況的需求。建立自訂 query 來查看過舊的工作、阻礙進程的障礙或需要關注的待處理項目。

 

使用 VSTS/TFS 、Xamarin Test Cloud 與 HockeyApp 來進行持續整合、開發與發佈管理

有了 VSTS 與 TFS 支援持續整合,開發人員可以建立並維護一個自動化建置與測試的伺服器在任何行動平台上面,而不需要自己撰寫幾百行的程式。VSTS 與 TFS 是完全跨平台並且適用輕量任務框架與一系列前建置的任務(如下圖)與整個全新的擴充 Marketplace。

devopsm-2

新的發佈管理功能在 VSTS/TFS 讓您可以建立持續交付,簡化發佈更新到 beta 與公開商店的過程,而提供您需要滿足您組織需求的控制權與可見性。

以下是主要的好處:

  • 持續整合 提供一個簡化的、以任務為主的體驗來建立 CI 伺服器給原生(Android、iOS 與 Windows)和跨平台(Xamarin、Cordova 與 React Native)的行動 app,還有 Microsoft 與非 Microsoft(js、Java)為主的伺服器技術。
  • 持續測試 構建展示整合的測試結果,您可以用 Grunt、Gulp、xctool 與 Gradle 等來執行,而允許當錯誤發生時自動建立工作項目。
  • 測試雲端 Xamarin Test Cloud 整合構建/測試的流程,或其他像是 Perfecto Mobile、Sauce Labs 與 Keynote 來執行您的整合與作為您持續整合一部份的 UI 自動化測試。
  • 構建代理程式 使用 VSTS(Windows)與 MacinCloud(OS X)提供的雲端建置機器,或配置一個自己的構建代理程式執行在您自己的設備上,與內部部署的 TFS 整合或雲端的 Team Services。
  • 持續交付 自動化您的行動 app 部署,不論您是要發佈到 HockeyApp(beta 版)、Google Play 或 App Store(產品)。使用 Azure 部署任務,Chef、Docker等持續部署您行動 app 的伺服器端。
  • 發佈管理 為您的 app 配置多個環境(QA、暫存、生產),每一個都可以有前質與後置的核准來幫助您確保更新會不小心被發佈。
  • Marketplace 最豐富的第一和第三方服務擴充的生態系統,有利於更進一步客製化您的 CI 與 CD 體驗。

使用 HockeyApp 來管理 beta 版的發佈程序

有了 HockeyApp 您可以直接交付給測試人員與內部或外部 beta 的客戶裝置。透過網頁或原生行動 app 中的集中式儀表板,測試人員可以取得 beta 版的 app 與所有其他的版本,如下圖所示。

devopsm-3

透過行動 app 的通知服務,您可以請求用戶更新到特定的版本,讓您的用戶能保持在最新的版本。

HockeyApp 提供了非常豐富的管理工具給用戶與裝置。用戶可以用現有的帳號(像是 Google、Facebook、Twitter、Microsoft 與 Azure Active Directory)來登入。您可以新增新的測試人員透過自動徵才與用 URL 連結或 email 來邀請。您也可以控制不同版本的 app 存取權限,根據不同的用戶或者是團隊。HockeyApp 還可以收集用戶裝置的資訊,來幫助管理 iOS 的 UDID 與瞭解裝置測試的涵蓋範圍。

 

使用 HockeyApp 來蒐集操作與行為的分析

了解實際的錯誤情況對於行動應用程式來說是非常重要的。HockeyApp 整合完全開源的 SDK 提供了非常可靠的自動錯誤收集,對於每一個應用程式的錯誤,而這個功能支援大多數主要的行動平台,包含 iOS、Android、Windows、Xamarin、Cordova、React Native 等等。

HockeyApp 的儀表板提供了錯誤的摘要與用戶的回饋,包含用戶回傳的訊息與自動螢幕截圖。它會歸納所有平台上相似的錯誤,如下圖所示。

devopsm-4

您可以享受強大的錯誤分析工具帶來的好處,與自動錯誤分群來辨識相同原因所導致的錯誤。您可以利用 HockeyApp Mac app 來檢視錯誤報告與直接導向到錯誤的那行程式碼在您的 IDE 中。HockeyApp 幫助您瞭解每個錯誤在裝置與 OS 的分佈情況,讓您可以進一步了解平台的問題。取得每個錯誤影響的總用戶來更快地分類。

HockeyApp 讓您可以更了解用戶的行為模式,透過自動化的工具與流程,並且可以追蹤任何用戶的動作與視覺化地分析數據,還可以直接透過回饋系統來與用戶聯繫,分享用戶的體驗與螢幕截圖。

 

使用 Azure Mobile Engagement 來洞悉行動顧客的想法與進行行銷活動

Azure Mobile Engagement 是一個用戶參與的 SaaS 平台,提供行動 app 使用情況的資料洞悉與即時的用戶區隔。有了 Azure Mobile Engagement,應用程式的發佈者與行銷人員可以更清楚地了解 app 的用戶並與他們互動。

 

可即時採取相應動作的分析來最大化投資報酬率

您可以透過結合大數據資料的收集與即時訊息的處理,根據使用者的行為和人口統計,進而觸發業務開發案例。Azure Mobile Engagement 幾乎能為您解決業務需求的所有疑難雜症。例如,建立自訂儀表板以測量關鍵效能指標(KPI)。快速尋找並修正使用者路徑中的使用量瓶頸。追蹤保留期與忠誠度,並依此判斷哪些行銷活動能創造最大的 ROI。在 Mobile Engagement 中使用 360° 的使用者路徑檢視,可以輕鬆且持續地增強使用者體驗並將其最佳化,進而驅使更高的保留率與更多的 app 使用量。

devopsm-5

 

加值型推播和通訊平台

Mobile Engagement 能夠完美搭配原生推播通知閘道運作,例如 Google GCM、Apple APNS 或 Microsoft WNS。而還可以進一步讓您有能力透過分析用戶行為來區隔用戶群,來建立目標客群的活動。

透過高效率與非親入性的方式來接觸他們的客戶有利於 app 的開發人員,如下圖所示。devopsm-6

 

開放式 API 和輕鬆整合

透過容易整合的開放式 API 與 SDK,您可以使用 CRM、CMS 或其他後端系統現有的資料。這讓您可以更深入地改善目標客群的選取及保護您的投資。

 

使用 VSTS、Azure 與 Application Insights 執行後端行動服務的 DevOps

開發人員與測試人員可以簡單快速地使用 Azure 中的範本來佈建開發與測試環境。下圖說明了整個流程。

devopsm-7

開發人員可以建立自動化測試在每個階段的部署,並可以定義必要的核准在部署之前與之後。

有兩個基礎的技術撐起整個 Azure 的架構:

  • Azure Resource Manager 開發人員可以使用儲存在原始檔控制的 ARM 範本,佈建虛擬機與任何 Azure PaaS 元件,並使用他們已經熟悉的工具來工作。
  • Azure Marketplace 範本 提供許多測試的 framework 與服務,讓開發人員可以做功能與效能的測試。顧客也可以利用 VSTS 的負載測試服務,從世界各地的不同的 Azure 資料中心,為您的 app 生成無限制的虛擬使用者。

 

使用 Visual Studio Application Insights 來分析後端系統的健康度

Application Insights 幫助您偵測與診斷效能上的問題與瞭解使用者實際上如何與您的 app 互動,其為開發者設計,讓您可以持續改進您服務與 app 的效能與可用性。

devopsm-8

您可以使用它來做到以下的事:

  • 分析使用的行為模式來更暸解您的使用者,並持續改善您的 app。
  • 計算瀏覽量、新進與回流的用戶、地理位置、平台等核心的使用數據。
  • 追蹤使用路徑來評估每個功能的成功。
  • 偵測與診斷效能問題,並在大多數用戶看到前修復它們。
  • 效能改變或發生錯誤時會收到警告。
  • 探索指標來診斷效能問題,像是回應時間、CPU 使用量與 dependency 追蹤。
  • web app 的可用性測試
  • 從例外狀況的報告與警示中洞悉更多有用的資訊。
  • 強大的診斷 log 搜尋(包含您最喜歡的 logging framework 的 log 追蹤)。

 


若對以上技術及產品有任何問題,很樂意為您服務! 請洽:台灣微軟開發工具服務窗口 – MSDNTW@microsoft.com / 02-3725-3888 #4922