Windows Azure - Cloud Service的佈署方式
今天剛好有人問到,問我Cloud Service是怎樣佈署的,本來想說,把Blog網址丟過去交差了事( 疑!? 當然是開玩笑的XDD,我怎麼可能會做這種事情!! ),但後來發現,原來,我根本還沒寫過類似的文章 ( 所以也不能丟丟網址交差了事了…QQ ),所以這篇,教大家,幾個Cloud Service佈署的方式,另外,如果有去今年TechDays的朋友們,John哥那場也有介紹到這幾種方式喔!!
第一種 建立兩個Cloud Server
嗯,這也是小弟一開始使用的方式,假如正是網址為sky.com;簡單的說,就是準備兩個Cloud Service,A和B,當A是正式環境的時候,就把程式佈署到B,然後再利用自己架設的DNS,改變DNS,讓sky.com指向B的ip位置;所以Cloud Service B就變成正式的環境;同理,下次要佈署的時候,就佈署到A,然後再取改變DNS,讓sky.com指向A…嗯,當然小弟我就直接講結論了,基本上,除非不得已,不然真的不要用這種佈署方式…
第二種 直接覆蓋
其實在Cloud Service上,是可以直接覆蓋的,而且覆蓋期間,服務是不會中斷的( 官方文件是寫,如果有兩個Role以上,就不會中斷 ),簡單的說,就是只有一台Cloud Server A,而我們直接使用UpDate的方式,如下圖。
如果有多台Role,其實也不用擔心UPDATE會一口氣全部升級,我們可以從INSTANCES的地方看到UPDATE DOMAIN,簡單的說,Azure的升級,根據UPDATE DOMAIN的區塊進行升級,不過因為小弟這邊只用一個Web Role和Work Role,所以都是0,如果有兩個以上,就會發現有0,1,2等等不同的區段。
當然,這是一種升級方式,也是小弟後來使用的升級方式。
第三種方式 SWAP VIP
當然,小弟還是主推這種方式,因為這種方式真的是超級方便,不知道大家還記不記得,其實Cloud Service有分兩種Production和Staging ( 雖然兩個都要收錢… ),但是他既然這樣分,就自然有它的用意;所以這種佈署的方式,就是我們正式的Web頁面在Production上,而將我們準備要佈署新的頁面先佈署到Staging( 一個Cloud Service可以同時佈署不同的Production和Staging ),我們只要在DASHBOARD按下Staging,就可以切換到Staging,然後再按下下面的佈署,就可以佈署到Staging,而Production完全不會受到影響。
當Staging佈署完成後,進入下一步之前,我們稍微回顧一下,現在我們的Production是正式環境,Staging是測試環境;如果依據版本來看,Staging目前放的是比較新的版本 ( 因為準備要替換掉目前Prodction線上的頁面嘛 ),那要如何做呢?我們只要按下SWAP按鈕,接下來按下ok。
是的,神奇的事情就這樣發生了SWAP的作用,就是將Prodction和Staging互換,簡單的說,原本準備卸下來,在Prodction的頁面,會變成Staging,而準備換上去,在Staging的新網站,會變成Production,所以,按下去後,我們放在Staging的新網站,就自動地被切換成新網站了!!當然,過程中,也不會中斷,全部交由Azure完成。
當然,後面的機制都是由Azure完成,主要是透過Role前面的Load Blance來切換位置,當然,這和我們使用者一點關係都沒有。
後記
是的,不用說,當然要用第三種方式,但也別忘記,放在Staging的網站,也是要算錢的,所以如果被換下來的舊網站,真的不需要的話,也別忘記砍掉,而第一二種方式就完全沒用了嗎?其實也不一定,或許某些場合,還是需要=v=,不管如何,這三種是Cloud Service佈署的一些小技巧,也給大家參考看看。