星期五, 7月 08, 2016

發佈 Node.js Web Application 到 Azure Web App

今天跟大家分享一下,如何把自己做好的 Node.js Application 丟到 Azure Web App 上,把程式丟到 Azure 有幾種方法...

第一種:


使用 FTP 的方式,把程式往上丟,我想這應該是最常使用的方式,應該沒有啥太大的問題,不過還是有幾點要注意的部份
  1. 因為 Azure 是用 iisnode 去跑你的 Application 所以你還需要 web.config 這檔案來設定你的程式,web.config 您可以在 這邊 來參考下載
  2. 使用 Node.js 開發,通常會用 npm 來做套件管理,所以必須要把 node_modules 整個丟上去才會跑,不過有些特殊的套件,是需要本機編譯安裝,我猜這些套件應該是會有問題的,這種 Bibby 本人就沒有親自嘗試過了
  3. 放置的路徑要對,下列的相關路徑可以參考一下

第二種:


使用 Visual Studio Team Service(VSTS) 來發佈您的 application,您可以參考此 Build and Deploy your Node.js Application to an Azure web app,跟著文章教學做 Bibby 本人試過沒有問題,值得注意的部份是
  1. VSTS 每個月有 240 分鐘可以讓你免費佈署,所以發佈 application 的長短會影響一個月可以佈署幾次,一般來說如果是商業用的 application 每次佈署得時間,幾乎都要 5 ~ 10 分鐘以上(套件安裝、跑測試等),所以自己要算好免費可發佈的次數或是選擇付費也行
  2. 另外 VSTS 本身就是一個很完整的 Application Lifecycle Management(ALM),如果公司想導入 Continuous Integration(CI)或是 ALM,用這個方法就再好不過了,導入了此開發方式,整個開發週期以及發佈版本可以有效追蹤及稽核,對於企業的程式管理開發必然是首首選

第三種:


使用 git 版本控管的方式,丟到 azure 來佈署,這方式對於個人開發應該是最方便的方式,詳細方式可以參考此文章 Get started with Node.js web apps in Azure App Service,Bibby 本人在開發的時候,就是用這種方式來佈署,不過因為每次發佈都要下這些指令,個人不是指令控,每次都要做一樣的事情覺得麻煩,所以就把所有指定整理起來,變成一個指令就佈署了,這裡也分享給大家
  • 第一次發佈
    cd ./dist && azure site create --git {yourwebsitename} &&  git add . && git commit -m "init" && git push -v --tags azure refs/heads/master:refs/heads/master  && azure site browse
  • 之後的發佈
    cd ./dist && azure site create --git {yourwebsitename} && git add . && git commit -m "init" && git fetch azure && git merge -X ours azure/master -m "merge" && git push -v --tags azure refs/heads/master:refs/heads/master && azure site browse 
目前用 Gulp 跟這些指令結合,所以當開發完成後,就簡單用 gulp deploy 就佈署了,這部份如果有問題,可以發信給我再討論 ^___^|||..

最後


這三種方式,選擇哪一種方式就看各自的需求了,目前把 Node.js 程式發佈到 Azure 是很不錯的選擇,Azure 提供了很好的環境來方便偵錯及調適,相關教學部分也可以參考此 Node.js 開發人員中心。最後最後其實開發一個程式到最後佈署完成,真的需要很多的技能,常常因為要解決一個主要的問題,在解決問題的路途中,又要解決另外其他的小問題,所以所以當一個「攻城獅」真的很不容易,Bibby 也希望這點分享,可以讓大家可以輕鬆點,大家加油!!!