<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          手游項目運維遷移規(guī)劃實踐

          共 3422字,需瀏覽 7分鐘

           ·

          2021-01-06 15:40

          一.項目介紹

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

          file

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

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

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

          nginx將請求給后端的java服務(wù)(zixun-saima:9091)端口。zixun-saima這個java程序則從 1.1.1.1 這臺機(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ò)展需求

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

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

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

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

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

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

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

          • 評估業(yè)務(wù)低峰期,一般是晚上遷移
          • 需要開發(fā)陪同,遷移到新數(shù)據(jù)庫后,需要開發(fā)人員進(jìn)行項目里數(shù)據(jù)庫地址更改
          • 當(dāng)前’賽馬’業(yè)務(wù)數(shù)據(jù)庫只有一個’saimadata’庫,大小為2G,這樣采用mysqldump導(dǎo)出,在導(dǎo)入到新庫即可。
          • 白天時間確定數(shù)據(jù)庫字符集,在新RDS上建立同字符集數(shù)據(jù)庫,防止錯誤。同時確定好導(dǎo)出的語句。
          • 遷移時,停掉業(yè)務(wù),讓數(shù)據(jù)庫沒有更新。確定當(dāng)前數(shù)據(jù)庫中數(shù)據(jù)總條目數(shù)進(jìn)行記錄。2分鐘后再抽查,確定數(shù)據(jù)庫確實已經(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ù)庫遷移注意點

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

          三.遷移策略

          成功遷移策略

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

          失敗遷移策略

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

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

          四.具體遷移方案

          資源統(tǒng)計

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

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

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

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

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

          方案1-整體遷移

          時間:2月15 - 2月20日

          步驟:

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

          方案2-批次遷移

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

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

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

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

          1. 備份服務(wù)器所有開放服務(wù)端口
          2. 不影響業(yè)務(wù)時間段,關(guān)閉所有入口,發(fā)公告服務(wù)器維護(hù)
          3. 按照集群手動停止服務(wù),redis使用工具備份業(yè)務(wù)出來,同時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. 啟動業(yè)務(wù)trade項目,連接基礎(chǔ)服務(wù) zk redis,kafka測試服務(wù)是否正常,數(shù)據(jù)是否丟失
          10. 測試通過,本次service切割完成
          11. 以上操作必須在幾小時內(nèi)完成,不能影響第二天業(yè)務(wù)

          web服務(wù)遷移(1臺)

          1. 備份服務(wù)器所有開放服務(wù)端口
          2. 不影響業(yè)務(wù)時間段,關(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. 啟動服務(wù),沒有問題,web1遷移完成
          8. 以上操作必須在幾小時內(nèi)完成,不能影響第二天業(yè)務(wù)

          跳板機(jī)遷移(1臺)

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

          nginx遷移(1臺)

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

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

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

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

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

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

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

          • REDIS遷移:單點遷移直接拷貝RDB文件即可

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



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

          瀏覽 66
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  99精品欧美一区二区 | 日逼免费观看网站 | 五月天婷婷激情网 | 大肉大捧一进一出两腿 | 北条麻妃成人 |