轉(zhuǎn)帖|行業(yè)資訊|編輯:龔雪|2014-12-17 09:52:06.000|閱讀 259 次
概述:我們已經(jīng)給予了數(shù)據(jù)庫充分的關(guān)注,因此它們不應(yīng)成為IT風(fēng)險(xiǎn)因素。但即便為DRP(災(zāi)難恢復(fù)計(jì)劃)準(zhǔn)備預(yù)算、備份機(jī)制并且擁有一流的DBA,數(shù)據(jù)庫仍然造成了重大威脅。這是為什么呢?
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
慧都年終巨獻(xiàn),Aspose系列產(chǎn)品黃金版+白金版享<8折>優(yōu)惠! 截止日期2014/12/31
我們已經(jīng)給予了數(shù)據(jù)庫充分的關(guān)注,因此它們不應(yīng)成為IT風(fēng)險(xiǎn)因素。但即便為DRP(災(zāi)難恢復(fù)計(jì)劃)準(zhǔn)備預(yù)算、備份機(jī)制并且擁有一流的DBA,數(shù)據(jù)庫仍然造成了重大威脅。這是為什么呢?
變得敏捷
在快速發(fā)展、充滿競爭的市場中,如果你的競爭對手能夠更快更好地發(fā)布相關(guān)產(chǎn)品,那就意味著你終將失去市場份額。這也就是為什么公司需要變得敏捷。公司需要更好地掌控信息、更快地制定決策、加快軟件交付以及優(yōu)化質(zhì)量控制。敏捷生來就是處理這些挑戰(zhàn)的。它一方面使組織能夠更快地發(fā)展,并處理不斷變化的需求,另一方面又能確保最佳質(zhì)量。把敏捷概念帶入產(chǎn)品(產(chǎn)品環(huán)境、客戶站點(diǎn)等)當(dāng)中,并使得開發(fā)和運(yùn)營緊密相連,這樣的需求導(dǎo)致了DevOps的誕生。
敏捷和DevOps的出現(xiàn)并未使軟件開發(fā)生命周期(SDLC)的最佳實(shí)踐發(fā)生徹底的改變。因?yàn)樗鼈兪擒浖_發(fā)演進(jìn)的步驟,而不是一次徹頭徹尾的變革。然而,如果你正行駛在敏捷世界的快車道上的話,如何貫徹執(zhí)行這些最佳實(shí)踐將顯得更為重要。此外,自動化是極其重要的,它既提升了總體效率,又減少了頻繁變更和發(fā)布的固有風(fēng)險(xiǎn)。
流程的自動化、持續(xù)集成、持續(xù)交付以及持續(xù)部署的實(shí)現(xiàn),這些實(shí)踐已經(jīng)被反復(fù)證明過了。它們確保了總體流程的高效和可靠性。
對數(shù)據(jù)庫需要特別關(guān)注
基于自動化的可重復(fù)性和可持續(xù)性流程共同驅(qū)動著更安全和更少出錯的部署工作。要想在頻繁變更中立于不敗之地,那就不能依賴于個人能力去記住所有已完成的步驟,也不能依賴于群體能力去識別出可能受到當(dāng)前變更影響的所有范圍。關(guān)鍵在于要盡可能減少人工操作。
但不同于其他軟件組件和代碼(或者是編譯過的代碼),數(shù)據(jù)庫可不只是一堆文件。數(shù)據(jù)庫是你最有價(jià)值的資產(chǎn),它包含了需要妥善保管的業(yè)務(wù)數(shù)據(jù)。因此我們不能將它從開發(fā)環(huán)境拷貝粘貼到測試環(huán)境再到產(chǎn)品環(huán)境。大多數(shù)情況下,數(shù)據(jù)庫的開發(fā)與應(yīng)用代碼(.Net或者Java開發(fā))顯得截然不同:開發(fā)人員和DBA訪問并更改共享資源,即一個中央數(shù)據(jù)庫,而不是工作站上的一個本地拷貝。
數(shù)據(jù)庫開發(fā)和普通應(yīng)用代碼開發(fā)是如此不同,最終導(dǎo)致了孤島的產(chǎn)生。
應(yīng)用開發(fā)人員正勇往直前,他們采用優(yōu)秀的新開發(fā)工具、實(shí)踐敏捷方法、自動化以及持續(xù)交付。相比之下,數(shù)據(jù)庫開發(fā)采用的卻是一個相對不受控制的流程。數(shù)據(jù)庫開發(fā)與其說是工程實(shí)踐,倒更像是一門與整個SDLC流程相隔絕的藝術(shù)。在這里,人們從未共享過開發(fā)工具、流程和最佳實(shí)踐。
數(shù)據(jù)庫作為有價(jià)值的資產(chǎn),極易成為搖晃的車輪從而破壞了整車的平衡(即成為短板)。
數(shù)據(jù)庫變更應(yīng)如何進(jìn)行處理?
我們不應(yīng)該僅僅因?yàn)閿?shù)據(jù)庫構(gòu)造的不同而視它為特別的事物。我們應(yīng)該確保所有團(tuán)隊(duì)、代碼開發(fā)人員、DBA和數(shù)據(jù)庫開發(fā)人員都采用相同的流程。如同在代碼開發(fā)中做的那樣,我們應(yīng)當(dāng)遵循這些已得到證明的軟件開發(fā)最佳實(shí)踐,并將其應(yīng)用到數(shù)據(jù)庫開發(fā)當(dāng)中去。
在整個開發(fā)周期中,為了將數(shù)據(jù)庫造成的風(fēng)險(xiǎn)最小化,我們需要按照以下方式解決問題:
——像Jira這樣的任務(wù)管理解決方案能夠?qū)⑷蝿?wù)(task)、問題(issue)、變更需求(change requirements)或者問題記錄(trouble ticket)與實(shí)際需要完成的工作對應(yīng)起來。它能幫助并引導(dǎo)你朝著明確定義的可交付成果方向進(jìn)行努力,并在之后采用以任務(wù)為中心的視角來部署這些變更。
——使用可以方便地創(chuàng)建虛擬數(shù)據(jù)庫分支。創(chuàng)建開發(fā)環(huán)境將變得輕而易舉,并行開發(fā)也變得觸手可及。生產(chǎn)環(huán)境的虛擬拷貝允許你使用最新產(chǎn)品環(huán)境的真實(shí)數(shù)據(jù)來測試產(chǎn)品部署,而無需處理存儲問題或是真實(shí)的產(chǎn)品風(fēng)險(xiǎn)。
——像這樣的解決方案能夠用逼真、但也是虛構(gòu)的數(shù)據(jù)來替換機(jī)密數(shù)據(jù),而不需要任何編碼。如果為了達(dá)到某種目的(健康保健亦或是財(cái)務(wù)方面的內(nèi)容)或者正好存在一些敏感信息而使得你需要這樣做的時候,它會通過在非產(chǎn)品環(huán)境中替換機(jī)密數(shù)據(jù)的方式從而減少你的“可侵入的足跡”。
>- 通過使用可以加強(qiáng)版本控制并同時追蹤所有變更。一切盡在你掌控之中:誰在做什么事,在哪里,為什么這樣做。它將消除流程外的變更。一旦開發(fā)周期結(jié)束,會將相關(guān)的變更自動部署到集成環(huán)境中去,識別出變更沖突并且合并它們,如果沒有沖突則直接推送到產(chǎn)品環(huán)境中去。
單元測試:建立堅(jiān)固的安全網(wǎng)絡(luò)需要采用以變更為重點(diǎn)的測試方法,同時確保那些變更沒有造成破壞。
——通過采用或者M(jìn)icrosoft平臺的這樣的單元測試工具就可以引進(jìn)數(shù)據(jù)庫單元測試,而無須任何花費(fèi)。
回歸測試:另一種測試方法,它將數(shù)據(jù)庫和應(yīng)用代碼作為一個整體來進(jìn)行測試。
——使用驗(yàn)證那些常見的場景,之后也可以加入對不太常見的場景的驗(yàn)證,這將使你自信滿滿地交付發(fā)布。
——使用部署工具能夠幫助你管理發(fā)布活動和配置,并精心策劃總體流程。
最好的消息是,這些不同類型的解決方案完全可以合作無間。因而可以使用Delphix創(chuàng)建虛擬開發(fā)分支,使用DMsuite屏蔽機(jī)密內(nèi)容,使用Jira管理開發(fā)任務(wù),使用DBmaestro對變更和發(fā)布進(jìn)行版本控制,使用tSQLt或者SQL Developer進(jìn)行自動化測試發(fā)布,以及使用uDeploy來策劃發(fā)布流程,以上所有都能匯總成一個精巧的、自動化的并且安全的流程。
總結(jié)
當(dāng)著手采用最佳實(shí)踐的時候,數(shù)據(jù)庫才展現(xiàn)出真正的挑戰(zhàn)。這也正說明了孤島是如何產(chǎn)生的。開發(fā)部門或許會采用不同的流程來分別對待代碼開發(fā)和數(shù)據(jù)庫開發(fā),或僅在部分變更工作中采用最佳實(shí)踐。
消除主要風(fēng)險(xiǎn)的最佳方法是,不要以技術(shù)眼光去看待這些差異,同時找到解決方法——流程或者工具——去采用并實(shí)施最佳實(shí)踐和自動化。
作為一份具有如此高價(jià)值的資產(chǎn),數(shù)據(jù)庫不應(yīng)成為你的業(yè)務(wù)的短板。
來源:InfoQ
狂歡繼續(xù)!【年終大促 巔峰盛"慧" 】促銷火熱進(jìn)行中 iPhone 6 Plus、 iPhone 6、iPad Air滿就送,還不趕快買買買!
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn