天天看點

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

【摘要】 本次實踐讓我體驗到了全程在雲上建立彈性雲伺服器ECS,配置雲伺服器環境,在DevCloud平台上一站式進行項目管理、代碼托管、代碼檢查、流水線、編譯、建構、部署、測試、釋出的流程。基本做到了面向開發者提供雲服務,即開即用,随時随地

本文基于DevCloud進行黑白棋實時對戰遊戲開發,沙箱實驗連結:​​https://lab.huaweicloud.com/testdetail_411?ticket=ST-268164-dDRCJMPvZkgrnaXgZyUvLCn7-sso​​

本次實驗實踐的目标與基本要求:

  1. 學會使用軟體開發服務DevCloud實作代碼倉庫管理
  2. 學會使用軟體開發服務DevCloud實作編譯、建構、部署

本文會分為:

1.建立彈性雲伺服器ECS

2.雲伺服器環境配置

3.建立項目及建構部署

1.建立彈性雲伺服器ECS

在沙箱實驗桌面,點選chrome浏覽器,首次會自動登入并進入華為雲控制台頁面。

1.1 建立安全組、VPC

在華為雲控制台頁面左側,點選“服務清單”->“網絡”->“虛拟私有雲VPC”進入網絡控制台:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

在網絡控制台左側菜單欄中點選“通路控制”->“安全組”->“建立安全組”,填寫安全組名稱與模闆資訊:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

建立完成如下圖展示:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

點選建立的自定義安全組名稱,進入該安全組的設定頁面,點選“入方向規則”,點選下面的“添加規則”,添加一條規則:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

設定安全組規則完成,傳回安全組清單,在網絡控制台左側菜單欄中點選“虛拟私有雲”-“我的VPC”,點選“建立虛拟私有雲”進入建立界面(具體參數如目前區域、網段等,實驗裡都有提供具體資訊):

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

建立完之後的頁面:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

1.2 建立彈性雲伺服器ECS

在雲桌面浏覽器頁面中的左側菜單欄,點選“服務清單”->“計算”->“彈性雲伺服器ECS”進入網雲伺服器控制台:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

點選“購買彈性雲伺服器”并設定雲伺服器參數(計費模式、CPU架構、規格、鏡像、系統盤、網絡配置、使用者名密碼等進階配置):

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

勾選同意《華為鏡像免責聲明》,點選“立即購買”,就開始建立ECS了:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

建立的ECS顯示正在運作中了:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

2.雲伺服器環境配置

2.1.安裝IIS服務

找到1.2步驟建立的彈性雲伺服器ECS“ecs-deploy”,單擊右側的“遠端登入”,在新彈出的登入頁面,點選“立即登入”:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

等待開機後,單擊頁面上方“Ctrl+Alt+Del”進行解鎖:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

