代碼上線注意事項

說明

在工作中,代碼上線是很重要的,而作為上線人員,對流程要嚴格把控,對需要上線代碼的更新是需要仔細研究!!

向持續交付前行
在保證上線質量的前提下,如何提高上線效率,做到自動化部署,持續交付,這是一個值得深入和持久關注的問題。

代碼上線流程

svn代碼更新-->測試環境上線測試-->測試OK后發送郵件告知測試結果給運維,并說明可以上線代碼svn_revision -->上線前記錄svn_revision,對比上次上線時的改動,判斷對各服務連接有無影響,注意配置文件的修改-->匯報上級(確定上線后)-->上線需將所有測試OK的所有代碼統一上線(提前做好備份,方便出現問題回滾。注意配置文件的變動,防止更新后各服務不通)-->對上線后的功能進行測試(通知公司人員進行測試)-->OK郵件通知全員。

注:打標簽(svn tag)是一個更通用的做法。

代碼中運維需要處理的配置

<?php

return [
    //緩存中無數據時,是否從db中讀取數據
    'read_data_from_db'=>true,
    //用戶頭像
    'user_avatar' =>[
        //默認的用戶頭像,不包含域名
        'default_avatar' => 'default.jpg',

    ],
    //經紀人頭像
    'broker_avatar' =>[
        //默認的經紀人頭像,不包含域名
        'default_avatar' => 'default.jpg',
        //經紀人頭像域名

    ]
];

保持項,key和svn中的一致性
其中對應的項、key的前后順序保持和svn中的一樣,這樣對于開發人員、測試人員來說,出現問題后便于對比。對于運維來說,僅需要修改對應key下的value即可,根據線上的實際情況進行修改。對相應的注釋,項和key不要隨意修改,也不要調整其前后順序,如果需要調整,則需要到svn中進行調整,并且和開發人員進行交流核實。

** 上線中遇到的問題 **

下面列舉一個上線遇到的問題,再次記錄,避免下次出錯:
昨日通知上線后,首先我將svn代碼進行更新,記錄svn_flag位置點為1392,詢問上傳代碼人員無誤并無嚴重修改后,更新代碼上線,因為是首次上線,所以將所有代碼一次性部署到線上,完成后測試無問題。結束報告。

在回到家中,公司人員反映,出現問題,無法登陸,便上去查看api日志訪問日志,發現有error,但無處理結果,次日到公司商議解決。

來后,詢問編寫代碼人員,查看api日志發現此error后,發現有一個配置文件仍然是舊版本,進行核對后重新上線代碼。問題得到解決!

** 簡述原因 **

因為代碼中有一個config目錄,在上線后運維需在config目錄下修改配置,連接mysql及redis,所以在上代碼前我提前將舊版本和此目錄做好備份,待新代碼上線后,將config目錄替換,本以為一切配置無改變。

但是在日志中發現,api接口調用錯誤,返回配置文件發現,雖然我將舊的config目錄替換,但是此目錄下也做了更新,所以上線并沒有做到同步。

錯誤總結

通過此次的錯誤,認識問題的嚴重性,如果當次類問題發生在正式產品線上,后果很嚴重,所以需要嚴格反思,總結文檔,提高警惕,避免以后出現同樣的錯誤。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,868評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,025評論 25 708
  • 源代碼管理工具的起源 為什么會出現源代碼管理工具? 為了解決在軟件開發過程中,由源代碼引發的各種蛋疼繁瑣問題 源代...
    小白文_Vincent閱讀 3,214評論 2 8
  • 一、編譯源碼目錄使用內置宏,定義在build/core/envsetup.mk里面有定義,如果只是拷貝文件使用pr...
    lutery閱讀 269評論 0 0