記一次SAP開發(fā)工程師給微軟Azure報incident的體驗

來源:簡書
作者:JerryWang_汪子熙
時間:2020-06-18
1955
最近使用微軟Azure云平臺時遇到一個問題,以下是通過Azure提供的Support工具向微軟提交incident的過程。

文章標(biāo)題的incident含義:在企業(yè)級軟件領(lǐng)域里,當(dāng)客戶使用軟件提供商的軟件,遇到各種問題或故障,可以使用專門的工具,向軟件供應(yīng)商尋求幫助。我們通常稱這種工具創(chuàng)建的幫助請求(Support Request)為incident。

今天這篇文章無關(guān)具體的技術(shù)。Jerry最近使用微軟Azure云平臺時遇到一個問題,通過Azure提供的Support工具向微軟提交incident的過程中,感嘆自己十多年來一直是修bug的命,這次終于翻身了,由我給另一家軟件公司報bug,體驗了一回當(dāng)上帝的感覺。

我在SAP這些年,一共處理過317個客戶incidents(當(dāng)然并不是所有的都是Jerry修復(fù)的,包括我分析后轉(zhuǎn)手到其他部分的也算)。

2085791-ecb0771392aeda67.jpg

我們Commerce Cloud團(tuán)隊使用Azure提供的Function create API在Azure上創(chuàng)建Lambda Function,過程中遇到一些問題,詳見Jerry之前的文章:SAP ABAP應(yīng)用服務(wù)器的HTTP響應(yīng)狀態(tài)碼(Status Code)。

在排除了問題不是我們消費端代碼引起之后,我開始給Azure報incident。

雖然Azure的字面意思是天藍(lán)色,但Jerry打開的Azure頁面全是下圖這種純黑色背景,只是因為我換了一個黑色主題。

2085791-d37e7a0451427056.jpg

新建一個支持請求(Support Request),類型選擇為Technical:

2085791-1b97718bca3d6f26.jpg

選中之后,Subscription就自動填充為我當(dāng)前這個用戶的訂閱ID了。大家可以把Azure Subscription的作用類比成SAP Cloud Platform的Global Account。

然后指定遇到問題的Service類型,和具體的Resource名稱。Subscription,Service,Resource這三個字段都是聯(lián)動的下拉菜單。

2085791-95a6ee7daf43e00b.jpg

Service,Problem type和Problem subtype這三個聯(lián)動的下拉菜單,共同扮演的角色,類似給SAP產(chǎn)品報incident時需要維護(hù)的Application Component。下圖是SAP Application Component的樹狀關(guān)系圖。

2085791-6c50686d275f006c.jpg

Jerry個人覺得Azure這種多層級聯(lián)式下拉菜單的做法,為用戶免去了記憶component ID的負(fù)擔(dān);但作為程序員,我個人還是更喜歡SAP這種通過樹形結(jié)構(gòu)維護(hù)component的方式。

回到Azure Portal,維護(hù)好了問題類型和描述信息后,Azure根據(jù)這些信息自動從其后臺檢索出相關(guān)的推薦解決方案。我瀏覽了一下,發(fā)現(xiàn)并不能解決我遇到的問題,于是點Next繼續(xù):

2085791-4b75af5b4d9e1c15.jpg

這里可以維護(hù)明細(xì)信息和上傳附件。我當(dāng)時將重現(xiàn)問題的步驟,Postman請求的payload,我的分析,包括我搭建的jMeter等信息全部寫到一個PDF文件里了,總共8頁,添加到附件里。

然后是選擇故障的緊急程度,Azure有四檔緊急程度可選:Critical,Urgent,Moderate和Minimal。而對應(yīng)的SAP里的術(shù)語叫Priority(優(yōu)先級),SAP incident的優(yōu)先級也分四檔:Very High,High,Medium和Low。

Jerry處理過的317個客戶incidents中也不乏Very High的,當(dāng)時處理時承擔(dān)的壓力,至今思之仍覺得后怕。

盡管明白“程序員何苦為難程序員”的道理,我還是選擇了最高級別的Critical impact,享受一次7×24小時的服務(wù)。留下自己的手機(jī)以供聯(lián)系。

2085791-6ad3e23605f2ad80.jpg

最后點擊Next就能成功創(chuàng)建Support Request。

2085791-93e5d855add047c8.jpg

因為我們享受的Support Plan級別是Premier,在這個級別之下,理論上15分鐘之內(nèi)就會收到響應(yīng)。

2085791-f79353571dad2d58.jpg

果然,幾分鐘之后Jerry就收到了一個用Teams發(fā)起的會議請求:

2085791-fbe943752957982b.jpg

我心想,微軟真是動作神速啊,這么快就派出工程師準(zhǔn)備和我一起在線調(diào)試了嗎?本來我正在吃飯,只得放下碗筷回到電腦面前。

2085791-29d1cf1c6d75b61a.jpg

登入Microsoft Teams參加了會議我才知道,這個會的目的首先是,Azure Support工程師確認(rèn)他們對我附件PDF里描述信息的理解是否正確,然后討論這個incident的Severity是否應(yīng)該從Critical降成Urgent.工程師們詳細(xì)詢問了我們組對這個API的使用場景,以及當(dāng)前Azure上是否存在已經(jīng)上線的應(yīng)用。最終我也同意了這個降級請求,畢竟微軟這套衡量incident優(yōu)先級的標(biāo)準(zhǔn)和SAP類似,都是按照Business Impact來界定的。