輸入建立彈性雲伺服器ECS時設定的密碼(預設密碼是7fbAt97#vg)進行登入;進入桌面之後,單擊開始欄,單擊“伺服器管理器”(這裡有個坑,需要我們點選頁面上方的進入全屏模式,否則頁面上顯示不出開始欄)

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

在“伺服器管理器”,單擊“添加角色和功能”:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

在左側導航欄,選擇“安裝類型”,單擊“基于角色或基于功能的安裝”,并單擊“下一步”;單擊“從伺服器池中選擇伺服器”,并在“伺服器池”中選中本伺服器的計算機名,單擊“下一步”;在角色清單内找到“Web伺服器(IIS)”并勾選,在彈窗“添加角色和功能向導”中,單擊“添加功能”,單擊“下一步”;勾選“.Net Framework 3.5功能”,單擊“下一步”;單擊“下一步”到最後一頁,單擊“安裝”:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

等待IIS服務在彈性雲伺服器ECS上安裝成功。

2.2 安裝Node.js

在雲伺服器中打開浏覽器,在位址欄手動輸入Node.js下載下傳網址:http://nodejs.cn/download/,進入Node.js下載下傳網站,單擊Windows安裝包“64位”,單擊“運作”,運作Windows安裝包:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

進入Node.js安裝向導,安裝nodejs,檢視安裝成功,單擊“Finish”:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

2.3 安裝Express、Socket.io、Forever

簡單介紹下

Express是目前最流行的基于Node.js的Web開發架構。

Socket.io是一個面向實時web應用的JavaScript庫。

Forever是一個簡單的指令式的node.js的守護程序。

言歸正傳,我們繼續安裝步驟。

單擊開始欄,單擊“Windows PowerShell”:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

在PowerShell中依次運作如下三條指令(等待指令執行成功進行下一條執行):

npm install -g express
npm install -g socket.io
npm install forever -g      

執行成功如下圖所示:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

2.4.配置主機的授信

在雲伺服器中打開浏覽器,在位址欄輸入以下網址:​​https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/reversi-play-online/windows2016.zip點選“儲存”:​​

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

進入windows2016.zip所在目錄,滑鼠選中檔案,點選右鍵選擇“全部解壓縮…”解壓“windows2016.zip”,得到“windows2016.ps1”腳本,如下圖所示:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

在PowerShel中輸入​

​cd .\Downloads\windows2016\​

​,切換到“windows2016.ps1”腳本所在目錄,指令行繼續輸入​

​set-executionpolicy unrestricted​

​,回車執行後,再輸入“Y”執行:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

指令行繼續輸入​

​.\windows2016.ps1​

​,回車執行後再輸入“R”執行;指令行輸入​

​winrm e winrm/config/listener​

​,若出現HTTPS表示監聽成功,即windows2016部署環境自動化配置成功:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

2.5 關閉彈性雲伺服器ECS防火牆

點選開始按鈕,直接輸入搜尋“防火牆”打開防火牆設定:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

關閉防火牆,如下圖所示:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

2.6.開放伺服器端口

打開windows開始标志,點選“Windos管理工具”, 輕按兩下“進階安全Windows防火牆”如下圖所示:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

打開後,點選“入站規則”->“建立規則”如下圖所示:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

選擇“端口”點選“下一步”,輸入端口“12001”點選“下一步”,點選“下一步”->“下一步”,參數預設;輸入名稱“heibaiqiWeb”點選“完成”如下圖所示:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】
基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

3.建立項目及建構部署

3.1.建立項目

簡單介紹

什麼是DevCloud?華為雲軟體開發服務(DevCloud)是一站式雲端DevOps平台,面向開發者提供的雲服務,即開即用,随時随地在雲端進行項目管理、代碼托管、代碼檢查、流水線、編譯、建構、部署、測試、釋出等,讓開發者快速而又輕松地開啟雲端開發之旅。

實驗桌面中的浏覽器切換回華為雲頁面,滑鼠移動到雲桌面浏覽器頁面中左側菜單欄,點選“服務清單”->“軟體開發平台DevCloud”;進入平台頁面後,選擇“項目管理”進入項目清單頁面,點選“立即使用”,進入項目建立頁面,如下圖所示:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

點選“建立項目”,選擇“看闆”,在建立項目彈窗中,設定項目名稱為“Cocos_ReversiOnline”,輸入項目資訊,點選“确定”,如下圖所示:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

建立完成即跳轉如下圖頁面:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

3.2 下載下傳源碼及建立代碼倉庫

切換到實驗桌面,打開“Xfce 終端”,複制以下代碼到終端回車執行,下載下傳用戶端和服務端的源碼檔案:

​wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/reversi-play-online/ReversiOnline_Client.zip​

​wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/reversi-play-online/ReversiOnline_Server.zip​

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

下載下傳完之後,輸入指令​

​ls​

​檢視下載下傳檔案:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

執行以下代碼配置使用者名和郵箱:

git config --global user.name "您的使用者名"
git config --global user.email "您的郵箱"      

執行以下代碼​

​ssh-keygen -t rsa -C "您的郵箱"​

​,生成ssh密鑰(一直回車至下圖出現),執行成功如下圖所示:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

執行以下代碼​

​cat .ssh/id_rsa.pub​

​,檢視并【複制】密鑰:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

切換至浏覽器,在3.1步驟建立好的項目中,單擊上方菜單“代碼”->“代碼托管”進入代碼托管界面,點選“設定我的SSH密鑰”,如下圖所示:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

進入密鑰設定頁面,點選“添加SSH密鑰”填寫複制的密鑰。

① 标題:輸入秘鑰後自動生成

② 密鑰:粘貼已複制密鑰

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

傳回上一級“代碼托管”管理頁面,點選“普通建立”,建立倉庫:

① 代碼倉庫名稱:ReversiOnline_Client

② 歸屬項目:3.1步驟建立的項目名稱,如:Cocos_ReversiOnline

參照上述步驟,建立倉庫名稱為【“ReversiOnline_Server”】代碼倉庫。

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

3.3.推送代碼到代碼倉庫

點選倉庫名稱【“ReversiOnline_Client”】,進入代碼倉,點選“克隆/下載下傳” ,檢視SSH克隆位址:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

切換到“Xfec 終端”,執行以下代碼​

​git clone gitaddr​

​下載下傳。【複制】SSH克隆位址,将下方代碼中的“gitaddr”替換為複制的克隆位址,執行時選擇接收密鑰輸入“yes”:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

【參照上述步驟】,點選名為【“ReversiOnline_Server”】代碼倉,克隆下載下傳代碼倉庫。第二次執行不需要接收密鑰:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

執行以下代碼設定Git:​

​git config --global user.email "[email protected]" && git config --global user.name "devcloud"​

執行以下指令,解壓源碼“ReversiOnline_Client. Zip”到 “ReversiOnline_Client” 倉庫。解壓過程中可能遇到同名檔案覆寫提示,根據提示輸入“A”,回車全部覆寫即可:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

執行以下指令​

​unzip ReversiOnline_Server.zip -d ReversiOnline_Server/​

​,解壓源碼“ReversiOnline_Server. zip”到 “ReversiOnline_Server” 倉庫:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

執行以下指令​

​cd ReversiOnline_Client/​

​,切換到ReversiOnline_Client代碼倉庫;執行以下指令​

​git add .​

​添加源碼到倉庫;執行以下指令​

​git commit -m "init"​

​送出源碼;執行以下指令​

​git push​

​推送源碼到遠端倉庫。執行成功如下圖所示:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

執行以下指令​

​cd ../ReversiOnline_Server/​

​切換到“ReversiOnline_Server”倉庫;執行以下指令​

​git add .​

​添加源碼到倉庫;執行以下指令​

​git commit -m "init"​

​添加源碼到倉庫;執行以下指令​

​git push​

​推送源碼到遠端倉庫。執行成功如下圖所示:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

3.4 修改源碼配置檔案

源碼上傳完成,切換至浏覽器,點選 “ReversiOnline_Client”倉庫,進入倉庫對“ServerIP”配置進行修改。

3.5.建構應用

完成伺服器端和用戶端源碼的編譯建構,生成可用于應用部署的建構包。

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

用戶端:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

服務端:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

3.6.執行建構任務

單擊“建構&釋出”- > “編譯建構”重新進入建構編譯清單。依次單擊執行“開始建構”,進行代碼包的編譯建構,等待編譯建構成功:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

之後點選“釋出”,檢視到兩個建構包,說明建構包釋出成功。

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】
基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

3.7 擷取并上傳playbook

playbook可以幫助我們把項目部署到windows主機上,通常的playbook都是啟動IIS服務,用來運作web網站。

切換至“Xfce 終端”,執行以下指令​

​cd /home/user/Desktop && wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/reversi-play-online/nodejs_playbook.zip​

​,下載下傳nodejs_playbook.

執行以下指令​

​wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/reversi-play-online/iis_playbook.zip​

​下載下傳iis_playbook.

切換至浏覽器,在釋出頁面,點選“上傳”,選中剛剛下載下傳的檔案,點選“open”進行上傳。

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

上傳完成後最終釋出頁面如下圖所示:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

3.8.配置主機組

點選“更多”->“設定”->“通用設定”進入頁面後,點選左側欄“主機組管理”。進入主機組管理頁面後,點選“建立主機組”,點選“添加主機”:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

3.9.伺服器端部署

點選“建構&釋出”->”部署”進入部署頁面,單擊“建立任務”。

部署過程可能需要較長時間,點選“部署”回到任務清單,可檢視到任務的部署狀态,如下圖所示:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

3.10.用戶端部署

仿照3.9步驟,建立一個用戶端的部署任務“ReversiOnline_Web_Deploy”,并依次添加四個部署步驟。配置“選擇部署來源”。

3.11.結果驗證

在實驗桌面的浏覽器裡新打開一個浏覽器視窗,在位址欄輸入“EIP:12001”,如:49.4.26.181:12001,通路成功如下圖所示。注 - EIP替換為1.2步驟彈性雲伺服器ECS的彈性IP:

基于DevCloud進行黑白棋實時對戰遊戲開發實踐【華為雲至簡緻遠】

實踐總結

  1. 彈性雲伺服器ECS時設定的密碼(預設密碼是7fbAt97#vg)盡量設定簡單點,預設密碼還是有點複雜;在登入雲伺服器環境的時候密碼不能複制,需要自己手動輸入
  2. 雲伺服器環境右邊的運作概覽這一欄不能隐藏掉,說實在有點影響使用體驗,很占位置:
  3. 進入雲伺服器環境之後,估計因為頁面大小緣故,是看不到開始菜單欄的;需要我們點選進入全屏模式之後,才可以看到左下角的開始菜單欄(這裡其實如果有個提示,也會讓使用者覺得更友好點)
  4. 雲伺服器環境還是不流暢的,滑鼠能明顯感覺到遲滞;在“伺服器管理器”單擊“添加角色和功能”這個步驟就會導緻系統卡住:
  5. 整個實驗給的時間還是偏短了點,要是可以再多個半小時到1小時,就可以體驗的更舒服了