從這 5 個(gè) DevOps “恐怖故事”,我們能學(xué)到什么?

DevOps 是企業(yè)轉(zhuǎn)型的關(guān)鍵。但要明確的是,DevOps 是一個(gè)過程,而不是目標(biāo)。從這個(gè)意義上說,實(shí)踐 DevOps 需要不斷優(yōu)化,不斷去學(xué)習(xí)、嘗試更好的方法。持續(xù)改進(jìn) DevOps 實(shí)踐是推進(jìn)企業(yè)轉(zhuǎn)型的重要途徑。

就算是一些很知名的企業(yè),在將 DevOps 應(yīng)用于其轉(zhuǎn)型戰(zhàn)略時(shí),也會(huì)犯錯(cuò)誤并面臨可怕的后果。不過,幸運(yùn)的是,他們從失敗中吸取了寶貴的教訓(xùn)。

SlideShare:限制對(duì)生產(chǎn)環(huán)境的訪問

SlideShare 是全球最大的內(nèi)容分享社區(qū),很早就推出了 DevOps 模型以加快開發(fā)流程。

時(shí)間回到 2012 年,當(dāng)時(shí)它還是一家員工不到 20 人的小型初創(chuàng)公司,開發(fā)團(tuán)隊(duì)分散在舊金山和新德里,基礎(chǔ)設(shè)施相當(dāng)復(fù)雜。

有一次,一位開發(fā)人員試圖使用一種新工具分析 MySQL 數(shù)據(jù)庫。當(dāng)他開始更改數(shù)據(jù)庫中列的順序時(shí),他不知道的是,這也改變了生產(chǎn)環(huán)境中的數(shù)據(jù)庫,最終導(dǎo)致 Slideshare.net 癱瘓,拒絕了試圖訪問它的六萬多個(gè)用戶。而且事故發(fā)生時(shí),負(fù)責(zé)人并沒有意識(shí)到是該工具正在執(zhí)行操作,最后通過集體的努力,花了 15 分鐘才找出問題的根源。

時(shí)任運(yùn)營工程師的 Sylvain Kalache 評(píng)論說,雖然 DevOps 與授權(quán)團(tuán)隊(duì)中的每個(gè)人都相關(guān),但對(duì)生產(chǎn)環(huán)境的訪問應(yīng)該僅限于少數(shù)能夠處理它的人。這就是為團(tuán)隊(duì)和個(gè)人配置高級(jí)的、基于角色的訪問 (RBAC) 的重要性。AWS IAM 之類的工具對(duì)于確保每個(gè)人都可以訪問執(zhí)行他們的日常任務(wù)至關(guān)重要,但不能完全訪問可能會(huì)損害用戶體驗(yàn)。在這種情況下,為了不會(huì)影響用戶,開發(fā)人員可以訪問暫存環(huán)境來嘗試該操作。

Knight Capital:自動(dòng)化的黑暗面

Knight Capital 因?yàn)?DevOps 失敗付出了慘痛的代價(jià)。它是一家全球性金融服務(wù)公司,曾憑借其高頻交易算法,成為美國最大的股票交易商,在紐約證券交易所市場(chǎng)份額為 17.3%,

Knight Capital 使用了一個(gè)名為 SMARS 的內(nèi)部應(yīng)用程序來處理股票市場(chǎng)的買單。這個(gè)應(yīng)用程序已經(jīng)運(yùn)行了很多年,它的代碼庫中有很多過時(shí)的部分。其中一個(gè)部分是名為 Power Peg 的功能,該功能處于非活動(dòng)狀態(tài),但未從代碼庫中刪除。

2012 年,在為應(yīng)用程序編寫新代碼時(shí),新代碼無意中調(diào)用了 Knight Capital 忽略的 Power Peg 功能。結(jié)果,Knight Capital 的應(yīng)用程序在短短幾分鐘內(nèi)就完成了價(jià)值數(shù)十億美元的采購訂單。這導(dǎo)致該公司支付了 4.6 億美元的罰款,并在一夜之間破產(chǎn)。

