//Build/ 2016 開發大會第二天主題演講:提高開發生產力的智慧雲端平台
//Build/ 2016 的主題演講分成兩天進行(參考第一天重點整理),第二天的部份則是著重在雲端平台以及生產力平台的發展,以及開發人員的機會,完整的影片可以由此觀看:
打造智慧的雲端平台: Microsoft Azure
第二天的一開始直接由微軟雲端和企業部門執行副總裁(EVP, Cloud + Enterprise Group)— Scott Guthrie 揭開序幕,介紹微軟如何以Microsoft Azure 打造智慧的雲端平台,藉此提供給軟體開發或是IT人員有更好、更彈性的平台來打造他們的應用。
為什麼要選擇 Azure?
首先說明微軟在Azure上的投資,第一張映入眼簾的圖就是時至今日,微軟已經在全世界投資了 30 座大型資料中心來提供服務,而且盡可能地滿足各個區域市場的需求,除了展示微軟持續在雲端運算上投資的決心之外,也是為客戶打造一個能直接發展全球事業的基礎建設。
同時也從三個角度 — 具有彈性的選擇 (Choice + Flexibility) 、企業服務與品質水準 (Enterprise Ready) 、提高生產力 (Productivity) — 來說明為什麼 Azure 是一個好的雲端平台。
具有彈性的選擇 (Choice + Flexibility)
在 Microsoft Azure 上,開發及 IT 人員不會被迫選擇特定的技術或工具來進行工作,您可以選擇您喜愛及熟悉的方式在 Azure 上打造應用程式,像是能夠用 GitHub 來整合持續部署、使用 Drupal, WordPress 等知名套件架站、使用 node.js 開發網站應用程式、使用 Hadoop 及其相關的工具來進行大數據運算、或是使用 docker 的容器技術來做系統架構等等,而且持續加入開發人員所喜歡的技術,打造一個選擇彈性的雲端平台。
除此之外,對於已經在企業內建立好的系統,Azure 也提供了與企業自建機房完全相同的環境,以方便 IT 人員不必多熟悉一套平台或工具,繼續運用過去投資學習的技術,便能彈性地選擇將系統或應用程式部署在企業內的機房、或是 Azure 的雲平台上。
企業服務與品質水準 (Enterprise Ready)
做為一個企業等級的服務,Azure 做了許多安全性、資料隱私保護等等的投資以及第三方認證(可在 Azure 官網看到細節),這些努力至今成功讓超過 85% 的財富世界 500 強(Fortune 500)的企業採用 Microsoft Azure 做為雲端平台來開發應用程式或架構系統,透過這樣的成績來驗證 Azure 已經是具有企業服務水準的平台,而開發人員也可以依據這樣的結果來選擇 Azure 作為提供企業解決方案的平台。
提高生產力 (Productivity)
在 Azure 上,您當然可以直接使用儲存體、虛擬機器這些基礎服務來開始打造應用程式,但除此之外,Azure 還提供更多高階的 PaaS 服務,讓開發人員可以更快速開始開發應用程式,例如,在 Data + Analytics 類的 PaaS 服務上,開發人員可以直接開始進行資料的運算及分析,而不必花時間去研究架設及維護 Hadoop 還是 Spark 這些工具與環境,省下來的時間能做更多的工作,這就是 Azure 希望提升開發人員生產力的目的。
而這些對 Azure 的投資,也讓使用 Azure 作為開發平台的開發人員以及軟體開發商持續增加,於是打上了一張目前幾項 Azure 的使用指標來說明 Azure 的市場狀況。
接下來就是針對幾項 Azure 如何提昇開發人員生產力的細節做說明。
提昇 Web + Mobile 的開發生產力
開發 Web 以及 Mobile 應用程式是很常見的開發應用,Azure 的應用程式服務便提供了高階的 PaaS 服務,讓開發人員不必花太多心思在伺服器系統或軟體功能上,就可以直接開發應用程式,並且具有彈性擴充的能力。
使用 Xamarin 開發跨平台應用程式
而在系統後端之外,微軟在幾個月前併購了 Xamarin 公司,Xamarin 公司最主要的核心技術,就是能讓開發人員使用 C#/.NET 來開發 Android 以及 iOS 的應用程式,而這樣的技術已經讓多家企業發行了它們的行動應用程式。
透過這樣的併購,對於原本就熟悉 C#/.NET 的開發人員來說,立即就能延伸自己原本就會的技術去開發 Android 以及 iOS 的應用程式;而對於正打算建立跨平台應用程式開發的團隊來說,也可以考慮選擇 C#/.NET 做為最經濟的開發技術(例如:單一技術可集中開發人力、平台間也可以共享程式碼或函式庫等)。
於是,接下來便實際展示如何在 Visual Studio 之中,透過 C# 以及 Xamarin 的技術開發 iOS/Android 的應用程式,而雖然建置 iOS 應用程式時需要 Mac 電腦,但在這次的展示中,也看到 Xamarin 提供了能將 Mac 電腦上 iOS 模擬器的畫面串流到 PC 上,讓開發人員能夠在同一個畫面中操作應用程式,並且用 Visual Studio 除錯。
使用 C#/.NET 做為應用程式的開發,就能直接利用所有 .NET 的工具鏈,像是在 Xamarin 的 API 說明文件中,結合了 Roslyn 的 .NET 編譯技術,讓開發人員在觀看說明文件時,可以直接將範例程式碼連結到 Android 模擬器,直接看到範例的效果,並且可以直接修改文件上的範例程式碼,模擬器也會同步改變結果。
當然,對於 C#/.NET 的開發人員或是對 Xamarin 技術有興趣的人來說,更重要的消息就是原本需要付費買授權的 Xamarin 現在完全免費提供給使用 Visual Studio 的開發人員,而同時也包含了免費版的 Community Edition!等於一個個人開發者,不需要付任何費用,就能使用 Visual Studio + Xamarin 來開發 Windows, Android 以及 iOS 的應用程式。
自動測試應用程式
接下來的展示一樣與 Xamarin 有關,在應用程式開發完成後,測試應用程式的行為也是很重要的工作,Xamarin test cloud 提供了錄製工具來錄下要測試的腳本,然後就能將腳本上傳到 Xamarin test cloud 的雲端服務上,由這個服務將應用程式安裝在多種手機上進行測試,這對於測試 Android 應用程式來說是一個非常方便的服務。
當然,這樣的服務也能夠與 Visual Studio Team Services 的服務進行整合,不論是 Issue Tracking 的看板或是自動建置、自動測試的腳本都有與 Xamarin test cloud 整合的現成範本,讓開發團隊可以更容易把這項服務加入原本的 DevOps 流程中。
物聯網(IoT)服務
在物聯網的系統開發上,這次主題演講邀請了 BMW 來做案例分享,介紹他們的車聯網服務,透過這些 BMW 的車輛所聯結的資料,經由 Azure 的 IoT 相關服務做資料的儲存與分析工具來做到像是自動駕駛、個人數位助理或是車輛內部的未來狀況。
Azure 提供了這些建立物聯網系統的基礎服務(如:事件中樞、串流分析、機器學習等等),而為了讓開發人員能更方便地整合各項服務,這次大會也宣佈新的服務 — Azure Functions 可以開始預覽使用,讓開發人員可以獨立使用 C#, node.js 撰寫一些程式邏輯並且整合其它 Azure 服務來執行,而不必另外架設伺服器來執行這個程式。
除了自己整合 Azure IoT 的基礎服務之外,Azure 也提供了像是 Azure IoT Suite 這樣的整合範本,讓開發人員不用一個一個去整合不同的 Azure IoT 基礎服務,Azure IoT Suite 將常見的物聯網架構做成範本,幫開發人員整合好這些服務,如果範本符合要開發的情境,那就可以透過修改範本來開發自己的解決方案。
而如果對於 BMW 這樣的車聯網架構感興趣的開發人員,也可以參考 My Driving 的案例分享介紹,瞭解可以怎麼整合這些 Azure IoT 服務來打造自己的物聯網解決方案。
微服務架構 (Microservices)
在使用雲端平台開發應用程式時,如何能讓系統自動延展、或是在不影響服務運作的情況下更新程式,一直以來都是不容易的問題,許多系統架構師會討論微服務(microservices)來做架構設計,而在這次大會中,Microsoft Azure 一次提出三種不同層級的服務以供開發人員設計微服務,分別是 VM Scale Sets、Container Services、以及 Service Fabric。
其中 VM Scale Sets 以及 Container Services 都已經有很多討論,在主題演講上更強調了 Azure Service Fabric 的用途,它比起前兩種層級更輕巧且管理也更簡化,接下來便以一個線上的 Web 遊戲程式來示範如何用 Azure Service Fabric 來開發並且即時更新部份的應用程式而不影響遊戲程式的運作。
資料及分析工具
另外,在雲端平台上開發應用程式的一個重點就是資料平台的選擇與應用,在主題演講中邀請了 AccuWeather 的 CTO 說明當資料量非常龐大時,選擇對的資料處理方式對應用程式有多重要,讓他們能夠幫助很多人即時地從 AccuWeather 收到緊急的天氣災害訊息而保護生命財產。
而就在這裡引出資料服務的重要後,開始提及在 Microsoft Azure 上的 NoSQL 服務 — Azure DocumentDB 一些新的改變,其中包括:
- 單一集合資料量從原本的 GB 等級可延展至 100 TB 左右
- 全球多個資料中心備援,更適合全球化的服務
- 將延展的選項可將 RU (處理速度)及容量分開延展,以彈性計價
- 支援 Apache MongoDB 的資料處理協定,可相容更多使用 MongoDB 的程式或工具
最後再以 Walking Dead(陰屍路)的遊戲開發如何使用 Azure DocumentDB 做為案例分享。
除了資料存取之外,在智慧的雲端平台最後說明的是在資料視覺化的工具的進展,原本在資料視覺化的工具上面已經有了 Microsoft Power BI,而且這套工具也能夠跨平台使用,而這次大會中更宣佈推出 Power BI Embedded 服務,讓你可以將在 Power BI 中製作精美的報表嵌入到其它的應用程式之中。
重塑生產力以及商業流程
在 Scott Guthrie 結束介紹打造智慧化的雲端平台後,接著上場的就是微軟應用和服務工程部的執行副總裁(EVP, Application and Service Group) — 陸奇(Qi Lu)來說明微軟的三大目標之一 — 重塑生產力以及商業流程(Reinvent Productivity and Business Process),而要達到這樣的目標,陸奇認為應該從四個方向來完成,分別是:
- 使用體驗行動化(Mobility of experiences)
- 協同生產力(Collaborative productivity)
- 智慧無所不在(Intelligence everywhere)
- 永遠信任(Trusted at all times)
而在微軟的產品與平台中,與生產力及商業流程最有關係的就是 Office 365,所以接下來的展示都是圍繞在 Office 平台上的開發,所以得先告訴開發人員這個潛在的市場有什麼樣的可能性:
Microsoft Graph API
首先示範的是如何使用 Microsoft Graph API 來存取用戶在 Office 365 上的資料,有了這樣的 API,開發人員可以創造不同的應用程式或服務,但能讓使用者將資料從 Office 365 中「移動」到另一個平台做事,這不就是使用體驗行動化的方向嗎?
這裡的展是 DocuSign 使用 Microsoft Graph API 在使用者授權後,存取放在 Office 365 上的文件,讓 DocuSign 的服務來簽署文件。
Office App
另一方面,開發人員也可以使用 Web 相關技術開發 Office 應用程式,Office 應用程式看起來像是 Office 軟體中的外掛程式,這個應用程式能與 Office 軟體互動,藉此增加更多的功能。而且開發出來的 Office 應用程式可以直接安裝在不同平台的 Office 軟體中,天生就有跨平台的優勢。而這些應用程式都能讓使用者在 Office 軟體中透過 Office 應用程式市集搜尋或下載安裝應用程式。
這裡就有許多有趣的示範操作,像是在 Outlook 中的行事曆開發會議的排程建議應用程式,它有自己的操作介面,但能直接存取 Outlook 中行事歷的資料內容來做視覺化的排程建議:
另一個展示則是示範在 Outlook 郵件程式中開發了一個星巴克的應用程式,使用者可以透過這個應用程式購買星巴克的點數卡然後產生郵件內容發送出去:
簡化與應用程式「對話」的門檻
第一天的主題演講中,Satya 提到了 Conversation as a Platform 的概念,希望應用程式平台能讓使用者能以更簡易對話的形式來完成工作,所以在 Office 365 中推出了新的 Office 365 Group Connectors 服務,以及將通訊用途的 Skype for Business 開放 Web 以及行動裝置的 SDK。
Office 365 Group Connectors
原本 Office 365 Group 的功能可以讓組織內 Office 365 的使用者能進行小組討論的平台,而這次新推出的 Office 365 Group Connector 則是像一個擴充服務,它可以將你存放在其它網路服務上的資料,透過這些 connector 拉進小組討論中,而不必把小組成員帶到其它的網路服務上才能檢視資料,大大地提高了協同生產力。
Skype for Business Web & Mobile SDK
而原本用作組織內通訊(文字及影音)平台的 Skype for Business,在這次大會中也宣佈開放 Web 以及 Mobile 的 SDK,如此一來您可以在自己開發的應用程式中嵌入 Skype for Business 的通話或視訊能力,在展示中示範了如何打造一個醫療相關的 Web 及手機應用程式,並且在其中嵌入了 Skype for Business 的通訊能力,讓醫生及病患能夠利用這項功能來直接連線對話。
最後,關於更多在 Office 平台上開發應用程式的資訊,就要參考 https://dev.office.com/ 網站了。
Microsoft 與開發社群的合作
在第二天主題演講的最後一部份,介紹的是微軟的 Developer Experiences and Evangelism (DX) 團隊,透過協助開發函式庫、參與社群活動、舉辦比賽等等方式,來與軟體開發商、開發人員、新創公司、學生開發者合作,有效地使用微軟的開發平台以及開發技術來打造產品與服務,讓世界上所有的開發人員都能清楚地瞭解如何使用微軟的開發技術,並且從中找到新的機會,或是做出更有趣的專案。