文章詳情頁
對Oracle的Web運(yùn)營所進(jìn)行的幕后觀察
瀏覽:4日期:2023-11-14 10:50:13
既要治理對內(nèi)的應(yīng)用程序又要治理對外的 Web 站點(diǎn),這種多樣性的工作使得 Steve 的團(tuán)隊(duì)擁有另人驚異的、全方位的、使用 Oracle 產(chǎn)品的、綜合的 Web 經(jīng)驗(yàn)。Steve 說,“我們已經(jīng)部署了 OracleAS Container for J2EE (OC4J)應(yīng)用程序、Web 高速緩存、移動服務(wù)、文件代理、門戶—您可以講出這些名詞,而我們可能已經(jīng)將這些東西應(yīng)用到生產(chǎn)環(huán)境中服務(wù)于大量的用戶并要求這些應(yīng)用程序具有最好的可視性和可靠性。” 但是無論是一個(gè)內(nèi)部的應(yīng)用程序、一個(gè) Web 站點(diǎn)還是一項(xiàng)托管服務(wù),對于 Steve 的團(tuán)隊(duì),每種情況都面臨著相同的商務(wù)問題。“它總是具有很高的可用性。多年以來,我們發(fā)現(xiàn)我們正在對內(nèi)部或外部的用戶提供服務(wù)并不會對它產(chǎn)生什么影響。同樣的規(guī)則也適用于我們?nèi)绾蝸斫咏?shí)現(xiàn)高的可用性。” 而且為一家業(yè)界領(lǐng)先的、全球性的軟件公司工作,也給我們帶來了一些不平常的挑戰(zhàn)。Steve 說,“Oracle 是時(shí)刻變化的環(huán)境,在這里存在很多偉大的思想,一個(gè)嶄新的應(yīng)用程序可能在第二天就過時(shí)了。我們在 Global IT 中的工作就是確保 Oracle 在這些站點(diǎn)所部署的應(yīng)用程序是穩(wěn)定的,并運(yùn)行得很好。從本質(zhì)上講,我們提供硬件和軟件,來公司的站點(diǎn)和部署服務(wù)。 開始著手預(yù)備并加馬上運(yùn)行起來 對于 Steve 的團(tuán)隊(duì),部署新應(yīng)用程序的過程是一門藝術(shù)也是一門科學(xué)。Steve 團(tuán)隊(duì)要與研發(fā)人員,以及 Oracle 內(nèi)部的設(shè)計(jì)師、網(wǎng)絡(luò)組、數(shù)據(jù)中心團(tuán)隊(duì),甚至是采購人員進(jìn)行大量的協(xié)調(diào)工作。下面 Steve 將解釋這一過程: “一旦有一個(gè)新的研發(fā)項(xiàng)目需要我們來進(jìn)行部署,就會牽涉到許多部門。就象畫畫一樣,我們在 Global IT 就是一塊空白的畫布。開發(fā)團(tuán)隊(duì)可以向我們提供所有的顏料和畫筆。然后我們就將不同的部分整合在一起形成一幅畫。我們從網(wǎng)絡(luò)連接開始,這樣我們就可以將所需要的新服務(wù)器接入到 Oracle 的主干網(wǎng)中。 “然后我會與采購和運(yùn)作部門相互配合來選購最適合于該項(xiàng)目的服務(wù)器。我還會與 Global IT 中的體系結(jié)構(gòu)組相互配合來確保我所要購買的服務(wù)器能夠滿足新應(yīng)用程序的需要并能被我們現(xiàn)有的基礎(chǔ)架構(gòu)所支持。 “然后我們就可以啟動該項(xiàng)目了。我與設(shè)備部門相互配合以在數(shù)據(jù)中心獲得空間來放置我的服務(wù)器。我們搭建網(wǎng)絡(luò),放置硬件,并將其放在架子上進(jìn)行固定。只有一切都搭建好了,才會把磁盤—操作系統(tǒng)和新服務(wù)—交給我。此時(shí)我需要將小組中的其他成員召集到一起。” 之后 Steve 的團(tuán)隊(duì)就要與開發(fā)人員緊密合作,通常包括測試項(xiàng)目,其中他們構(gòu)建了實(shí)際的服務(wù)并將其應(yīng)用到將在部署中使用的硬件中。 Steve 說,“從這開始,我們將與其他部門緊密合作—比如治理 Oracle 互聯(lián)網(wǎng)目錄 (OID) 的部門和單點(diǎn)登錄服務(wù)器(假如需要調(diào)用的話)。我們與郵件團(tuán)隊(duì)相互配合來確保我們能夠連接到郵件服務(wù)器,且不會比我們事先計(jì)劃增加太大的負(fù)載量。然后,我們就會在臨時(shí)環(huán)境中展開全面的測試,然后再將其應(yīng)用到產(chǎn)品中。” 一旦完成以上所有的工作,Steve 的團(tuán)隊(duì)就將該項(xiàng)目轉(zhuǎn)換到維護(hù)模式,處理補(bǔ)丁和發(fā)現(xiàn)問題。“我們首先分階段進(jìn)行全面測試,確保每一步中的每個(gè)修補(bǔ)程序都是好的,然后將其應(yīng)用到產(chǎn)品中。” 按照這種方式指導(dǎo)此過程就是將高可用的、高性能的服務(wù)部署到終端用戶的業(yè)務(wù)總目標(biāo)。OTN 移植項(xiàng)目 — 案例研究 當(dāng) Oracle 決定OTN 需要重新進(jìn)行架構(gòu)以獲得更好的可用性和性能時(shí),就看準(zhǔn)了門戶。但是,Steve 的團(tuán)隊(duì)碰到的不僅僅是技術(shù)上的問題。“OTN 擁有許多 OC4J 應(yīng)用程序、可定制應(yīng)用程序和許多基于技術(shù)的內(nèi)容服務(wù),” Steve解釋說。“沒有一個(gè)是出自數(shù)據(jù)庫的。因此,要轉(zhuǎn)換成一個(gè)門戶,使其中的一切信息都來源于數(shù)據(jù)庫—并通過數(shù)據(jù)庫對所有內(nèi)容進(jìn)行治理— 這不只是對體系結(jié)構(gòu)進(jìn)行轉(zhuǎn)換,對于許多內(nèi)容的所有者來說,這還將成為一種文化的轉(zhuǎn)換。 Steve 的團(tuán)隊(duì)最終確定實(shí)施這一項(xiàng)目的最佳方式就是按從前端到后臺的方式進(jìn)行。“最終目標(biāo)就是要將 OTN 移植到門戶上。但是我們還希望運(yùn)行在 Linux 上的 OTN 可以真正證實(shí) Oracle 的 Linux RAC 解決方案是可行的。基于這一點(diǎn),我們希望新的 OTN 的性能即使不能超越現(xiàn)有 OTN 的性能,也不能比現(xiàn)在差。為此使用現(xiàn)有 OTN 的性能指標(biāo)數(shù)值,我們可以向后對比的方式來工作,以確定什么是新體系結(jié)構(gòu)所需要的。” 明確性能目標(biāo)幫助 Steve 的團(tuán)隊(duì)架構(gòu)了這個(gè)新的門戶解決方案,但這還不能稱作是真正的科學(xué)。“前端是 Web 高速緩存,以及 HTTP 服務(wù)器和門戶服務(wù)器。其后則是位于兩節(jié)點(diǎn) RAC 集群上的數(shù)據(jù)庫服務(wù)器,為門戶數(shù)據(jù)庫提供服務(wù)。” 除了產(chǎn)品的體系結(jié)構(gòu)以外,Steve 確保有一個(gè)階梯層作為開發(fā)的一部分。“假如沒有臨時(shí)分區(qū),我們就寸步難行。”,他這樣解釋說。“這是我們的必由之路,因?yàn)樵谀氵M(jìn)行測試和部署的時(shí)候,你會想要將可能出錯(cuò)的地方劃定在一個(gè)區(qū)域內(nèi),并進(jìn)行驗(yàn)證,得出結(jié)論。”例如,你可能認(rèn)為在 Web 高速緩存中調(diào)整一個(gè)參數(shù)會出現(xiàn)問題,但最后卻發(fā)現(xiàn)這樣做是不對的。為了回過頭來再次進(jìn)行觀察,同時(shí)又不想中斷生產(chǎn),那就必須將臨時(shí)分區(qū)作為系統(tǒng)的一部分。”
圖 1:通過利用 Oracle 應(yīng)用服務(wù)器和 Oralce 數(shù)據(jù)庫獲得高可用性正如上圖所示,假如某個(gè)集群上的某個(gè)節(jié)點(diǎn)發(fā)生故障,客戶請求就會透明地路由到該集群中的另一個(gè)節(jié)點(diǎn),而終端用戶從來不會知道曾經(jīng)出現(xiàn)過故障。這樣一來,在 Oracle 應(yīng)用服務(wù)器上部署的任何商務(wù)應(yīng)用程序都會保持正常運(yùn)轉(zhuǎn)而不會中斷,這就確保了 0 計(jì)劃內(nèi)的和 0 計(jì)劃外的宕機(jī)時(shí)間。正如可以從上圖中看到的那樣,Oracle 應(yīng)用服務(wù)器在中間層支持三個(gè)層次的集群:Web 服務(wù)器、J2EE 服務(wù)器和 Web 高速緩存集群。此外位于 OracleAS 頂層的應(yīng)用程序可以利用 Oracle RAC 具有高可用性特性的優(yōu)勢,利用由 Oracle RAC 治理的動態(tài)內(nèi)容來加強(qiáng)保護(hù) 利用 Oracle 產(chǎn)品套件(Oracle 應(yīng)用服務(wù)器和 Oracle 數(shù)據(jù)庫)中構(gòu)建的高可用性,就有可能配置和架構(gòu)一個(gè)解決方案使這些特性發(fā)揚(yáng)光大。使用 Dell/Linux 解決方案的成本是非常高效的,因此只需在高端服務(wù)器解決方案上花費(fèi)很小的成本就可以實(shí)現(xiàn)。這就使得 Global IT 能夠獲得更多的服務(wù)器來支持故障切換或是備用解決方案,這樣一來在構(gòu)建高可用解決方案的同時(shí)還可以兼顧到靈活性的提高。 Steve 經(jīng)常會用到的另一個(gè)竅門就是創(chuàng)建他自己的 psuedo 網(wǎng)格環(huán)境。 “我們有雙倍的額外服務(wù)器可以使用,已經(jīng)配置好并預(yù)備就緒,一旦需要就可以運(yùn)轉(zhuǎn)起來,”,他這樣解釋說。這些額外的服務(wù)器所能作的不僅僅是備份,在網(wǎng)絡(luò)流量突增的時(shí)候,這些服務(wù)器可以真正地部署進(jìn)來。“就像在 OracleWorld 的前一周,我們需要更優(yōu)的性能,于是我們加入了一些額外的服務(wù)器,并在使用高峰期間,提供了比 OTN 期望水平更高質(zhì)量的服務(wù)。一旦點(diǎn)擊率下降,我們就可以將這些服務(wù)器撤出,讓它們?nèi)ネ瓿善渌蝿?wù)。” 在需要“額外的機(jī)箱”只以及體系結(jié)構(gòu)不同部分需要進(jìn)行交換時(shí),廉價(jià)的 Linux 選項(xiàng)才是最適用的。通常認(rèn)為使用更廉價(jià)的軟、硬件,比如 Lintel 機(jī)箱,就意味著需要更多的軟、硬件治理,而且與昂貴的 Sun機(jī)箱相比很可能會存在一些性能上的問題。事實(shí)讓 Steve 明白這種簡單的推理并不總與事實(shí)相符。 Steve 說,“使用 OTN 之前的體系結(jié)構(gòu),我們有四個(gè) Sun 機(jī)箱來運(yùn)行 Web 高速緩存,還有四個(gè) Sun 機(jī)箱運(yùn)行 AIS 服務(wù)器。我們用三個(gè) Linux 服務(wù)器來替換這八個(gè) Sun 服務(wù)器,結(jié)果我們即使沒能獲得更好的性能也至少獲得了同等的性能。”據(jù) Steve 說,在成本方面更沒有爭議。“我還可以為每個(gè) Solaris 服務(wù)器買 6 個(gè) Lintel 服務(wù)器。” 但是在選擇日常使用的硬件和操作系統(tǒng) (OS) 時(shí),成本就不再是我們唯一要考慮的。性能也極為重要,而且了解如何去診斷并解決性能衰退的問題就是架構(gòu)一個(gè)好的部署方案的要害。熱點(diǎn)和瓶頸 在獲得優(yōu)化的性能水平的過程中,最主要的一個(gè)挑戰(zhàn)就是在出現(xiàn)熱點(diǎn)時(shí)能夠正確地定位這些熱點(diǎn)。這并不像聽起來那么輕易。Steve 說,“非凡是當(dāng)你擁有一個(gè)三層體系結(jié)構(gòu)的時(shí)候。這個(gè)熱點(diǎn)可能是 Web 高速緩存;可能是門戶;可能是數(shù)據(jù)庫;也可能是這三層中的任意一層上的 OS。這個(gè)熱點(diǎn)還可能是網(wǎng)絡(luò)。”
圖 2:otn.oracle.com 的性能這是來自Keynote 系統(tǒng)為期 1 個(gè)月的評測結(jié)果。Keynote 系統(tǒng)從萬維網(wǎng)的評測代理對 Oracle 的網(wǎng)站性能進(jìn)行了評測。這一服務(wù)幫助我們來診斷全球 Oracle 技術(shù)網(wǎng)的問題。 即使在確定了位置以后,要想進(jìn)一步知道引起熱點(diǎn)的確切原因都是一件令人頭痛的事。其他一些問題的邊緣效應(yīng)都可能引起熱點(diǎn)。Steve 解釋說,“例如,可能會找到某個(gè)網(wǎng)絡(luò)的熱點(diǎn),但是真正的原因可能是因?yàn)槟硞€(gè)服務(wù)器向網(wǎng)絡(luò)接口推送了太多的信息。甚至可能是一些非常簡單的原因,比如說網(wǎng)絡(luò)接口限制為 10 兆之下而不是 100 兆。”Steve 提醒設(shè)計(jì)師一定不要忽視這些簡單的原因。 此外,還有一些工具可以幫助設(shè)計(jì)師來診斷熱點(diǎn)和瓶頸。廠商提供的工具經(jīng)常是非常有用的,而且現(xiàn)有還有一些更為成熟的開發(fā)源代碼可以用。Oracle 的企業(yè)治理器就有很優(yōu)秀的評測能力。


標(biāo)簽:
Oracle
數(shù)據(jù)庫
排行榜
