1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        手游項(xiàng)目運(yùn)維遷移規(guī)劃實(shí)踐

        共 3422字,需瀏覽 7分鐘

         ·

        2021-01-06 15:40

        一.項(xiàng)目介紹

        公司有一個(gè)項(xiàng)目,’賽馬’項(xiàng)目,在手機(jī)上會(huì)有個(gè) ’賽馬APP’。因?yàn)闃I(yè)務(wù)原因,并發(fā)從最初幾千,將擴(kuò)展到上萬,需要將項(xiàng)目擴(kuò)展,均為阿里云的ESC和其他產(chǎn)品。

        file

        APP下載后有3個(gè)頁面 1.查詢’賽馬比分’信息頁面 2.投注’賽馬’頁面 3.注冊/登錄頁面

        玩家可以在投注頁面投注’賽馬’,成績在查詢信息頁面查詢。

        服務(wù)器情況:玩家app點(diǎn)擊咨詢頁面,將發(fā)送請求到 zixun.saima.cn,上面解析到 1.1.1.1 這臺(tái)公網(wǎng)機(jī)器的nginx負(fù)載均衡上。

        nginx將請求給后端的java服務(wù)(zixun-saima:9091)端口。zixun-saima這個(gè)java程序則從 1.1.1.1 這臺(tái)機(jī)器安裝的mysql中查詢數(shù)據(jù)。

        投注和注冊/登錄頁面均為如此,分別是 touzhu-saima:9092、zhuce-saima:9093

        所以 1.1.1.1 上面部署了 jenkins/gogs/nginx/mysql/jdk/maven。gogs存放代碼,jenkins用于構(gòu)建后在本地服務(wù)器發(fā)布。

        二.遷移任務(wù)

        擴(kuò)展需求

        將這一臺(tái)機(jī)器的服務(wù),需要擴(kuò)展遷移成4臺(tái)機(jī)器+阿里云RDS。

        其中1.1.1.1中jenkins和gogs不動(dòng) 新購買一臺(tái)ESC 1.1.1.2用于搭建zabbix 新購買2臺(tái)ESC 1.1.1.3/1.1.1.4 每臺(tái)機(jī)器部署那3個(gè)java項(xiàng)目,2臺(tái)機(jī)器就做冗余和負(fù)載均衡。新購買一個(gè)RDS,將1.1.1.1中的mysql數(shù)據(jù)遷移上去。

        業(yè)務(wù)遷移

        • 根據(jù)業(yè)務(wù)情況來和開發(fā)分析重要性和低峰期,一般是夜里
        • 在決定遷移的白天中先購買好機(jī)器,做好環(huán)境初始化
        • 暫停項(xiàng)目更新,更改jenkins發(fā)布地址,將項(xiàng)目發(fā)布到1.1.1.3/1.1.1.4上面并進(jìn)行測試,因?yàn)槭切聶C(jī)器,并不影響當(dāng)前項(xiàng)目
        • 夜里將nignx負(fù)載均衡地址更改。進(jìn)行業(yè)務(wù)測試,在app進(jìn)行操作查看是否正常。進(jìn)行高可用測試(nignx健康檢查)。
        • 均確定沒問題后遷移成功

        業(yè)務(wù)遷移注意點(diǎn)

        • 記錄好項(xiàng)目啟動(dòng)的端口號,確定新機(jī)器上端口起來了,很多時(shí)候jenkins上面顯示發(fā)布,但端口未啟動(dòng)。
        • 項(xiàng)目啟動(dòng)一般是有順序的,要按順序進(jìn)行依次發(fā)布啟動(dòng)
        • 項(xiàng)目發(fā)布后一般是通過域名調(diào)用,比如’賽馬APP’點(diǎn)擊咨詢頁面將訪問zixun.saima.cn,但有些可能是寫的ip,這就需要在代碼里更改。
        • 在遷移中原有服務(wù)都不要關(guān)閉,一直開啟即可。

        數(shù)據(jù)庫遷移

        • 評估業(yè)務(wù)低峰期,一般是晚上遷移
        • 需要開發(fā)陪同,遷移到新數(shù)據(jù)庫后,需要開發(fā)人員進(jìn)行項(xiàng)目里數(shù)據(jù)庫地址更改
        • 當(dāng)前’賽馬’業(yè)務(wù)數(shù)據(jù)庫只有一個(gè)’saimadata’庫,大小為2G,這樣采用mysqldump導(dǎo)出,在導(dǎo)入到新庫即可。
        • 白天時(shí)間確定數(shù)據(jù)庫字符集,在新RDS上建立同字符集數(shù)據(jù)庫,防止錯(cuò)誤。同時(shí)確定好導(dǎo)出的語句。
        • 遷移時(shí),停掉業(yè)務(wù),讓數(shù)據(jù)庫沒有更新。確定當(dāng)前數(shù)據(jù)庫中數(shù)據(jù)總條目數(shù)進(jìn)行記錄。2分鐘后再抽查,確定數(shù)據(jù)庫確實(shí)已經(jīng)沒有新數(shù)據(jù)寫入。
        • 導(dǎo)出數(shù)據(jù),mysql xxx < xx.sql 方式導(dǎo)入到新庫。導(dǎo)入后進(jìn)行新庫數(shù)據(jù)條目對比,一樣即可。不放心可進(jìn)行數(shù)據(jù)庫隨機(jī)抽取比對。
        • 沒問題后通知開發(fā)人員進(jìn)行數(shù)據(jù)庫地址更換。

        數(shù)據(jù)庫遷移注意點(diǎn)

        導(dǎo)入時(shí)注意數(shù)據(jù)庫確實(shí)已經(jīng)停止寫了。如果數(shù)據(jù)量大,可以進(jìn)行主從方式同步,阿里也有工具DTS。

        三.遷移策略

        成功遷移策略

        遷移成功后,原有數(shù)據(jù)庫和服務(wù)進(jìn)行關(guān)閉,保留3周或1月后刪除。

        失敗遷移策略

        如果出現(xiàn)問題并3小時(shí)內(nèi)未解決。將負(fù)載均衡地址改回原有服務(wù)地址,數(shù)據(jù)庫地址不變,開放數(shù)據(jù)寫入。

        對出現(xiàn)的問題進(jìn)行記錄,白天時(shí)間進(jìn)行討論分析,在模擬解決后,晚上繼續(xù)遷移。

        四.具體遷移方案

        資源統(tǒng)計(jì)

        應(yīng)用服務(wù)遷移(3臺(tái)) 分布式服務(wù)遷移(3臺(tái),集群) web服務(wù)遷移(1臺(tái)) 跳板機(jī)遷移(1臺(tái)) nginx遷移(1臺(tái)) 數(shù)據(jù)庫遷移(2臺(tái))

        遷移技術(shù)選型確定

        2月10號開會(huì),確定每人每塊業(yè)務(wù)不會(huì)有遺漏,并且確定遷移注意事項(xiàng),確定配合遷移人員,調(diào)試人員等

        操作前打通隧道,實(shí)現(xiàn)內(nèi)網(wǎng)互通,采用業(yè)務(wù)先遷移的方法,數(shù)據(jù)庫同步,遷移時(shí)更改數(shù)據(jù)庫連接地址即可

        內(nèi)網(wǎng)打通,通過內(nèi)網(wǎng)拷貝,速度為120M/秒

        方案1-整體遷移

        時(shí)間:2月15 - 2月20日

        步驟:

        1. 提前使用DTS同步數(shù)據(jù)庫
        2. 某一時(shí)刻,停止全部業(yè)務(wù),避免有數(shù)據(jù)寫入到數(shù)據(jù)庫中,停掉同步
        3. 打包9臺(tái)服務(wù)器鏡像,并分享到新賬號下(由于使用是普通硬盤原因,生成鏡像會(huì)比較慢預(yù)計(jì)2小時(shí)完成)
        4. 打包的同時(shí)需要遷移oss,表格存儲(chǔ)到新賬號中
        5. 服務(wù)器鏡像打包完成,在新賬號上建立服務(wù)器,使用這些打包的鏡像
        6. 啟動(dòng)所有服務(wù)器,建立網(wǎng)絡(luò)
        7. 配置host訪問,使用跳板機(jī)管理
        8. 免密碼登錄需要重新設(shè)置
        9. 更改服務(wù)器IP,基礎(chǔ)環(huán)境已經(jīng)硬盤掛載,服務(wù)器基礎(chǔ)環(huán)境建立
        10. 更改服務(wù)啟動(dòng)的IP,服務(wù)的IP
        11. 啟動(dòng)服務(wù)測試有無異常
        12. 通知業(yè)務(wù)相關(guān)人員,更改發(fā)布系統(tǒng),更改連接數(shù)據(jù)庫,oss,表格存儲(chǔ)地址
        13. 重新發(fā)布所有服務(wù)
        14. 開始測試所有服務(wù)是否正常
        15. 正常,遷移完成

        方案2-批次遷移

        時(shí)間:2月15號正式遷移 驗(yàn)證測試所有重要服務(wù)器遷移步驟,如redis集群,redis單點(diǎn),oss,對象存儲(chǔ),表格存儲(chǔ)等遷移方式。

        應(yīng)用服務(wù)器遷移(3臺(tái))

        1. 備份服務(wù)器所有開放服務(wù)端口
        2. 新老賬號內(nèi)網(wǎng)打通
        3. 不影響業(yè)務(wù)時(shí)間段,一次性停止所有服務(wù)器,發(fā)公告服務(wù)器維護(hù),進(jìn)行鏡像打包
        4. 晚上遷移應(yīng)用服務(wù)器,在新賬號建立這些服務(wù)器
        5. 所有服務(wù),如RDS,OSS,對象存儲(chǔ),都通過之前內(nèi)網(wǎng)打通方式連接
        6. 啟動(dòng)新服務(wù)器,對IP,服務(wù)地址進(jìn)行更改
        7. jenkins更改發(fā)布服務(wù)器的地址
        8. nginx更改負(fù)載均衡地址
        9. 針對新服務(wù)進(jìn)行發(fā)布
        10. 測試所有服務(wù)是否正常
        11. 正常遷移完成
        12. 以上操作必須在幾小時(shí)內(nèi)完成,不能影響第二天業(yè)務(wù)

        分布式服務(wù)遷移(3臺(tái),集群)

        1. 備份服務(wù)器所有開放服務(wù)端口
        2. 不影響業(yè)務(wù)時(shí)間段,關(guān)閉所有入口,發(fā)公告服務(wù)器維護(hù)
        3. 按照集群手動(dòng)停止服務(wù),redis使用工具備份業(yè)務(wù)出來,同時(shí)java同事通過業(yè)務(wù)備份出來一份redis數(shù)據(jù),避免遷移出現(xiàn)數(shù)據(jù)丟失的問題
        4. 關(guān)閉zookeeper,redis,kafaka,關(guān)閉服務(wù)之前,關(guān)閉服務(wù)器,打包鏡像
        5. 在新賬號下通過這些鏡像恢復(fù)服務(wù)器
        6. 更改服務(wù)器初始化環(huán)境,對IP 服務(wù)器地址
        7. 恢復(fù)集群,主要是更改了IP之后的恢復(fù)
        8. 集群恢復(fù)完成
        9. 啟動(dòng)業(yè)務(wù)trade項(xiàng)目,連接基礎(chǔ)服務(wù) zk redis,kafka測試服務(wù)是否正常,數(shù)據(jù)是否丟失
        10. 測試通過,本次service切割完成
        11. 以上操作必須在幾小時(shí)內(nèi)完成,不能影響第二天業(yè)務(wù)

        web服務(wù)遷移(1臺(tái))

        1. 備份服務(wù)器所有開放服務(wù)端口
        2. 不影響業(yè)務(wù)時(shí)間段,關(guān)閉所有入口,確保沒有數(shù)據(jù)寫入數(shù)據(jù)庫
        3. 備份數(shù)據(jù),如REDIS上所有數(shù)據(jù),以及重要文件
        4. 關(guān)閉服務(wù)器,并進(jìn)行鏡像打包
        5. 在新賬號下恢復(fù)此服務(wù)器
        6. 更改服務(wù)器初始化環(huán)境,對IP 服務(wù)器地址
        7. 啟動(dòng)服務(wù),沒有問題,web1遷移完成
        8. 以上操作必須在幾小時(shí)內(nèi)完成,不能影響第二天業(yè)務(wù)

        跳板機(jī)遷移(1臺(tái))

        1. 備份服務(wù)器所有開放服務(wù)端口
        2. 不影響業(yè)務(wù)時(shí)間段,關(guān)閉服務(wù)器,進(jìn)行打包
        3. 在新賬號下恢復(fù)此服務(wù)器更改服務(wù)器初始化環(huán)境,對IP和服務(wù)器地址
        4. 更改服務(wù)IP地址,如jenkins
        5. 啟動(dòng)服務(wù),沒有問題,ops遷移完成
        6. 以上操作必須在幾小時(shí)內(nèi)完成,不能影響發(fā)布業(yè)務(wù)

        nginx遷移(1臺(tái))

        1. 備份服務(wù)器所有開放服務(wù)端口
        2. 不影響業(yè)務(wù)時(shí)間段,關(guān)閉服務(wù)器,進(jìn)行打包
        3. 在新賬號下恢復(fù)此服務(wù)器
        4. 更改服務(wù)器初始化環(huán)境,對IP 服務(wù)器地址
        5. 由于之前已經(jīng)更改了負(fù)載均衡的IP,此時(shí)不用更改,更改外網(wǎng)地址,以及域名解析即可
        6. 啟動(dòng)服務(wù),沒有問題,nginx遷移完成
        7. 以上操作必須在幾小時(shí)內(nèi)完成,不能影響發(fā)布業(yè)務(wù)

        數(shù)據(jù)庫遷移(2臺(tái))

        1. 數(shù)據(jù)庫一直在同步,此時(shí)使用的是老庫
        2. 不影響業(yè)務(wù)時(shí)間,停服務(wù),確保沒有數(shù)據(jù)寫入數(shù)據(jù)庫
        3. 數(shù)據(jù)庫DTS同步停止
        4. 通知相關(guān)業(yè)務(wù)人員更改數(shù)據(jù)庫連接
        5. 啟動(dòng)服務(wù)
        6. 測試數(shù)據(jù)是否完整可用
        7. 遷移完成

        遷移技術(shù)選型確定

        • ECS遷移:阿里云-服務(wù)器遷移流程(鏡像備份).pdf

        • OSS遷移:使用 osslmport 工具遷移

        • RDS遷移:使用DTS進(jìn)行數(shù)據(jù)同步,同步結(jié)束后停止同步,并程序切換連接地址完成遷移

        • REDIS遷移:單點(diǎn)遷移直接拷貝RDB文件即可

        • 表格存儲(chǔ):Tablestore CL 工具進(jìn)行遷移



        ?點(diǎn)擊屏末?|??|?即刻學(xué)習(xí)

        瀏覽 66
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            成人在线无码观看 | 国产videos麻豆丝袜老师 | 亚洲AV无码高清 | 国产色图在线观看 | 韩剧性生活 | 中文字幕第一页不卡 | 艹逼网站下载 | 台湾黄三级高清在线观看播放 | 国产精品人妻人伦a 片久 | 99久久免费精品国产在热线观 |