你在地鐵上修過bug嗎?

作為技術人員,有沒有遇到下班路上收到老板電話,系統故障,然后地鐵上掏出電腦,修bug的場景。自己負責的業務線上出現問題,負責人心里是很慌的,在這種心理狀態下做事很容易二次犯錯,造成更大的問題。

但是線上業務在高速迭代的過程中,出現問題,又總是難免的。這個時候,對業務系統建立完備的監控體系是十分有必要的。

監控的目標是及時發現系統問題,并盡可能快地做出相應的動作,讓系統處于一種健康狀態。

監控,顧名思義就是監視和控制

監視:通過采集業務日志,系統運行指標等,觀察系統運行狀況,實現快速定位問題的目的。

控制:采用一定的技術手段,解決問題,使系統恢復正常狀態。

定位問題是一件考驗一個技術人員技術能力和對系統熟悉程度的事情,需要業務系統輸出的日志等信息作為線索,順藤摸瓜,細心排查,才能最終定位到問題。

解決問題是一個對技術人員工作經驗要求比較高的事情,把問題解決是最基本的要求,同時還要考慮解決問題的效率,對業務的影響程度等。

解決問題的方式有很多,可能大部分技術人員都十分崇拜那種,直接在線上改bug,然后發布,告警消失,系統趨于穩定。但是這種解決問題方式對技術人員的技術能力、心理素質都有較高的要求,并不是所有技術人員都能做到的,這種解決問題的方案,很難普適。

這里小編介紹一種簡單粗暴的解決問題的方案,對于大部分技術人來說操作起來都比較簡單。

在討論這種方案之前,我們先來討論一下問題產生原因,問題的產生絕大部分的原因來自于“變化”,這里的變化怎么理解呢?

這里的變化分為兩種:
1.業務系統功能迭代,發版。有沒有同感,絕大部分情況下,產生線上問題,都是發版導致的。

2.業務流量變化:業務運營活動產生突發流量。

既然是變化導致的問題,那么消滅變化,讓系統回歸到變化前的狀態,是不是就解決了問題了,如果沒有解決,說明變化沒有消滅徹底。

怎么消滅變化呢?

對于第一種:通常的做法是版本回退,業務功能回退,sql腳本回退等。

對于第二種:系統具有限流的功能,或者快速擴縮容的能力。

總結來說就是:流控和版本回退,簡單,粗暴。但對于任何線上問題,都可以采用這種方案,這種方案可能沒有直接在線上解決問題那么“酷”,但是,對技術人員的專業能力依賴不高,是一個標準化的流程,甚至可以做到自動化,二次出錯概率很小。

而且作為一個技術人員,一定要轉變一下思維方式:不解決bug,也可以解問題,并不一定要硬剛bug,要考慮解決方案對業務的影響。技術的價值是通過業務體現的,尤其是對于做業務的同學來說,技術nb,并不一定能給你帶來成長,你支撐的業務nb,才能體現你的價值。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/209593.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/209593.shtml
英文地址,請注明出處:http://en.pswp.cn/news/209593.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SAP UI5 walkthrough step10 Descriptor for Applications

在這一步,我們將會把所有的應用相關的描述性的文件獨立放到manifest.json 新建一個manifest.json文件 webapp/manifest.json (New) {"_version": "1.58.0","sap.app": {"id": "ui5.walkthrough","i18n&q…

【已解決】No module named ‘sklearn‘

問題描述 No module named ‘sklearn‘ 解決辦法 pip install scikit-learn 完結撒花 契約、包容、感恩、原則……這些成年人該有的基本精神,為什么我在他們身上找不到呢?

圖像疊加中文字體

目錄 1) 前言2) freetype下載3) Demo3.1) 下載3.2) 編譯3.3) 運行3.4) 結果3.5) 更詳細的使用見目錄中說明 4) 積少成多 1) 前言 最近在做圖片、視頻疊加文字,要求支持中文,基本原理是將圖片或視頻解碼后疊加文字,之后做圖片或視頻編碼即可。…

ASP.NET Core概述-微軟已經收購了mono,為什么還搞.NET Core呢

一、.NET Core概述 1、相關歷程 .NET在設計之初也是考慮像Java一樣跨平臺,.NET Framework是在Windows下運行的,大部分類是可以兼容移植到Linux下,但是沒有人做這個工作。 2001年米格爾為Gnome尋找桌面開發技術,在研究了微軟的.…

數據庫版本管理框架-Flyway(從入門到精通)

一、flyway簡介 Flyway是一個簡單開源數據庫版本控制器(約定大于配置),主要提供migrate、clean、info、validate、baseline、repair等命令。它支持SQL(PL/SQL、T-SQL)方式和Java方式,支持命令行客戶端等&am…

TCP對數據的拆分

應用程序的數據一般都比較大,因此TCP會按照網絡包的大小對數據進行拆分。 當發送緩沖區中的數據超過MSS的長度,數據會被以MSS長度為單位進行拆分,拆分出來的數據塊被放進單獨的網路包中。 根據發送緩沖區中的數據拆分情況,當判斷…

ffmpeg編譯問題