2085791-bd2bac850fdff309.jpg

這個會剛結(jié)束,我手機(jī)又接到一個號碼顯示為美國的來電,一位自稱是微軟Critical Situation Manager的女士,詢問我對剛才和Azure Support工程師開會的體驗,以及對這個incident優(yōu)先級的降低是否有異議。

2085791-9596312fc9102150.jpg

2085791-a04b98a42ba99d0e.jpg

整體來講,我對這次向Azure提交incident的體驗很滿意,無論是響應(yīng)速度還是同Azure Support工程師及Critical Situation Manager交談下來感受到的專業(yè)程度,都給我留下了深刻的印象。

最后還是再來回顧一下SAP從業(yè)者們最熟悉的如何給SAP產(chǎn)品報incident的工具吧。

在SAP Cloud for Customer about菜單里集成了提交incident的功能:

2085791-142f45ca41e98d79.jpg

提交界面比較簡潔,維護(hù)標(biāo)題和問題詳細(xì)描述,上傳附件。

2085791-c5b57be1e0d73c27.jpg

當(dāng)然也能使用最統(tǒng)一最通用的SAP One Support Launchpad:

https://launchpad.support.sap.com

2085791-36f46d95cc54c569.jpg

同Azure一樣,SAP Support Launchpad也鼓勵用戶,在實際提交incident之前,首先去Knowledge Base里查詢有無相關(guān)線索和解決方案。

2085791-83c681036507713c.jpg

不搜不知道,一搜嚇一跳,原來HTTP 400 bad request確實是一個普遍問題,在SAP領(lǐng)域也一共存在1400多個相關(guān)note和討論:

2085791-d307af65421ce697.jpg

如果覺得這些搜索結(jié)果沒有幫助,點擊Submit an Incident.SAP incident也分4檔不同的優(yōu)先級:

2085791-840270f4cfb99644.jpg

2085791-66f5a12c118c2b78.jpg

關(guān)于上圖的必填字段Component,如果是基于ABAP的SAP產(chǎn)品,很容易在開發(fā)包的Application Component字段找到這個值:

2085791-ba7ffba360593428.jpg

如果是SAP Cloud Platform的某個模塊遇到了問題,對應(yīng)的Application Component在SAP Help上能查到:

https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/08d1103928fb42f3a73b3f425e00e13c.html?scp-env=Cloud%20Foundry

2085791-83d500e4a5c31b8a.jpg

回到Jerry給Azure報的那個incident,目前還在處理過程中。對此我也非常能理解,這種不能100%重現(xiàn)的故障是最讓程序員頭疼的。

我想起之前處理過的一個SAP CRM IBASE問題,應(yīng)用運行時有一定概率會出現(xiàn)運行時Dump,但不是總能重現(xiàn)。

當(dāng)年Jerry還在SAP成都研究院CRM開發(fā)團(tuán)隊工作,負(fù)責(zé)SAP CRM IBASE的維護(hù)。

當(dāng)時給我報bug的同事也坦言,這個Dump不能穩(wěn)定重現(xiàn)。如果試一次是正常工作的話......那就多試幾次,直到出現(xiàn)Dump為止......

2085791-5bcb7dd844308ccc.jpg

最讓我抓狂的是,如果單步調(diào)試,這個故障100%無法重現(xiàn)。換句話說,我多年積累下來的在文章SAP錯誤消息調(diào)試之七種武器:讓所有的錯誤消息都能被定位里介紹的ABAP單步調(diào)試經(jīng)驗,在這個問題的分析上完全派不上用場。

幸運的是我最終通過自己的分析,寫了一個腳手架程序,通過該測試程序能夠100%重現(xiàn)Dump。既然能穩(wěn)定重現(xiàn),剩下的任務(wù)就輕松了,通過單步調(diào)試就能找到問題根源。

這個問題折騰了我整整兩天,解決完問題之后,我也做了復(fù)盤,分析自己為什么會花掉這么多時間。我把我的經(jīng)驗教訓(xùn),以及最終通過分析找到能夠穩(wěn)定重現(xiàn)問題的突破口。

我把自己采取的問題定位方式歸納命名為“最小系統(tǒng)法”。本世紀(jì)初,國內(nèi)電腦界流行DIY,大家分別購買自己中意品牌的電腦零配件,自己動手組裝,運行時經(jīng)常出現(xiàn)無法開機(jī)(俗稱“點不亮”)的情況。電腦發(fā)燒友們習(xí)慣通過“最小系統(tǒng)法”去逐一排查,最終找到出故障的配件。

2085791-a98bed2839244f66.jpg

我處理那個IBASE bug因為無法單步調(diào)試,僅能通過ST22 Dump里的靜態(tài)信息進(jìn)行分析,所以我也使用了“最小系統(tǒng)法”,分析出可能引起故障的子模塊,再寫測試程序運行這些模塊,逐一驗證我的猜想。

關(guān)于我提交的這個不能穩(wěn)定重現(xiàn)的Azure incident,我也會持續(xù)關(guān)注。最后祝我的同行,處理這個incident的微軟工程師好運。感謝閱讀。

2085791-3b40d39a14e58bd5.jpg

原文鏈接:點擊前往 >
版權(quán)說明:本文內(nèi)容來自于簡書,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
個人VIP
小程序
快出海小程序
公眾號
快出海公眾號
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家