記一次SAP開(kāi)發(fā)工程師給微軟Azure報(bào)incident的體驗(yàn)

來(lái)源:簡(jiǎn)書(shū)
作者:JerryWang_汪子熙
時(shí)間:2020-06-18
1965
最近使用微軟Azure云平臺(tái)時(shí)遇到一個(gè)問(wèn)題,以下是通過(guò)Azure提供的Support工具向微軟提交incident的過(guò)程。

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

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

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

2085791-ecb0771392aeda67.jpg

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

在排除了問(wèn)題不是我們消費(fèi)端代碼引起之后,我開(kāi)始給Azure報(bào)incident。

雖然Azure的字面意思是天藍(lán)色,但Jerry打開(kāi)的Azure頁(yè)面全是下圖這種純黑色背景,只是因?yàn)槲覔Q了一個(gè)黑色主題。

2085791-d37e7a0451427056.jpg

新建一個(gè)支持請(qǐng)求(Support Request),類(lèi)型選擇為T(mén)echnical:

2085791-1b97718bca3d6f26.jpg

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

然后指定遇到問(wèn)題的Service類(lèi)型,和具體的Resource名稱(chēng)。Subscription,Service,Resource這三個(gè)字段都是聯(lián)動(dòng)的下拉菜單。

2085791-95a6ee7daf43e00b.jpg

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

2085791-6c50686d275f006c.jpg

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

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

2085791-4b75af5b4d9e1c15.jpg

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

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

Jerry處理過(guò)的317個(gè)客戶(hù)incidents中也不乏Very High的,當(dāng)時(shí)處理時(shí)承擔(dān)的壓力,至今思之仍覺(jué)得后怕。

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

2085791-6ad3e23605f2ad80.jpg

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

2085791-93e5d855add047c8.jpg

因?yàn)槲覀兿硎艿腟upport Plan級(jí)別是Premier,在這個(gè)級(jí)別之下,理論上15分鐘之內(nèi)就會(huì)收到響應(yīng)。

2085791-f79353571dad2d58.jpg

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

2085791-fbe943752957982b.jpg

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

2085791-29d1cf1c6d75b61a.jpg

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

2085791-bd2bac850fdff309.jpg

這個(gè)會(huì)剛結(jié)束,我手機(jī)又接到一個(gè)號(hào)碼顯示為美國(guó)的來(lái)電,一位自稱(chēng)是微軟Critical Situation Manager的女士,詢(xún)問(wèn)我對(duì)剛才和Azure Support工程師開(kāi)會(huì)的體驗(yàn),以及對(duì)這個(gè)incident優(yōu)先級(jí)的降低是否有異議。

2085791-9596312fc9102150.jpg

2085791-a04b98a42ba99d0e.jpg

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

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

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

2085791-142f45ca41e98d79.jpg

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

2085791-c5b57be1e0d73c27.jpg

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

https://launchpad.support.sap.com

2085791-36f46d95cc54c569.jpg

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

2085791-83c681036507713c.jpg

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

2085791-d307af65421ce697.jpg

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

2085791-840270f4cfb99644.jpg

2085791-66f5a12c118c2b78.jpg

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

2085791-ba7ffba360593428.jpg

如果是SAP Cloud Platform的某個(gè)模塊遇到了問(wèn)題,對(duì)應(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報(bào)的那個(gè)incident,目前還在處理過(guò)程中。對(duì)此我也非常能理解,這種不能100%重現(xiàn)的故障是最讓程序員頭疼的。

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

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

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

2085791-5bcb7dd844308ccc.jpg

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

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

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

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

2085791-a98bed2839244f66.jpg

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

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

2085791-3b40d39a14e58bd5.jpg

原文鏈接:點(diǎn)擊前往 >
版權(quán)說(shuō)明:本文內(nèi)容來(lái)自于簡(jiǎn)書(shū),本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
相關(guān)文章
Azure Arc為企業(yè)構(gòu)建安全的云基礎(chǔ)
Azure Arc為企業(yè)構(gòu)建安全的云基礎(chǔ)
隨著人工智能技術(shù)持續(xù)重塑企業(yè)運(yùn)營(yíng)方式,企業(yè)需要能夠處理海量數(shù)據(jù)的系統(tǒng),以支持實(shí)時(shí)洞察,同時(shí)幫助他們應(yīng)對(duì)跨IT和OT環(huán)境(包括云端、邊緣和本地)中運(yùn)營(yíng)、應(yīng)用、數(shù)據(jù)和基礎(chǔ)設(shè)施的協(xié)作難題。
Azure
微軟云
云服務(wù)
2024-12-17
釋放.NET 9和Azure的AI技術(shù)與云計(jì)算潛力:更快、更智能、面向未來(lái)
釋放.NET 9和Azure的AI技術(shù)與云計(jì)算潛力:更快、更智能、面向未來(lái)
.NET 9現(xiàn)已正式發(fā)布,它為.NET平臺(tái)的發(fā)展掀開(kāi)了嶄新的一頁(yè),突破了性能、云原生開(kāi)發(fā)和AI技術(shù)集成的邊界。
Azure
微軟云
云服務(wù)
2024-12-16
Azure網(wǎng)絡(luò)管理現(xiàn)已具備智能Microsoft Copilot副駕駛能力
Azure網(wǎng)絡(luò)管理現(xiàn)已具備智能Microsoft Copilot副駕駛能力
智能Microsoft Copilot副駕駛for Azure網(wǎng)絡(luò)服務(wù)現(xiàn)已推出公共預(yù)覽版。
Azure
微軟云
云服務(wù)
2024-12-10
Microsoft Fabric功能更新,借助AI驅(qū)動(dòng)的數(shù)據(jù)平臺(tái)加速應(yīng)用創(chuàng)新
Microsoft Fabric功能更新,借助AI驅(qū)動(dòng)的數(shù)據(jù)平臺(tái)加速應(yīng)用創(chuàng)新
一年前,我們正式推出了一款端到端數(shù)據(jù)平臺(tái),旨在幫助組織推動(dòng)人工智能轉(zhuǎn)型,并重新定義數(shù)據(jù)的連接、管理和分析方式。
Azure
微軟云
云服務(wù)
2024-12-09
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家