利用ffmpeg實現一個播放器,ffmpeg提供動態庫,但是編譯鏈接的時候遇到下面的問題: ../ffmpegWidgetPlayer/videoplayerwidget.cpp:23: error: undefined reference to sws_freeContext(SwsContext*) ../ffmpegWidgetPlayer/videoplayerwidget.…

JWT介紹及演示

JWT 介紹 cookie(放在瀏覽器) cookie 是一個非常具體的東西,指的就是瀏覽器里面能永久存儲的一種數據,僅僅是瀏覽器實現的一種數據存儲功能。 cookie由服務器生成,發送給瀏覽器,瀏覽器把cookie以kv形式保存到某個目錄下的文本…

JavaScript 金額元轉化為萬

function dealNum(price){if (price 0) {return 0元}const BASE 10000const decimal 0const SIZES ["", "萬", "億", "萬億"];let i undefined;let str "";if (price) {if ((price > 0 && price < BASE…

p標簽的水平居中和垂直居中

1行內塊元素水平居中垂直居中 行內元素和行內塊元素水平居中&#xff0c;給其父元素添加text-align:center&#xff1b;所以案例里面給one加了 text-align: center之后span就會水平居中了。在設置span行高和高都是一樣的 20px;這樣就實現上下居中了。 2塊級元素P元素水平居中…

通過命令行輸入參數控制激勵

1)在命令行的仿真參數&#xff08;SIM_OPT&#xff09;加上&#xff1a;“var_a100 var_b99” 2)在環境中調用&#xff1a; $test$plusargs("var_a")&#xff1b;如果命令行存在這個字符&#xff0c;返回1&#xff0c;否則返回0&#xff1b; $value$plusargs(&qu…

vue2 el-input里實現打字機 效果

vue2 el-input里實現打字機 效果 <el-col :span"24" v-if"ifshowOtherDesc""><el-form-item label"分析" prop"otherDesc"><el-input type"textarea" :disabled"disabled" autofocus"t…

藍牙物聯網對接技術難點有哪些?

#物聯網# 藍牙物聯網對接技術難點主要包括以下幾個方面&#xff1a; 1、設備兼容性&#xff1a;藍牙技術有多種版本和規格&#xff0c;如藍牙4.0、藍牙5.0等&#xff0c;不同版本之間的兼容性可能存在問題。同時&#xff0c;不同廠商生產的藍牙設備也可能存在兼容性問題。 2、…

0-1背包問題

二維版: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;public class Main {static int N 1010;static int[][] dp new int[N][N]; //dp[i][j] 只選前i件物品,體積 < j的最優解static int[] w new int[N]; //存儲價…

Day03 嵌入式---中斷

目錄 一、簡單介紹 二、總體框架 三、NVIC 3.2 NVIC的寄存器 3.3 中斷向量表 3.4 中斷優先級 3.5 NVIC優先級分組 3.6 NVIC配置 3.6.1、設置中斷分組 3.6.2、初始化 四、EXTI 外部中斷 4.1.EXTI的基本概念 4.2.EXTI的?作原理 4.3 EXTI配置 五、SYSCFG 5.1 SYS…

字符串函數`strlen`、`strcpy`、`strcmp`、`strstr`、`strcat`的使用以及模擬實現

文章目錄 &#x1f680;前言&#x1f680;庫函數strlen??strlen的模擬實現 &#x1f680;庫函數strcpy??strcpy的模擬實現 &#x1f680;strcmp??strcmp的模擬實現 &#x1f680;strstr??strstr的模擬實現 &#x1f680;strcat??strcat的模擬實現 &#x1f680;前言 …

ReactJS和VueJS的簡介以及它們之間的區別

本文主要介紹ReactJS和VueJS的簡介以及它們之間的區別。 目錄 ReactJS簡介ReactJS的優缺點ReactJS的應用場景VueJS簡介VueJS的優缺點VueJS的應用場景ReactJS和VueJS的區別 ReactJS簡介 ReactJS是一個由Facebook開發的基于JavaScript的前端框架。它是一個用于構建用戶界面的庫&…

【C語言】——函數遞歸,用遞歸簡化并實現復雜問題

文章目錄 前言一、什么是遞歸二、遞歸的限制條件三、遞歸舉例1.求n的階乘2. 舉例2&#xff1a;順序打印一個整數的每一位 四、遞歸的優劣總結 前言 不多廢話了&#xff0c;直接開始。 一、什么是遞歸 遞歸是學習C語言函數繞不開的?個話題&#xff0c;那什么是遞歸呢&#xf…

電商平臺商品銷量API接口,30天銷量API接口接口超詳細接入方案說明

電商平臺商品銷量API接口的作用主要是幫助開發者獲取電商平臺上的商品銷量信息。通過這個接口&#xff0c;開發者可以在自己的應用或網站中實時獲取商品的銷量數據&#xff0c;以便進行銷售分析、庫存管理、市場預測等操作。 具體來說&#xff0c;電商平臺商品銷量API接口的使…

RocketMq集成SpringBoot(待完善)

環境 jdk1.8, springboot2.7.3 Maven依賴 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.3</version><relativePath/> <!-- lookup parent from…