讓應用程式雲端化 由 iaa s 邁向 paas 之路-global azure bootcamp 2015 臺北場

47
http://mvc.tw 由 IaaS 到 PaaS 之路 小朱 Azure MVP studyazure 雲端學堂

Upload: twmvc

Post on 18-Jul-2015

176 views

Category:

Technology


2 download

TRANSCRIPT

http://mvc.tw

由 IaaS 到 PaaS 之路小朱Azure MVPstudyazure 雲端學堂

http://mvc.tw

你當初是怎麼想到要上雲的?

http://mvc.tw

想像一下,你是一間賣票的公司的系統工程師...

http://mvc.tw

最近聽說有個東西叫做雲端的,看起來很炫,我想要把公司的系統上到雲端,給你

三天,做的到嗎?

http://mvc.tw

http://mvc.tw

那個...Azure不是有個叫做虛擬機器的玩意嗎?把公司的系統弄一弄丟上去就好啦。

http://mvc.tw

於是...你就這麼做了。

http://mvc.tw

光陰似箭,歲月如梭...

三個月過去了。

http://mvc.tw

公司的系統上雲之後,怎麼和放在自己家一樣,流量破100個就掛了?雲端不是很威的嗎?

最近公司有大案子進來,流量預計會破1,000,000,你給我想個辦法讓系統能

承載得了。

http://mvc.tw

雲端不只是 Hosting

http://mvc.tw

雲上有什麼?• 虛擬機器

• App Service (Web, API, Logic and Mobile)

• Cloud Service

• Mobile Service

• ...

• 儲存體 (Storage + SQL + NoSQL)

• 網路服務 (DNS, VPN, ...)

• 應用程式服務 (Service Bus, Access Control)

• 資料分析 (Stream Analytics, HDInsight)

• 機器學習 (Machine Learning)

http://mvc.tw

只用 Infrastructure 的理由• 快。

• 不用花時間改 code。

• 不用花精神思考架構。

• 老闆要求的。

• 沒人有這樣的能力。

• IT不用再學額外的東西。

• ...

http://mvc.tw

控制權迷思

http://mvc.tw

你願意花多少成本在獲取控制權?

http://mvc.tw

控制權 = 看得到的東西的成本 + 看不到的東西的成本 + 人的成本。

http://mvc.tw

控制權的迷思:大多數的情況下,不需要自己花時間管理機器,但要花更多時間讓應用程式能適應這樣的環境。

http://mvc.tw

控制權移轉的優點• 專注在本業 (軟體服務) 上。

• 不需要太多的 MIS/IT 人員。

• 能充份運用雲端的大量資源及雲端的各種服務。

• 由雲端自己處理運算能量的配置 (Scalability) 以及容錯 (SLA)。

• 成本大幅降低。• Infrastructure 需要較多 MIS/IT 人員

• Platform 不需要

http://mvc.tw

LOCAL VS. CLOUD

本地

• 享有完整的控制權。

• 愛怎麼做就怎麼做。

• 資料全存在本地。

• 成本相對較高。

• 需要額外人力。

雲端

• 有限的控制權。

• 依照標準操作。

• 資料放在人家那裡 (有安全認證)。

• 成本相對低廉。

• 不需額外人力。

• Dev/Ops 技能需要。

http://mvc.tw

Infrastructure vs. Platform

INFRASTRUCTURE

• 享有大部份的控制權。

• 愛怎麼做就怎麼做。

• 成本相對較高

• 軟體授權

• 備援機器需要的空間。

• 額外的組態 (ex: SQL AlwaysOn Service)

• 需要額外人力。

PLATFORM

• 少部份的控制權。

• 依照標準操作。

• 成本相對低廉

• 省下軟體授權

• 省下 HA 組態所需的成本

• 不需額外人力。

• 好工具就能解決一切。

http://mvc.tw

所以,將焦點放在應用程式會比放在虛擬機器重要。

http://mvc.tw

PLANNING

Step 1/3

http://mvc.tw

你的應用程式的特性?

http://mvc.tw

你的資料儲存的特性?

http://mvc.tw

http://mvc.tw

如何規劃應用程式的移轉?

http://mvc.tw

移轉的可用資源

http://mvc.tw

手動 Scale vs. 自動 Scale (Auto-scale)

http://mvc.tw

儲存的移轉

http://mvc.tw

分散式應用程式所需的 HA 能力:

• 失效域 (Fault Domain)• 更新域 (Update Domain)

http://mvc.tw

ARCHITECT

Step 2/3

http://mvc.tw

http://mvc.tw

改善集中的程度• 將狀態管理移到 Azure Storage, Redis Cache 或是

SQL Database。

• 減少使用 Session 的程度。

• 減少特定服務或機器的使用。

• 減少機器間的耦合度。

• 加入中間層傳遞訊息。

http://mvc.tw

強化分散的程度• 應用程式要能獨立運作。

• 以利切割。

• 應用程式各元件的職責不能太重 (例如 Web 應用程式應切出前端和後端,配置到不同的運算單元內)。• 有助於 Scalable 的配置。

• 元件之間以訊息服務 (messaging service) 來傳遞訊息。• 切斷機器間的耦合。

• 加入容錯的機制 (Error Transient)• 網路的瞬斷是會發生的。

• 應用程式不能因為小問題就中斷。

• 不要認為雲端上的虛擬機器永遠不會當機

http://mvc.tw

基本架構

鑒一性Idempotent

http://mvc.tw

多租戶架構

單一執行個體元件

單一可組態執行個體元件

多執行個體元件

http://mvc.tw

可用性架構

看門狗

更新遞移

http://mvc.tw

DEPLOY AND OPERATE

Step 3/3

http://mvc.tw

應用程式的移轉

http://mvc.tw

資料的移轉

http://mvc.tw

應用程式更新• 使用預備環境 (Staging Environment)

• 版本變化大時。

• 後端資料有大幅異動時。

• 需時短,但成本較高。

• 使用逐步更新• 版本變化小時。

• 後端資料不會異動或少量異動時。

• 需要較長時間。

• 服務更新應極力降低服務中斷的可能性。

http://mvc.tw

開發與維運永遠的戰爭…

http://mvc.tw

DEV/OPS 流程模型

http://mvc.tw

最後…有一點很重要。

http://mvc.tw

使用雲端一定有風險,請在使用前詳閱使用者須知。

http://mvc.tw

http://mvc.tw

http://skilltree.my

http://demoshop.tw http://www.hexdigits.com https://fb.me/studyazure

http://cacafly.com

主辦單位

合作伙伴

協辦單位

http://mvc.tw

• 本投影片所包含的商標與文字皆屬原著作者所有。• 本投影片使用的圖片皆從網路搜尋。• 本著作係採用姓名標示-非商業性-相同方式分享 3.0 台灣 (中華民國) 授權條款授權。

謝謝各位