2019第10屆 IThome 鐵人賽 – LAMP系統營運者 on Azure

Day09 - 常用服務 3.Web service-(1)

什麼是Azure web service

說是Web service,但是因為經過多次服務大改的洗禮,現在因該稱之為 Azure App Service

官方說明連結如下

App Service 說明頁面

這個服務其實可以分成四個服務來說

  1. Web Apps
  2. Web App for Containers
  3. Mobile Apps & Mobile Services
  4. API 應用程式

基本上來說就是 WEB 服務的組合服務

應用最常見的因該就是Web Apps

他早期就有支持PHP與Python

但是早期他底層只有Windows

直到去年才有Linux的

在這之前通常都是只有windows派系的人才會用這個服務

這個服務windows時代沒有說很穩定

但是勝在成本低,擴展超方便,支持FTP

看到這些優點後其實很多不需要高可用性的網站或服務

其實都投向Web Apps的懷抱之中

其實台灣很多行銷公司與APP開發商都默默的在使用來節省成本

Day10 - 常用服務 3.Web service-(2)

關鍵成本計算方式

  1. 計費單位是以App service Plan為單位而不是App service
  2. 我可以很多個網站共享同一個App service Plan的資源

在這張圖中可以看到

我開了一個方案 但是有兩個app service

雖然在這個方式來說其實對於linux工程師來說

都是很容易設定的

但是在AZURE我們可以將設定的工作減少

而且主機的擴展定不用靠自己來做

自動擴展是內建的功能

只要利用這些功能就可以簡單地提高資源利用率

其他優點

他的的優點如下

  1. 較低的平均成本
    1-1. 依規格收費並隨時調整
    1-2. 依流量/使用量收費
  2. 簡易的操作介面
  3. 原生多伺服器架構
  4. 可支援套裝軟體 wordpress , Joomla , phpbb 等
  5. 免費SSL安全憑證

既然有那麼多的優點那就要好好了解這個服務

Day11 - 常用服務 3.Web service-(3)

必須了解的前期知識 AppServiceAppService方案 的差異

在之前只稍微提到了兩個的差異

但是他們兩個各自代表著不同的東西但又息息相關的東西

AppService方案 代表 -> 硬體

AppService 代表 -> web服務(IIS or Apache)

這代表著AppService一定需要放置在一組的AppService方案中

但是一組的AppService方案上面可以放置很多的AppService

關於web服務的調整找AppService

關於硬體大小的調整找AppService方案

AppService可以隨時更換所屬的AppService方案

只需付出1分鐘不到的中斷段時間

AppService方案中

如果是數量上與同系列的機器大小調整不會發生中斷之狀況

只有AppService方案方案中系列的修改才會牽扯到中斷的狀態

雖然他是伺服器組

但是他可以有固定的IP組

他不可以附加到 虛擬網路之中並獲得內部IP

他不可以附加到 虛擬網路之中並獲得內部IP

他不可以附加到 虛擬網路之中並獲得內部IP

他不可以附加到 虛擬網路之中並獲得內部IP

他不可以附加到 虛擬網路之中並獲得內部IP

這句話太重要了 講幾百次都不為過

Day12 - 常用服務 3.Web service-(4)

##建置流程

01

點選建立服務並尋找Web APP

02

點選『WebAPP』開始建立Web 應用程式

03 依序輸入關鍵參數

03.01

應用程式名稱,這是這個Web應用程式的名字同時也是設定測試URL的地方

03.02

訂用帳號跟資源群組這個就依照訂閱方式選擇

03.03

OS,這個參數您可以看到有windows或者是linux,這就看您的作業習慣來操作

他的設定上面有很大的落差,如果您是linux的管理者因該不會誤選到windows

03.04

跳過發布中的Docker基本上我們都會選擇代碼

如果要講Docker篇幅會超級長

03.05

App Service 方案與地區

這邊一定要點近來選擇地區或者是您現有要使用的方案

不然開出來的環境基本上一定會是在美國

03.06

如果您在3.4那邊選擇發佈

則選單中可以選澤您主要要職型的程式類型


這邊有個重點

您在上方圖片看到的.net是linux用的,不是選擇用.net就是windows環境

Day13 - 常用服務 3.Web service-(5)

##建置流程

03.07

如果選擇好之後就可以直接建立

建立大約需要10多分鐘

建立完成之後畫面如下

可以發現我們有個 AppService 與 AppService方案

就如同前幾篇所說的這是硬體跟web server上的不同

再來就可以進入開始設定了

04

首先先來看AppService方案

一進到AppService方案您就看可以看到關鍵的監控指標

  1. CPU
  2. 記憶體
  3. 網路傳入
  4. 網路傳出

名字翻譯上跟我列出的不同,但是意思有到就好

有關硬體的關鍵數值都可以在這邊看到並調整硬體的規模

Day14 - 常用服務 3.Web service-(5)

##建置流程

05

在app server 方案中能調整的東西不多

主要是可以得知不同的資訊

APP

這功能很單純就是顯示有多少的app server附加在您的app server上

以功能上很簡單

但是在IT的角度上又是不可缺少的

檔案系統儲存體

在這邊很可以說很簡單的就只是看硬碟剩下多少空間

但是這邊暗藏了一個巧思

各家雲端在思考這類的產品時

似乎都沒考慮到open source的族群

通常決大部分的open source對於本機資料夾的共用問題