教訓(xùn):自動(dòng)化非常強(qiáng)大,但如果使用不當(dāng),可能會(huì)導(dǎo)致重大事故。而且,隨著時(shí)間的推移,流程需要更新,需要在應(yīng)用程序中引入新功能,以免更改發(fā)生沖突。

  Workflowy:不要輕易分拆數(shù)據(jù)庫

Workflowy 是一個(gè)簡單而優(yōu)雅的生產(chǎn)力工具,并且一直在穩(wěn)步增長。為應(yīng)對(duì)用戶增長,開發(fā)者需要對(duì)架構(gòu)進(jìn)行優(yōu)化。由于數(shù)據(jù)庫變得龐大,于是他們決定,將一個(gè)大型數(shù)據(jù)庫分解為多個(gè)較小的數(shù)據(jù)庫。

在這個(gè)過程中,他們發(fā)現(xiàn),分解成多個(gè)小數(shù)據(jù)庫會(huì)減慢查詢速度并阻止用戶訪問數(shù)據(jù)。一些用戶無法從他們的移動(dòng)設(shè)備同步數(shù)據(jù),而其他用戶則無法登錄 Web 應(yīng)用程序。

經(jīng)過一番故障排除后,團(tuán)隊(duì)發(fā)現(xiàn)其使用的 Web 服務(wù)器 (Apache) 存在一個(gè)從未遇到過的錯(cuò)誤,在修復(fù)了該錯(cuò)誤并試圖讓所有人重新登錄后,該網(wǎng)站又再次關(guān)閉了。

最后發(fā)現(xiàn),他們分解數(shù)據(jù)庫的過程是根本原因,并通過避免對(duì)數(shù)據(jù)庫的某種 “慢查詢” 的方式,保持了網(wǎng)站正常運(yùn)行。此外,他們還升級(jí)了基礎(chǔ)設(shè)施以加快查詢速度。

教訓(xùn):分解數(shù)據(jù)庫可能會(huì)導(dǎo)致性能問題,甚至中斷,但是隔離關(guān)鍵問題并首先解決它們,這樣就可以更快地恢復(fù)服務(wù)。

IRS:遷移到云端

美國國稅局 (IRS) 并不以其技術(shù)實(shí)力而聞名。畢竟,它的工作是收稅,而不是推動(dòng)技術(shù)創(chuàng)新。

這也許就是處理納稅申報(bào)表的 IRS 應(yīng)用程序在 2016 年失敗的原因。一個(gè)處理數(shù)百萬美國人納稅申報(bào)的計(jì)算機(jī)服務(wù)器上的電壓調(diào)節(jié)器于 2 月 3 日開始出現(xiàn)故障。當(dāng)一名技術(shù)人員努力解決這個(gè)問題時(shí),備用電壓調(diào)節(jié)器也出現(xiàn)了故障。

事實(shí)上,40 年來,美國國稅局一直在嘗試更新其主要計(jì)算機(jī)系統(tǒng),但都失敗了。之后,還陸續(xù)爆出 “擁有 60 年歷史的 IT 系統(tǒng)因新硬件而在納稅日崩潰”、“計(jì)算機(jī)故障導(dǎo)致數(shù)千名納稅人收到錯(cuò)誤信息” 等新聞。

教訓(xùn):在管理基礎(chǔ)架構(gòu)時(shí),很多事情都可能出錯(cuò)。解決方案是將基礎(chǔ)架構(gòu)遷移到云端。今天,云是運(yùn)行應(yīng)用程序最可靠的方式。將設(shè)置和維護(hù)物理硬件的工作交給云供應(yīng)商,這樣就可以專注于最重要的事情 —— 運(yùn)行和改進(jìn)應(yīng)用程序。

Instapaper:了解您的云供應(yīng)商

Instapaper 是一款離線閱讀應(yīng)用。最初,它以 Softlayer 作為其云供應(yīng)商,但被 betaworks 公司收購后,轉(zhuǎn)移到了 AWS。但是團(tuán)隊(duì)并不熟悉 AWS。

2017 年 2 月,Instapaper 出現(xiàn)了長時(shí)間的服務(wù)中斷。開發(fā)團(tuán)隊(duì)注意到, AWS RDS 上的一個(gè) MySQL 數(shù)據(jù)庫空間不足,深入挖掘之后發(fā)現(xiàn), 原來 2014 年 4 月之前創(chuàng)建的所有 RDS 數(shù)據(jù)庫的大小均限制為 2TB,而他們存儲(chǔ)用戶書簽的數(shù)據(jù)庫已經(jīng)達(dá)到了這個(gè) 2TB 的限制。

