第一次參加Microsoft活動 -- DevDays Asia 2019
當初得知Microsoft將它在西雅圖的大會搬來台北再辦一次後,儘管對Microsoft滿陌生的,但想說免費報名,又可以看看最新趨勢增廣視野也不錯。
先總結一下心得:
先總結一下心得:
- 參加完後,果然覺得不愧是龍頭公司之一,扮演著產業的先驅角色。以前在工作上,發現滿多人對於開發工作的想像僅止於「將人工以程式取代」,簡單說,相較之下就顯得「較缺乏對生活、科技的想像力」。
- 在年會中,聽到docker、kubernetes的次數遠多於Microsoft;聽到Github、Linux次數遠多於Windows。而且每個講者demo時打開的都是「VS Code」。就連SQL Server 2019都強調能跑在Linux上,且直接支援Python和Java。
如果不是還有一些關於Microsoft 365新產品介紹,會覺得好像是各個龍頭公司共同舉辦的一場年會XD 由Microsoft拚命將它的產品都open source,且大量與其他語言或系統結合來看,充分顯示出Microsoft想走出去,擁抱open source社群的決心和趨勢。
- 發現container技術是我較陌生的,以前在公司頂多就是用到vm,這次增廣很多知識,儘管筆記沒能完整包含這3天很多知識,但就是盡量多聽多看多學。
- 最近太忙,總算整理一下,但不是很精緻XD
筆記摘要:
** container相關 **
- container為「一種應用交付的技術」。
- container is the next-gen tech to deliver apps. Transforming the way we deliver apps.
- 因cloud崛起,產生了container技術。
- 將app打包成container image,可以:
2. deploy到各個vm。透過container registry,產生container instance。其跑在container engine、每個vm和container orchestration之上。
- kubernetes:
2. deploy到不同平台(e.g. On-prem、Azure或Other clouds)。
- container帶來:1. 一個人可管上萬個application。2. 更快的innovation。
- lifecycles of container application:
Build → Ship (ship到不同的infrastructure)--> Run (e.g. 自恢復、自動部署、全球部署)
- Build:Develop(如WSL 2:在Windows上運行Linux) -- Test/Debug -- Deploy 皆有相對應工具。
- Ship:
1. 包括application + dependencies(自交付的格式)。
2. Develop → container image → HELM → 各個AKS(Azure Kubernetes Services),每個AKS下各對應「Dev」、「Test」、「UAT」和「Production」。
3. ACR(Azure Container Registry geo-replication):可做全球同步。
4. deploying & managing container apps with HELM。
- Run:IaaS ---> PaaS → Serverless
(對應:Customization:要自己營運 ←----------> Efficiency:不想看到底層。底層的實踐會透過container去實踐)
IaaS舉例:docker、Openshift、Kubernetes。
PaaS舉例:App Service、Service Fabric、Azure Kubernetes、Azure Kubernetes、Azure Red Hat Openshift。
Serverless舉例:Azure Functions、Azure Container Instance Management。
- Azure Container Ecosystem中,重點在於:1. container application是如何做出的?高不高效?2. run起來後,是否安全可靠?
- 監控:Azure Monitor for containers。
- The future of Container is Serverless。
- KEDA:使Kubernetes變成event-driven。
- Azure DevOps
- 如果對container技術有興趣,建議讀某微軟人寫的書「Desiging Distributed Systems」作者是Brendan Burns。
- The Azure Kubernetes Workshop(可動手做的很多labs):https://aksworkshop.io
- Azure Container support GPU on Linux only(Preview)
- container image放在1. docker => Build較慢、2. Azure什麼Registry的 => Build較快。
- AKS - 多集區:改善以前同一組cluster只能有同樣的node。e.g. 如果有GPU,則每個node要有GPU。
- ACS(Azure Container Services)已停用 → ACS Engine:回到用vm大量去build → AKS(Azure Kubernetes Services)。
- Azure Dev Spaces:最小本機設定。有example在gitbub可玩。
- Microservices in Kubernetes:1. 誰和誰相依? 2. 只想做該feature的測試環境,不想要全build。=> 解法:共用的AKS。e.g. 前端修改:透過copy前端部分做到協作。後端修改:透過ASDS、routes for 某人,達到協作。
** SQL相關 **
- SQL Platform Modernization:
Windows → Linux → docker (container) → Kubernates (Google)
- The evolution of SQL Server:Performance & Productivity:SQL Server 2008~ → Self-service BI:SQL Server 2008 R2~ → Cloud-ready:SQL Server 2012~ → Mission-critical(指analyze very fast) & Cloud performance:SQL Server 2014~ → Docker & Linux:SQL Server 2016、2017~ → Intelligence over all data (big data):SQL Server 2019~。
- SQL 2019:
2. Intelligent Query Processing:ML、statistics、similar query => query越多次,ML訓練越多,訓練結果錯誤率越降低、正確率越高。
3. In-place encryption (without moving the data outside the db)。
4. Classification:可以tag columns stored in SQL Server。pre-defined或GDPR。
- Azure Data Studio(前身:SQL Operations Studio)可跨平台(Windows、Linux、MacOS)。
- SQL Server Management Studio 18.0:Extend T-SQL with Python & Java。
- platform abstraction layer -- SQL Server on Linux
- use Availability groups on Kubernetes to implement a full AG system integrated into SQL Server.
- accelerated data recovery (planned)
- objects outside db can automatically failover (planned)
** data science和AI相關 **
- 「自動化」和「智慧化」最大差別:決策。
- Taiwan 70%人口是製造業。
- AI領先者特色:
- invest上升。
- 一個專業角色組成的中央團隊。
- 有AI工具。
- 由developer、專家、資料工程師監控AI應用程式。
- 還在進行的企業data治理實踐。
- AI發展障礙:
- 缺乏技能、資源和持續學習plan。
- 尋找適合的技術合作夥伴。
- 缺乏先進的分析(足夠的基礎架構和工具來develop可操作的見解)。
- 缺乏AI的文化特徵:
- 賦能。
- 創新。大多數老闆不喜歡員工創新。
- 超出範圍。
- 協同合作。
- 許多老闆認為AI可替換掉員工。但許多員工認為AI不會替換掉員工。
- AI未來在台灣需要的技能:軟實力 + 技術嚴重不足。
- 在AI上,要避免採購案式的引進 => 應是有戰略和長期思考的。
- 未來3年,AI在台灣的技能供需:
- 供 > 求:
- 基本資料輸入和處理。
- 大數據素養和溝通。
- 一般設備操作、機械技能。
- 求 > 供:
- 企業家精神和高執行力。
- 數位技能。
- 資訊能力和程式設計。
- What’s Knowledge Mining?
=> unlock valuable info lying latent in all your content.
(at a high level:ingest → enrich → explore)
- azure-search-knowledge-mining (github)
- The JFK Files (github)
- Microsoft Graph (github):找contoso airlines(學如何使用Microsoft graph platform)。
- AI Space:
- Y軸:Cloud → Heavy edge → Light edge
- Z軸:CPU → GPU → FPGA(specialized hardware accelerated Deep Learning) → ASIC
- Building blocks for a Data Science Project:
- build & train models everywhere:
- DevOps loop for data science:
首先,prepare、prepare data。
再來:
jupyter、VS Code、Build Model (your favorite IDE) → Train & Test Model → Register & manage Model → Build Image → Deploy Service Monitor Model → 接到IDE,如此loop下去。
- Model Management in Azure Machine Learning:
- get started today -- Azure Machine Learning Service Documentation:https://docs.microsoft.com/en-us/azure/machine-learning/Service/
- MLOps = ML (Experiment) + DEV (Develop) + Operate (Operate)
- MLOps with Azure Machine Learning (Data scientist & Software Engineer side by side),用一個pipeline去管理獨立的repository。
- 做的model可封裝成docker container。
- 標記是最花時間的。
- SQL 2019全部container化,可地端做ML。
- Deploying models at scale:
- silicon alternatives for DNNs:
CPUs -- GPUs -- Neural Processing Units:含「Soft NPU (FPGA)」和「Hard NPU」-- ASICs
(光譜:Flexibility ←---------------> Efficiency)
- Soft NPU:e.g. BrainWave, Baidu SDA, Daephi Tech…
- Hard NPU:e.g. Cerebras, Google TPU…
- 當data是video streaming:適用FPGA。
當data是a lot of data one time:適用GPU。 - GPU:
(但如果10個中只有1個要repair,則9個會idle。這也是為何有時用FPGA比GPU好的原因)
- The power of Deep Learning on FPGA: performance, flexibility, scale.
- FPGAs are ideal for expensive computations on streaming data.
- What is FPGA technology?=> 1. FPGA: Field Programmable Gate Array.2. Reprogrammable silicon.3. Specialized compute engines.4. Flashed via software in < 2 seconds.5. Updatable as often as needed.
- CPUs: General purpose machine learning; D, F, L, M, H Series.
GPUs: Deep Learning; N Series.
FPGAs: Specialized hardware accelerated deep learning; Project Brainwave.
** IoT相關 **
- IoT is enabling the digital transformation(數位轉型)of every business on the planet.
- Azure IoT Edge deployments to Kubernetes:
現在新增:Kubernetes Cluster → Azure IoT Hub
- 微軟在IoT可做到隨插即用(Plug and Play架構)。
- waterfull → 微服務
- Azure Sphere是一個晶片(為了security)。
- Project Sopris (MCU也能安全):Pluton的hardware => MS-developed “Pluton” security subsystem。 => 發表研究:SEVEN PROPERTIES https://aka.ms/7properties
Azure Sphere is Open:
- Open to any MCU manufacturer.
- Open to any cloud.
- Open to any innovation.
- Azure Sphere is Linux-based OS.
- Customer Story -- Starbucks:Azure Sphere放入咖啡機中 =>
- for 機器維運。
- receipe更新,為商業機密,以往需花3個月全球更新。使用cloud後,丟一下receipe便完成全球更新。
- 咖啡豆consume狀況。
** 前端相關 **
- C#加入前端:
- 使用W3C的webassembly標準,執行.NET。載入.dll。
- 不是轉換器,是原生的。(不像JS是一步一步編譯,是預先編譯好的)
- 不像ActiveX插件技術,使用「標準」。
- 和JS引擎用的相同。
- 不需JS的runtime編譯,直接執行byte code。
- 適用於企業內部開發使用。
- 技術名稱:BLAZOR(Browser + Razor)。
- SPA框架,像Vue.js、Angular和React.js。
- 靜態網站的託管服務可用,e.g. Github Page。
- server和client可共用型別。可用NuGet。
- JS和BLAZOR的機制比較:
- JS:JS → Parser → Compiler → JIT Interpreter → Native Web APIs (DOM, file, storage...)。
- Blazor:Blazor(透過mono.wasm轉譯.dll) → JIT Interpreter → Native Web APIs (DOM, file, storage...)。
- 目前Blazor缺點:
- client side dll的下載過於龐大。
- server side會有連線數問題。(e.g. 斷線的話,DOM便不會變)
- 對其他語言的developer吸引力不足。
- IE11不支援。
- gRPC:
- 不限語言的高效能遠端程序呼叫的RPC架構。取代HTTP。
- 先定義gRPC規範。
- 各大語言有實作。
- 用byte方式在傳,不用JSON傳。Stream格式回傳。
- 雙向。前、後皆是Stream。
** 其他相關 **
- Microsoft 365:分為「Intelligent edge」和「Intelligent cloud」。
- security、privacy要在everywhere => 包成Microsoft 365。
留言
張貼留言