導致上到雲端服務時還是只能保留舊結構而不是讓他可以自動擴展

在app server中

不管是您擴展到幾台主機他的硬碟都是直接掛載同一個儲存空間

所以不需要額外考慮open source的相容性

直接丟上去就對了

Day15 - 常用服務 3.Web service-(7)

##建置流程

06

今天來談『app service 方案』的功能上最關鍵的相應增加以及相應放大

很多人會問說 這功能不是在『app service』上嗎?

這也沒錯

但是『app service』中看到的相應增加以及相應放大其實是連結到『app service 方案』

因為這兩個功能是硬體層

如果您的『app service 方案』上有10個『app service』

只要更改其中一個的相應增加所有的設定就會一並更改

所以直接從『app service 方案』上面改才是正途

相應增加 (App Service 方案)

這邊用來修改主機大小以及附加功能

這邊要注意的是類型別選越高越好

會非常貴

基本上使用服務就是夠用就好

如果有時候需要比較大的資源用相應放大就好

相應放大 (App Service 方案)

這邊只要是生產環境的類型就可以啟動自動擴擴展(S跟P系列)

啟動後如下圖

使用者就可以依使用量來設定自動調整

這邊通常都不是一次就可以抓準參數

基本上60-80%加主機30-40%減主機

這樣都不會錯

Day16 - 常用服務 3.Web service-(8)

##建置流程

07

『app service 方案』介紹其實很簡單

進入到『app service』上面的功能就比較多元了第一個也是最容易了解整體架構的地方是屬性

由上至下來說

重要的有

『輸出IP』與『其他連出 IP 位址』:這個兩個參數很重要因為你去跟其他服務連線都是使用這些IP,由於『app service』無法附加在VNET當中,所以如果要跟其他服務連線,他來的IP就是這幾個。這是不會變動的。

FTP系列參數:這邊除了密碼之外其他的參數跟你登入的位置與帳號都有,方便了解連入的方式。也可以得知log存放的位置。

其實對於傳統的開發者來說FTP是個非常重要的工具

這邊不可不說下微軟的好話

這個工具幫助了很多有學習障礙的傳統工程師們上雲啊

Day17 - 常用服務 3.Web service-(9)

##建置流程

08

除了屬性之外還有一個可以了解所有資訊的地方!

取得發行設定檔

下載之後打開會呈現這樣

這邊跟屬性其實很像

差別就只差在三點

  1. XML格式匯出
  2. FTP的密碼給出來了!
  3. 取得發行設定檔沒有給出ip

第一點說認真的一點都不重要,而且為何是給XML。不能有誠意給JSON嗎......

重要的是第二點這是創建出來之後預設的密碼

當然的可以改他

但是如跟是要快速建立出環境並開始使用

可以直接下載這份XML並取的密碼

登入完FTP後就可以直接上程式碼了~go

Day18 - 常用服務 3.Web service-(10)

##建置流程

09

應用程式設定

以PHP模板為例

以共同的設定來說明

一律開啟

這個功能來說看程式怎麼設計,如果有持續連線的需求就開啟

HTTP 版本

以現在來說建議都開啟2.0,最主要的原因是因為h2比起1.1可以節省很多的請求而不需要多次連接與TCP交握可以加快速度。當然優點很多如果有興趣可以自行google或者點這連結 google結果

FTP存取

這邊主要是有沒有要啟用FTPS的協議或者是如果用github部署的話就可以切換或者是關閉

堆疊

選擇程式碼版本

這邊重點就是依需求選擇

需要特別注意的是 .NET Core 是 建置在linux上的

如果要使windows做底層的話需要再建立時直接選擇windows

Day19 - 常用服務 3.Web service-(11)

##建置流程

10

自訂網域

自訂網域是個很重要的功能

因為沒人希望自己做出來的網站網址是AZURE而不是自己的

在這頁有幾個比較要注意的點

DNS指向建議在新增主機名稱之前就先指向這個IP位置,因為要有驗證指向新增主機名稱才會生效才會生效

如:下圖在我還沒指向之時

域名不限制一個,如果你想綁定幾十個也可以

如果有綁定憑證建議開啟僅限HTTPS,他可以協助您將所有http的網址轉換成https

Day20 - 常用服務 3.Web service-(12)

##建置流程

11

備份

這邊是內建的備份與還原功能

這邊要注意的是這個備份是需要自己去設定的

而不是在各個方案中有寫一天備份多少次啊

他就會自動的

所以如果建立完appservice一定要過來這邊設定一番

12

SSL設定

這邊有幾個比較重要的點是TLS不要降低最低就1.2因為在舊的版本要被瀏覽器棄用了

而且速度也不會比較快

另外appservice上傳SSL其實很麻煩

建議做法是我們傳統申請完SSL都會拿到

CSR + KEY + CRT + CA

但是AZURE不吃......

他只吃PFX

所以需要參考下列連結來轉換格式並上傳了

將現有的自訂 SSL 憑證繫結至 Azure Web Apps

重點就是這段

轉完上傳就可以使用了

Day21 - 常用服務 3.Web service-(13)

##建置流程

13

部署選項

這是在Web service最後一個常用且重要的功能

如果是傳統開發商可能使用FTP上傳已經足夠

但如果是系統自行維護那建議還是導入git做版本控管

部署選項就是讓您結合git的工具

選擇流程如下圖

點選您要的git類型並進行授權完

Web service就會開始自動化取得您的git庫並開始進行自動化部屬了