在與 AWS 團(tuán)隊(duì)進(jìn)行多次討論并獲得 Pinterest 開發(fā)人員的一些幫助后,Instapaper 使用 Aurora 對(duì)現(xiàn)有數(shù)據(jù)進(jìn)行索引,并在具有更大大小限制的新實(shí)例中創(chuàng)建新數(shù)據(jù)庫。最終,服務(wù)恢復(fù)了。

教訓(xùn):需要了解使用的云供應(yīng)商的限制。如果您使用多個(gè)云供應(yīng)商,或者您從一個(gè)提供商遷移到另一個(gè)提供商,則尤其如此。

寫在最后:

無論是數(shù)據(jù)庫、硬件基礎(chǔ)設(shè)施、遺留代碼還是云供應(yīng)商限制,在實(shí)踐 DevOps 時(shí),可能會(huì)蹦出無數(shù)種你想不到的問題。不過,我們可以從失敗案例中習(xí)得一些經(jīng)驗(yàn)教訓(xùn),盡量避免出現(xiàn)這些問題。比如,IRS 如果能更早地將基礎(chǔ)架構(gòu)遷移到云端,就不需要每年花費(fèi)數(shù)千萬美元來解決各種本不應(yīng)該出現(xiàn)的問題。如果 Knight Capital 能正確地使用自動(dòng)化工具,也不會(huì)至于破產(chǎn)。

事實(shí)上,在項(xiàng)目設(shè)計(jì)階段就要考慮到,使用什么樣的工具或者說平臺(tái)能夠更好地實(shí)現(xiàn)產(chǎn)品功能。如果說有什么平臺(tái)能夠屏蔽基礎(chǔ)設(shè)施的多樣性,配置高級(jí)的訪問權(quán)限,能夠自動(dòng)化聯(lián)動(dòng)測(cè)試、智能預(yù)警,那非 SoFlu 軟件機(jī)器人莫屬了。

SoFlu 軟件機(jī)器人是飛算推出的全自動(dòng)化軟件工程平臺(tái),采用了通用的技術(shù)功能模塊,支持循環(huán)、條件判斷、函數(shù)調(diào)用等組件,用戶只要根據(jù)業(yè)務(wù)邏輯,通過拖拽方式進(jìn)行參數(shù)配置,就能完成編程。而且,平臺(tái)統(tǒng)一了代碼規(guī)范,不依賴人工編碼、審碼,因此可以從源頭上保證代碼高質(zhì)量。總而言之,SoFlu 軟件機(jī)器人通過可視化編程的方式滿足低門檻開發(fā)需求,輸入流程圖即可實(shí)現(xiàn)自動(dòng)開發(fā)。

SoFlu 軟件機(jī)器人業(yè)務(wù)開發(fā)界面

SoFlu 軟件機(jī)器人能解決的不只是開發(fā)問題。事實(shí)上,在軟件項(xiàng)目開發(fā)過程中,風(fēng)險(xiǎn)幾乎無處不在。項(xiàng)目進(jìn)度是否正常、軟件質(zhì)量是否嚴(yán)格把控、技術(shù)是否成熟、系統(tǒng)架構(gòu)是否符合性能指標(biāo)等問題,都會(huì)威脅到軟件的最終交付結(jié)果。有效地識(shí)別、控制和管理風(fēng)險(xiǎn),對(duì)項(xiàng)目的成功起著至關(guān)重要的作用。

而通過 SoFlu 軟件機(jī)器人,一人就能完成軟件開發(fā)、測(cè)試、運(yùn)維一整套流程,不僅提高了開發(fā)和測(cè)試效率,保證了代碼質(zhì)量,還使軟件工程全流程擺脫對(duì)人力的依賴,解決了人才不足的問題。用 SoFlu 軟件機(jī)器人進(jìn)行開發(fā),可以真正實(shí)現(xiàn) “一人一項(xiàng)目,十人抵百人”。

(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )