您的位置:首頁>科技>正文

甲骨文副總裁談雲未來:雲的落地的確讓人振奮

3月28日, OracleReal World Performance(RWP)團隊在北京廣播大廈酒店成功舉辦了RWP China Tour北京站的技術分享活動! 這是繼2015年8月技術大師 Thomas Kyte歸隱之後, RWP 團隊第一次公開亮相! 會議由ACOUG主辦, 在雲和恩墨的支持以及甲骨文公司的協助之下取得了圓滿成功!

大會期間, Andrew大師和AWR之父Graham接受了記者採訪, 首次對外講述自己的職業生涯和心路歷程, 分享了他們在中國的感受和期待, 並就當前IT系統現狀做了深入分析, 表達了RWP團隊的使命和宗旨, 同時也對廣大技術愛好和追求者給出了中肯的建議和指導。

以下是採訪內容。

記者:ACOUG 小X, 嘉賓: Andrew Holdsworth, Graham Wood

職業生涯和心路歷程

小X:首先歡迎二位再次來到中國, 我想今天現場的朋友, 可能對你們早有所耳聞, 很多朋友對你們事業的成就仰慕已久, 今天也是慕名而來。 不過我們也很想瞭解, 您當時是如何加入Oracle公司, 進而加入RWP團隊的呢?願意跟我們分享一下嗎?

Graham:我當時在一家軟體公司上班,

我們正在做一個專案, 需要使用到資料庫, 我們那時候對資料庫領域的瞭解並不多, 偶然發現了有一個叫Oracle的資料庫, 那時我記得是1984年, 很久以前了。 那時候Oracle並不出名, 剛發佈了第二個版本, 我們的軟體專案就使用了Oracle資料庫。 當我們公司後來需要再次開發這個專案的時候, 我突然有個想法, 我不想再繼續在這裡工作下去了, 我想要學習Oracle資料庫, 學習如何使用SQL語言來管理資料, 於是我就離開了之前的公司加入了Oracle。

小X:加入Oracle的確是不錯的選擇, 雖然當時還不出名, 但如今發展這麼快, 可見您當時所做的決定是非常明智的。 Andrew, 您跟Oracle的淵源是如何開始的呢?

Andrew:我加入Oracle 比Graham晚了兩三年, 但僅僅在那兩三年, Oracle的發展非常快,

兩三年的變化是巨大的, 因此我事實上是加入了一家更大的Oracle公司。 我當時也是在一家軟體公司工作的, 在開發一個應用程式, 當我接觸了Oracle資料庫之後, 我在想, 這門技術在今後的十年裡一定會有很大的發展空間, 於是我也轉向了Oracle。

小 X:您當時因為看到Oracle的前景所以加入, 我可以說這些年來, 您對於工作都是有明確的方向和計畫的嗎?

Andrew:坦白說, 並沒有, 別說這些年, 事實上我可能連我下個星期要做什麼也不是很清楚。

Graham:要一直知道自己的方向和計畫是很難的, 對於我們來說, 當時都是被Oracle技術所吸引, 對於我來說, 更像是一種, 我先在這方面做幾年, 然後看它的發展如何。

小X:事實上Oracle這些年也的確發展的很好

Graham:的確是, 因此過了這麼三十多年,

我還堅持在這個崗位上。

Andrew: Oracle是一家很好的公司, 具有開放, 自由的工作氛圍和企業文化, 如果你有遠大的理想, 想挑戰自己, Oracle會為你提供很好的發展平臺。

小X:嗯, 是的, 有良好的企業文化的確是一件振奮人心的事情。 您在事業上取得巨大的成功, 而您同時擁有豐富精彩的業務愛好和生活, 我想問一下您是怎樣在工作和生活之間找到平衡的呢?

Andrew:這是個好問題, 如果有一天我真的找到了平衡, 我一定會告訴你的!

Graham:我想Andrew和我, 這些年我們是比較幸運的, 因為我們不再像以前那樣經常奔波在客戶前線, 現在客戶的很多問題都是經過我們的團隊處理和審核之後, 有必要的才會提交到我和Andrew這裡, 因此比起以前, 我們就有更多的自由時間,

能夠更好地安排和規劃自己的生活和工作, 從某種程度上說, 雖然我們還沒有找到那份平衡, 但會離平衡更近一點。

Andrew:我覺得還有一點很重要, 就是隨著年齡和閱歷的增加, 你會變得更聰明, 做事會更有效率, 在你年輕的時候, 哪怕你整天都很忙, 可能並沒有做太多的事情, 但你的經驗隨著年齡積累, 做同樣的事情, 漸漸你花的時間會更少, 這樣你就能勻出一些時間做其他的事情。 更有條例有規劃。

Graham:的確是, 我的前任老闆, 經常說一句話, 要更聰明而不是更賣力(Be smarter, but not harder)。 我和Andrew一直在向著這個方向努力。

小X:很多人在職場上是變老了, 但你們, 是變得很好更精彩。 (People get older, you just get better)

小X:你們平時在辦公室待的時間更久呢還是出差多一點?

Graham:這個都是不固定的,得看情況

Andrew:的確不固定。

小X:意思是如果沒有被客戶的突發事件召喚的時候,你們可能就在辦公室更多是嗎?

Graham:可以這樣說,而且我們現在的工作基本上都是一個個小的週期組成,就像過去的十天,我們都在中國,接下來我們會去韓國,基本上我們不在辦公室的時間超過一個月了,所以說經常都是這樣,並不固定。

Andrew:你知道,我管理整個RWP團隊,對於我來說,其實我更喜歡在辦公室,因為這樣我不僅能夠瞭解現在資料庫新開發的應用程式的運行狀況,學習新的知識,同時也能見到我的團隊。 RWP團隊分佈在世界各地,我儘量多的跟中國、歐洲區的團隊成員多見面多交流。 但坦白說,在工作中,我最享受的過程事實上是跟客戶交流他們遇到的性能挑戰和困難,對於我來說,在這種挑戰中尋找方案,不斷成長和進步,是我最喜歡的。當我們和客戶交流的時候,他們會跟我們描述系統遇到了什麼樣的問題,我們去發現問題的根源,並找到能讓系統得到百倍甚至千倍性能提升的方法,所以說,如果是出差的話,我更願意是面向客戶出差,這比做演講和展示有趣的多。這是我工作中比較有趣的部分。

所以簡單來說,我們並不是總是在臺上演講,我們也會花時間研究資料,做模型,也跟客戶有很多的交流和討論。但無論做什麼,我們的目的都只有一個,讓真實世界的IT 系統的性能變得更好。

小X:你們的團隊分佈在各個地方,那你們工作時最常待的地方是哪裡呢?

Graham、Andrew:我們的總部在加州。在加州離三藩市只有20裡的地方,我們都是英國人,如果大家想知道的話,我們都在英國長大,也都是在英國學習的Oracle資料庫,之後才搬到加州的。

小X:這些我會記得跟讀者朋友們說的,我相信我們的女性讀者會比較感興趣!旅行差不多是你們工作甚至是你們生活的一部分,想問一下你們大概知道你們走過多少個國家嗎?

Andrew:哇,這個問題,還真沒有考慮過,我猜想應該是40個左右。

Graham:差不多是40個,最近這十年出差比以前更多了,我想已經超過40個國家了。

小X:很高興能瞭解到這些內容,我想你們在國內的粉絲也一定會很想知道這些。接下來我們來談一下關於RWP 中國之旅的事情吧

堅持分享,RWP中國之旅

Andrew,在您上次的郵件中,您提到RWP現在每個月都會在全球各大洲舉行定期的培訓課程 ,現在是每個洲都有嗎?我之前在網上瞭解到的是北美洲、亞洲和歐洲。另外您所說的課程一般是多長週期的呢?為了所有來自中國的技術愛好者,我很想請您談一下關於你們的分享或者培訓計畫。

Andrew:是的,現在各個洲都有舉行。一般是幾天一個週期的課程。中國是很幸運的,我們在中國區有專門的團隊,我們的工程師可以直接在中國開培訓課,不用擔心語言的問題,這是很大的優勢。同時,我們也正在努力擴大我們培訓的規模,我們會分享更多的視頻,線上測試,這些線上課程允許上課的人可以根據直接的時間安排將課程時間打散,一部分一部分去學習,也不用非要去某個地方,花很長的時間,同時線上課程的好處是可以反復的看和學習,因此我們會加大線上課程的力度,同時,對於線下課程,我們打算做得更專業,更具有針對性。

Graham:是的,線下課程我們會設置更多的動手實踐課,讓人們學到更多實操的東西。

Andrew:我們將會加大線下課程的難度,大家可以先通過視頻課程打好基礎,在對內容有一定的掌握和熟悉之後,再參加我們的線下課程,一定會有更多的收穫。

小X: Graham ,上次您提到了,中國技術從業者的年齡讓您很震驚,這次的感覺呢?還是這樣認為嗎?=

Graham :是的,來到中國見到的技術愛好者,相對年輕很多,這對於我們來說是一種好現象。我覺得這次來中國最大的感受就是,中國這些年真的發展很快,不管是在深圳、杭州還是北京,建築及生活的各個方面,都帶給我很大的震撼,跟我之前來的感覺完全不一樣了。

Andrew:我覺得這很棒!當我們到中國的時候,不只是說參會的技術人員,幾乎到處看到的面孔都是更年輕些,在酒店裡,在機場或者我們的客戶,都是充滿活力的年輕人,讓我覺得整個城市都充滿了正能量!

百倍千倍的性能提升才讓人興奮

Andrew : 事實上我覺得這個問題很有意思,很多人都很關注性能優化的問題,也有很多人會寫相關的文章,但事實上我們常常看到的關於性能優化的文章都是在性能上有很小的提升的那種,比如提升了10%或者多少,很少有人真正談如何大幅度提高系統的性能,我們期望的是人們去探索如何獲得十倍、百倍甚至千倍的性能提升,這才是我們所追求的,然而現實中,人們往往沉迷於獲得小幅度的性能提升。

我們的團隊事實上很小,但是我們一直在致力於做重要的事情,我們的目標是讓系統獲得千倍的性能提升,這才是真正的Real World Performance 團隊的宗旨,但很遺憾的是,很多做運維的朋友並不追求這種卓越的性能提升。 有個現象讓我覺得很不可思議,就是大部分在運維崗位的人,並沒有做真正的性能優化的事情,他們不過是在評估或者說檢測出問題,主要是保障資料庫各方面的功能運行沒有問題,他們並沒有讓資料庫變得更快。我經常會鼓勵人們去勇敢地嘗試,讓你的系統更快,目前看來可能效果還不是那麼好。事實上我們整個團隊都在努力做的事情就是説明人們找到系統中能夠獲得巨大的性能提升的點在哪裡。

Graham:對,是的,要想要獲得較大幅度的性能提升,一定要首先通過資料找到真正影響性能的原因,從全域的角度出發發現系統中在發生什麼。而不是看到一些表面的現象,然後就開始解決,或者到處尋找答案,看看這類問題大家一般用什麼方式處理等等。

小X:您是說要採用自上而下(top-down)的策略?

Graham:是的,一定要有全域的意識,從全域出發才能找到影響性能的真正的根源。我認為這是在做性能優化時,獲得性能提升的關鍵,必須要建立在對根源問題的理解上,而如果不通過資料分析,是不可能有深入的理解的。我們不希望人們不深入鑽研,而只是在猜測。

小X:這可能也是因為很多現實的問題導致,目前在絕大多數企業,運維和開發人員並不能很好地相處,所以很多時候哪怕DBA覺得是代碼的問題,但他們不能決定改代碼,於是他們會選擇從他們的角度出發,看能做哪些嘗試,獲得一點性能的提升。

Graham:是的,你看到現實的情況就是,他們選擇了不要性能的提升。Tom之前也一直說,有些人就是選擇不修改應用程式,他們完全可以修改,因為這是他們自己的應用程式,他們可以修改,但他們選擇了不修改。而是做一些無關緊要的調整,這些調整,根本不可能帶來大的性能提升。

Andrew:是的,這就是現實中的情況,不過我想說,在中國這種現象會好一些。沒有人願意聽到別人說自己的應用程式運行慢,這樣的事情大家會覺得很尷尬很丟臉,說不定他們也是很努力在工作,按照標準在寫代碼,不過是現在資料量變大了,假設資料量是之前的一千倍,而之前的代碼並不適合處理這麼大的資料量,因此性能就很可能下降,事實上這是很正常的事情。但是大家對於這樣的回饋或者說批評都很敏感,對於RWP的工程師來說,最大的挑戰就是如何找到一種合適的方式告訴他們系統有性能問題,但是不會傷害到他們的方式。這真的很難做到。 對於工程師來說,最簡單直接的方式就是把資料直接給他們看,資料會告訴你一切。但哪怕是這樣,在處理的過程中,還是需要經過很多的會議討論和交流,甚至是爭吵,才能讓他們真正接受他們的系統真的是存在問題的。因此我們往往需要通過很多資料,視頻和實驗測試,向用戶真正展示如何正確地修改應用程式,能獲得怎樣的性能提升,最終才能說服他們。

AWR之父首談Oracle世界的DevOps探索

Graham:最近這幾年隨著DevOps的出現,我覺得可能會帶來真正的開發與運維的協同工作,改變當前開發寫代碼,然後隔著牆扔給運維人員,後期在運維中遇到任何性能問題都是運維的責任的現狀。希望通過DevOps他們能夠共同來想辦法提升和維護系統的性能。 我很看好DevOps當前的市場和今後的發展。

小X:雲和恩墨開發了一個 z3 SQL審核軟體,就是基於DevOps的理念,在應用程式的開發、 測試和上線前後的各個階段進行審核,發現有問題的SQL語句,並給出修改建議,或者當找到有問題的SQL之後, 你也可以尋找專家幫忙修改或者尋求更合理更專業的修改建議。

Graham:這個很棒,就像你看到的,在DevOps的理念下,修改代碼的確是更合理的一種解決性能問題的方式。我們期待看到DevOps以後的發展。

小X:DevOps並不是一個新的概念,事實上已經提出來好多年了,我覺得這種理念是廣泛被接受的,只是在實踐上,還需要時間去發揮更大的價值。

Graham:對的,我們有很多客戶也在逐漸接受DevOps的理念,這能夠消除當前系統在做性能優化時遇到的障礙。

Andrew:另外現在有很多的自動化運維工作,DBA的很多工作,比如備份,空間規劃和問題處理,這些都可以自動地實現,這樣DBA就能夠將精力投入到性能、安全、可靠性等更有價值的事情上面,當他們不用再做繁冗重複的事情之後,他們就相當於轉身成為開發者了,因為現在對於他們來說,每一個專案/應用程式,都是全新的,DBA是從頭開始參與的。 事實上,在很多公司都存在這樣的現象,懂SQL的人都是DBA,因此DBA更應該去做開發,寫代碼。 另一方面,同一專案中的開發人員和運維人員應該在一起工作,並享受同樣的工作及分紅待遇,這一點很重要,只有這樣才能加強他們的合作,當他們有同樣的目標,彼此之間沒有隔閡,也不能互相推卸責任的時候,他們才有可能為了系統的目標一起努力。 現實中,目前很多公司都是開發與運維在不同的部門,他們不合作甚至不交流,工作待遇更是有巨大的差異。因此,這些問題的背後存在很多管理和領導的因素在裡面,而不僅僅是技術的問題。

如果能夠讓開發和運維真正合作起來,這樣組織內部的界限就減少了很多,我相信合作的力量,如果開發和運維合作,我相信做事情一定會更高效,效果也會更好。

Graham:剛剛Andrew談到消除DBA面臨的一些來自外部的競爭或者壓力,如果以後IT系統遷移到雲上,DBA現在所做的很多工作都會不再需要手動完成,如果你的系統遷移到了雲上,系統在運行中遇到的問題將會有專門的人來負責,那時候DBA的工作就會偏向于開發DBA,他們會更多地瞭解到應用程式在資料庫中的運行,基於DevOps的理念,他們能夠思考如何讓系統運行得更快更好,而不用再去擔心備份、存儲等這些基本的問題。

甲骨文副總裁表示,雲的落地讓人興奮

Andrew:我們正在努力設計Oracle在雲上的下一個版本,在雲上,很多操作都將更加規範,使用者不能改變,通過使用內置到存儲上的軟體和功能實現,使用者幾乎不能改變。因此,如果你想要提高系統的可靠性,只能修改應用程式,而不是再像以前以前通過硬體或者參數的改變。這樣,性能將會變成更重要的一個問題。在雲上,資料是分很多個層次的,現在很多企業的資料還是在本地的,我對雲是很期待的,因為在雲上,人們將不會再通過平臺的設置或者參數來企圖解決問題,能夠將更多的經歷放在應用程式的開發設計上,通過良好的SQL的書寫獲得10倍百倍甚至千倍的性能提升。 我為此感到興奮,是因為這樣一來,人們終於可以將目光從那些能獲得小的性能提升的事物轉到能獲得巨大性能提升的事物上。所以對於Real World Performance團隊來說,雲的落地的確是讓人振奮的。

小X:所以說,如果企業的IT系統都遷移到了雲上,我想很可能很多企業都不再需要運維DBA了,因為這些運維的事情將以服務的方式被提供,不再需要日常的運維。運維會變得服務化和集中化,當然也會更加規範化。在遇到系統故障或者問題的時候,可能只需要資料服務型的企業比如雲和恩墨來承擔這樣的角色。

Andrew:現在很多運維的工作,的確是很無趣的,因為人們總是在犯同樣的錯誤。如果能夠讓這些工作被自動地完成的話,現在的人力就可以被移動到更有創造性的職位上,發揮更大的價值。他們可能會設計出更好的應用程式,可靠性更高,更安全,不僅對於他們個人的職業生涯來說,是一種改善和提升,同時也能為公司創造更大的價值 。

當人們在工作中能夠更大地發揮創造性時,也會更加享受工作。現在,雲平臺非常的強大,從IO,網路,CPU各個方面都是很完美的,可以說,應用程式沒有任何理由性能不良好。因此,還是說,這樣會將系統的核心關注點引回到設計良好的應用程式,無論從功能、安全性、可擴展性等各方面。我相信這會給企業帶來良好的變化,人們做更有創造性有價值的事情,肯定會給企業帶來更好的效益。

Graham:是的,雲平臺的確有很多優勢,現在系統中存在的關於擴展性的限制也會大大減少,因為正如Andrew所說,這些平臺的硬體是非常強大的。因此現在系統中面臨的問題,如果排除了來自硬體的緣故,開發人員就必須要找到真正的原因並解決掉,這樣設計和開發出來的應用程式也會更加強大。

小X:是的,其實現在在很多企業,對於硬體可能帶來的問題,都有一個誤區,或者說一種不良現象,當系統遇到問題的時候,如果他們找不到真正的原因,或者不願意深入研究去找真正的原因的時候,他們傾向於換硬體,如果他們足夠幸運,他們很可能就獲得了部分的性能提升,這看起來是更簡單的一種獲得性能提升的方式,當然,這種獲得性能的方式並不能帶來太大的提升,而且很快就會遭遇硬體的天花板。

Andrew:我想很多人在遇到真正的性能問題的時候可能都會這樣做,人們並不願意修改自己的系統,他們甚至不願意聽到別人說他們需要修改,因此他們試圖通過換平臺或者移動資料來掩蓋問題,這種現象並不是IT領域特有的,這是很正常的一種人類的反應,比如說一個優秀的賽車手,為了贏得比賽,他肯定會為自己配最好的裝備,如果你並不是一個優秀的賽車手,你可能並沒有完全發揮出你的裝備該有的價值。 但是在IT領域,運維人員並不存在這種競爭來決定誰最優秀,這種能力上的差異從來都是很難定量評價的,因此,在可能的時候他們或選擇找藉口,把系統的問題歸結到硬體的問題、平臺的問題、如果你不找藉口,就相當於是說你承認了你技不如人。 這是我們面臨的很大的一個挑戰,人們會更傾向於逃避問題,而不是去解決問題。對於這種現象,我們也無能無力。 有很多人,明明通過小小的改變就能獲得很大的性能提升,但他們不聽我們的建議,我們也就不再擔心這些人了,因為這是他們的選擇。

Graham:是的,他們選擇不聽我們的建議,我們無能為力。

Andrew:對,是他們自己做的選擇,他們選擇系統這麼慢。

小X:也許這不是他們的選擇,可能是他們老闆的選擇。

Andrew:是的,還是說到剛才的管理的問題。但歸根結底,就是他們選擇了平庸的系統,甚至性能很差的系統,甚至是說在他們整個職業生涯裡,他們都選擇了性能很差的系統。在這些問題中,領導和管理是起了很大作用的。

以資料為核心,打造完美系統

小X:你們在資料庫性能優化方面有豐富的經驗,除了像今天這樣的培訓之外,你們還會通過什麼樣的方式分享你們的經驗呢?

Graham:我們有很多個系列的視頻,也有一些版本是加了中文字幕的,這些視頻裡面,Andrew展示了很多我們這些年我們做的demo,我覺得視頻是一個比較好的傳播和分享方式。

Andrew:我們沒有寫博客,因為現在各種博客太多了,而且寫博客並不是一件簡單的事情,可能需要經常更新,比如說每天。 而且現在很多人寫的博客,品質真的是不敢恭維。 另外一方面,我認為寫博客或者出版書,更是一種自我的提升過程,但是對於問題本身,並沒有太大的意義。對於我,我希望人們能夠瞭解我們的優化策略,能夠獲得良好的系統性能,而不在乎他們是不是認識我。因此我個人並沒有寫博客或者寫書的意願。

小X:有道理,的確寫東西對自己的個人能力提升的作用更大。但我還是覺得這是很好的一種傳播技術的方式,如果是書,人們就可以自由地選擇時間地點學習,也能一遍遍地看直到看懂為止,而且還可以在書上做筆記,我覺得這也是它的一個優點。

Graham:市面上是書太多了,Oracle的書也太多了,事實上我們會更傾向於將這些經驗寫到Oracle的官方文檔裡面去。

Andrew:在Oracle12.2 的官方文檔有專門的一章是講Real World Performance的,那裡才是我們認為應該由我們來寫文檔的最合適的地方,官方文檔的確應該涉及到這些實踐的內容,因此我們不會寫其他的書,而是將自己更多的經驗寫到官方文檔裡面,使得文檔更豐富。

小X:那麼對於那些在客戶的環境中遇到的一些問題,更真實環境下的一些問題,你們怎麼記錄或者分享呢?

Graham:其實差不多針對每一種情景,我們都有對應的demo,通過demo展示了如何正確地處理來獲取性能的提升。因為很多時候,人們都不願意聽我們的建議,我們需要demo和資料去向他們證明為什麼要這樣修改,修改會帶來什麼改變。

Andrew:還有一件很重要的事情,也是我們團隊在做的事情就是設計有價值的工具,人們就可以通過工具的使用來獲得一定的幫助。Graham參與設計過很多的Oracle 的性能監控和優化的工具, 比如AWR,ASH,我們會教人們如何在不同的場景下正確地使用這些工具,人們在使用這些工具之前,首先看到了系統存在需要被優化的問題,通過使用這些軟體能夠更有效率地定位問題,找到系統的根源問題,從而通過恰當的代碼的修改來獲得性能的提升,而不是在猜測中以修改參數等方式來處理。我們在分析AWR報告的時候會發現很多系統存在的問題,有很多問題人們並沒有意識到正在系統中發生。我們甚至能夠通過AWR報告看出運維或者開發人員的個性,處理方式,通過這些報告,我們對於系統的瞭解可能比系統的負責人還要多。我們也在努力創造這些工具更大的價值,找到新的應用場景。AWR已經是很老的一個工具了,但我們現在不僅是利用它來做小的調整,而是通過AWR報告更好地理解應用程式。 對於我們來說,AWR不再是一個簡單的運維工具,而是瞭解開發的一個途徑。

Graham:是的,我們把AWR當做一種瞭解系統架構、應用程式的一種方式,通過在多個客戶系統的經驗,我們很容易就能夠對系統架構有一個清晰的認識。

Andrew:有很多次,當我們的使用者給我們看系統的AWR報告,然後我們發現了一些他們根本沒有意識到的問題,比如說他們的應用程式是如何設計的,有時候當我們問道這些問題的時候,他們會顯得很驚訝,說你們是怎麼知道的,我就會說,我們也遇到過同樣的問題。有時候我們也能看到一些系統潛在的隱患。

Graham:看AWR報告有時候會很有意思,當我們說出系統存在的一些問題之後,開發人員會說,不會的,系統不會存在這樣的問題的,然後DBA就會說,是的,這個問題已經出現好多次了。所以開發人員和DBA的確應該一起工作,共同坐下來看系統到底存在些什麼問題,我們能夠做些什麼區改變。

小X:最後想諮詢您一下,如何才能成為性能優化的專家呢?您有什麼好的建議或者方法可以分享一下嗎?

Graham:我的建議是,以資料為核心展開優化,真實的資料會告訴你系統哪裡存在問題,對於很多想要在性能優化方面有所成就的人,我都會這樣建議他們,在你嘗試解決問題之前,一定要確保找到系統真正的問題。很多人往往在找到問題之前就開始嘗試通過各種途徑解決問題了,這是很有問題的,並且往往不能真正解決問題。另外一點和重要的是,我引用Andrew早上說的一句話,在做性能優化時,一定要抓主要矛盾,從最關鍵的點入手。如果你嘗試解決一個無關緊要的小問題,無論你花了多大的努力,結果都是微乎其微的。你應該把重心放在系統最核心最重要的問題上面,這樣才有可能獲得大幅度的性能提升。

Andrew: Graham 所說的以資料為核心是很關鍵的,一定要抓住系統的主要矛盾。還有一點很重要的是,性能優化並不是一勞永逸的事情,隨時都要密切關注,如果你想要在性能優化方面取得成就,那麼就要保證你所做的專案,你的工作都是跟性能優化相關的,你周圍的環境也很重要。一個人不可能知道所有的事情,沒有人能夠知道所有的事情,因此有好的夥伴和團隊是很重要的。大家可以互相交流探討,一起進步。多努力多動手,多交流,互相學習,一定能夠獲得成長和進步。

感謝Andrew和Graham的分享。在Andrew多年遵循的優化原則有這樣一條,“Your system performance is what you "deserve",他相信,你對於系統的期待和你付出的努力會決定系統的性能。實現百倍千倍的性能提升不是夢想!在他的帶領下,RWP團隊也一直為真實世界的IT系統的性能不斷努力和探索。我們期待今後隨著雲的落地,運維的自動化和智慧化發展,以及DevOps理念的普及,每個人都能擁有性能完美的系統!

感謝ACOUG的付出,感謝雲和恩墨華章出版社和圖靈出版社的贊助、感謝Oracle公司的協助,這場技術交流會對於中國及中國的技術愛好者們意義深遠,我們期待下一次相聚,更期待在我們共同努力下將要迎接的美好未來!

Graham:這個都是不固定的,得看情況

Andrew:的確不固定。

小X:意思是如果沒有被客戶的突發事件召喚的時候,你們可能就在辦公室更多是嗎?

Graham:可以這樣說,而且我們現在的工作基本上都是一個個小的週期組成,就像過去的十天,我們都在中國,接下來我們會去韓國,基本上我們不在辦公室的時間超過一個月了,所以說經常都是這樣,並不固定。

Andrew:你知道,我管理整個RWP團隊,對於我來說,其實我更喜歡在辦公室,因為這樣我不僅能夠瞭解現在資料庫新開發的應用程式的運行狀況,學習新的知識,同時也能見到我的團隊。 RWP團隊分佈在世界各地,我儘量多的跟中國、歐洲區的團隊成員多見面多交流。 但坦白說,在工作中,我最享受的過程事實上是跟客戶交流他們遇到的性能挑戰和困難,對於我來說,在這種挑戰中尋找方案,不斷成長和進步,是我最喜歡的。當我們和客戶交流的時候,他們會跟我們描述系統遇到了什麼樣的問題,我們去發現問題的根源,並找到能讓系統得到百倍甚至千倍性能提升的方法,所以說,如果是出差的話,我更願意是面向客戶出差,這比做演講和展示有趣的多。這是我工作中比較有趣的部分。

所以簡單來說,我們並不是總是在臺上演講,我們也會花時間研究資料,做模型,也跟客戶有很多的交流和討論。但無論做什麼,我們的目的都只有一個,讓真實世界的IT 系統的性能變得更好。

小X:你們的團隊分佈在各個地方,那你們工作時最常待的地方是哪裡呢?

Graham、Andrew:我們的總部在加州。在加州離三藩市只有20裡的地方,我們都是英國人,如果大家想知道的話,我們都在英國長大,也都是在英國學習的Oracle資料庫,之後才搬到加州的。

小X:這些我會記得跟讀者朋友們說的,我相信我們的女性讀者會比較感興趣!旅行差不多是你們工作甚至是你們生活的一部分,想問一下你們大概知道你們走過多少個國家嗎?

Andrew:哇,這個問題,還真沒有考慮過,我猜想應該是40個左右。

Graham:差不多是40個,最近這十年出差比以前更多了,我想已經超過40個國家了。

小X:很高興能瞭解到這些內容,我想你們在國內的粉絲也一定會很想知道這些。接下來我們來談一下關於RWP 中國之旅的事情吧

堅持分享,RWP中國之旅

Andrew,在您上次的郵件中,您提到RWP現在每個月都會在全球各大洲舉行定期的培訓課程 ,現在是每個洲都有嗎?我之前在網上瞭解到的是北美洲、亞洲和歐洲。另外您所說的課程一般是多長週期的呢?為了所有來自中國的技術愛好者,我很想請您談一下關於你們的分享或者培訓計畫。

Andrew:是的,現在各個洲都有舉行。一般是幾天一個週期的課程。中國是很幸運的,我們在中國區有專門的團隊,我們的工程師可以直接在中國開培訓課,不用擔心語言的問題,這是很大的優勢。同時,我們也正在努力擴大我們培訓的規模,我們會分享更多的視頻,線上測試,這些線上課程允許上課的人可以根據直接的時間安排將課程時間打散,一部分一部分去學習,也不用非要去某個地方,花很長的時間,同時線上課程的好處是可以反復的看和學習,因此我們會加大線上課程的力度,同時,對於線下課程,我們打算做得更專業,更具有針對性。

Graham:是的,線下課程我們會設置更多的動手實踐課,讓人們學到更多實操的東西。

Andrew:我們將會加大線下課程的難度,大家可以先通過視頻課程打好基礎,在對內容有一定的掌握和熟悉之後,再參加我們的線下課程,一定會有更多的收穫。

小X: Graham ,上次您提到了,中國技術從業者的年齡讓您很震驚,這次的感覺呢?還是這樣認為嗎?=

Graham :是的,來到中國見到的技術愛好者,相對年輕很多,這對於我們來說是一種好現象。我覺得這次來中國最大的感受就是,中國這些年真的發展很快,不管是在深圳、杭州還是北京,建築及生活的各個方面,都帶給我很大的震撼,跟我之前來的感覺完全不一樣了。

Andrew:我覺得這很棒!當我們到中國的時候,不只是說參會的技術人員,幾乎到處看到的面孔都是更年輕些,在酒店裡,在機場或者我們的客戶,都是充滿活力的年輕人,讓我覺得整個城市都充滿了正能量!

百倍千倍的性能提升才讓人興奮

Andrew : 事實上我覺得這個問題很有意思,很多人都很關注性能優化的問題,也有很多人會寫相關的文章,但事實上我們常常看到的關於性能優化的文章都是在性能上有很小的提升的那種,比如提升了10%或者多少,很少有人真正談如何大幅度提高系統的性能,我們期望的是人們去探索如何獲得十倍、百倍甚至千倍的性能提升,這才是我們所追求的,然而現實中,人們往往沉迷於獲得小幅度的性能提升。

我們的團隊事實上很小,但是我們一直在致力於做重要的事情,我們的目標是讓系統獲得千倍的性能提升,這才是真正的Real World Performance 團隊的宗旨,但很遺憾的是,很多做運維的朋友並不追求這種卓越的性能提升。 有個現象讓我覺得很不可思議,就是大部分在運維崗位的人,並沒有做真正的性能優化的事情,他們不過是在評估或者說檢測出問題,主要是保障資料庫各方面的功能運行沒有問題,他們並沒有讓資料庫變得更快。我經常會鼓勵人們去勇敢地嘗試,讓你的系統更快,目前看來可能效果還不是那麼好。事實上我們整個團隊都在努力做的事情就是説明人們找到系統中能夠獲得巨大的性能提升的點在哪裡。

Graham:對,是的,要想要獲得較大幅度的性能提升,一定要首先通過資料找到真正影響性能的原因,從全域的角度出發發現系統中在發生什麼。而不是看到一些表面的現象,然後就開始解決,或者到處尋找答案,看看這類問題大家一般用什麼方式處理等等。

小X:您是說要採用自上而下(top-down)的策略?

Graham:是的,一定要有全域的意識,從全域出發才能找到影響性能的真正的根源。我認為這是在做性能優化時,獲得性能提升的關鍵,必須要建立在對根源問題的理解上,而如果不通過資料分析,是不可能有深入的理解的。我們不希望人們不深入鑽研,而只是在猜測。

小X:這可能也是因為很多現實的問題導致,目前在絕大多數企業,運維和開發人員並不能很好地相處,所以很多時候哪怕DBA覺得是代碼的問題,但他們不能決定改代碼,於是他們會選擇從他們的角度出發,看能做哪些嘗試,獲得一點性能的提升。

Graham:是的,你看到現實的情況就是,他們選擇了不要性能的提升。Tom之前也一直說,有些人就是選擇不修改應用程式,他們完全可以修改,因為這是他們自己的應用程式,他們可以修改,但他們選擇了不修改。而是做一些無關緊要的調整,這些調整,根本不可能帶來大的性能提升。

Andrew:是的,這就是現實中的情況,不過我想說,在中國這種現象會好一些。沒有人願意聽到別人說自己的應用程式運行慢,這樣的事情大家會覺得很尷尬很丟臉,說不定他們也是很努力在工作,按照標準在寫代碼,不過是現在資料量變大了,假設資料量是之前的一千倍,而之前的代碼並不適合處理這麼大的資料量,因此性能就很可能下降,事實上這是很正常的事情。但是大家對於這樣的回饋或者說批評都很敏感,對於RWP的工程師來說,最大的挑戰就是如何找到一種合適的方式告訴他們系統有性能問題,但是不會傷害到他們的方式。這真的很難做到。 對於工程師來說,最簡單直接的方式就是把資料直接給他們看,資料會告訴你一切。但哪怕是這樣,在處理的過程中,還是需要經過很多的會議討論和交流,甚至是爭吵,才能讓他們真正接受他們的系統真的是存在問題的。因此我們往往需要通過很多資料,視頻和實驗測試,向用戶真正展示如何正確地修改應用程式,能獲得怎樣的性能提升,最終才能說服他們。

AWR之父首談Oracle世界的DevOps探索

Graham:最近這幾年隨著DevOps的出現,我覺得可能會帶來真正的開發與運維的協同工作,改變當前開發寫代碼,然後隔著牆扔給運維人員,後期在運維中遇到任何性能問題都是運維的責任的現狀。希望通過DevOps他們能夠共同來想辦法提升和維護系統的性能。 我很看好DevOps當前的市場和今後的發展。

小X:雲和恩墨開發了一個 z3 SQL審核軟體,就是基於DevOps的理念,在應用程式的開發、 測試和上線前後的各個階段進行審核,發現有問題的SQL語句,並給出修改建議,或者當找到有問題的SQL之後, 你也可以尋找專家幫忙修改或者尋求更合理更專業的修改建議。

Graham:這個很棒,就像你看到的,在DevOps的理念下,修改代碼的確是更合理的一種解決性能問題的方式。我們期待看到DevOps以後的發展。

小X:DevOps並不是一個新的概念,事實上已經提出來好多年了,我覺得這種理念是廣泛被接受的,只是在實踐上,還需要時間去發揮更大的價值。

Graham:對的,我們有很多客戶也在逐漸接受DevOps的理念,這能夠消除當前系統在做性能優化時遇到的障礙。

Andrew:另外現在有很多的自動化運維工作,DBA的很多工作,比如備份,空間規劃和問題處理,這些都可以自動地實現,這樣DBA就能夠將精力投入到性能、安全、可靠性等更有價值的事情上面,當他們不用再做繁冗重複的事情之後,他們就相當於轉身成為開發者了,因為現在對於他們來說,每一個專案/應用程式,都是全新的,DBA是從頭開始參與的。 事實上,在很多公司都存在這樣的現象,懂SQL的人都是DBA,因此DBA更應該去做開發,寫代碼。 另一方面,同一專案中的開發人員和運維人員應該在一起工作,並享受同樣的工作及分紅待遇,這一點很重要,只有這樣才能加強他們的合作,當他們有同樣的目標,彼此之間沒有隔閡,也不能互相推卸責任的時候,他們才有可能為了系統的目標一起努力。 現實中,目前很多公司都是開發與運維在不同的部門,他們不合作甚至不交流,工作待遇更是有巨大的差異。因此,這些問題的背後存在很多管理和領導的因素在裡面,而不僅僅是技術的問題。

如果能夠讓開發和運維真正合作起來,這樣組織內部的界限就減少了很多,我相信合作的力量,如果開發和運維合作,我相信做事情一定會更高效,效果也會更好。

Graham:剛剛Andrew談到消除DBA面臨的一些來自外部的競爭或者壓力,如果以後IT系統遷移到雲上,DBA現在所做的很多工作都會不再需要手動完成,如果你的系統遷移到了雲上,系統在運行中遇到的問題將會有專門的人來負責,那時候DBA的工作就會偏向于開發DBA,他們會更多地瞭解到應用程式在資料庫中的運行,基於DevOps的理念,他們能夠思考如何讓系統運行得更快更好,而不用再去擔心備份、存儲等這些基本的問題。

甲骨文副總裁表示,雲的落地讓人興奮

Andrew:我們正在努力設計Oracle在雲上的下一個版本,在雲上,很多操作都將更加規範,使用者不能改變,通過使用內置到存儲上的軟體和功能實現,使用者幾乎不能改變。因此,如果你想要提高系統的可靠性,只能修改應用程式,而不是再像以前以前通過硬體或者參數的改變。這樣,性能將會變成更重要的一個問題。在雲上,資料是分很多個層次的,現在很多企業的資料還是在本地的,我對雲是很期待的,因為在雲上,人們將不會再通過平臺的設置或者參數來企圖解決問題,能夠將更多的經歷放在應用程式的開發設計上,通過良好的SQL的書寫獲得10倍百倍甚至千倍的性能提升。 我為此感到興奮,是因為這樣一來,人們終於可以將目光從那些能獲得小的性能提升的事物轉到能獲得巨大性能提升的事物上。所以對於Real World Performance團隊來說,雲的落地的確是讓人振奮的。

小X:所以說,如果企業的IT系統都遷移到了雲上,我想很可能很多企業都不再需要運維DBA了,因為這些運維的事情將以服務的方式被提供,不再需要日常的運維。運維會變得服務化和集中化,當然也會更加規範化。在遇到系統故障或者問題的時候,可能只需要資料服務型的企業比如雲和恩墨來承擔這樣的角色。

Andrew:現在很多運維的工作,的確是很無趣的,因為人們總是在犯同樣的錯誤。如果能夠讓這些工作被自動地完成的話,現在的人力就可以被移動到更有創造性的職位上,發揮更大的價值。他們可能會設計出更好的應用程式,可靠性更高,更安全,不僅對於他們個人的職業生涯來說,是一種改善和提升,同時也能為公司創造更大的價值 。

當人們在工作中能夠更大地發揮創造性時,也會更加享受工作。現在,雲平臺非常的強大,從IO,網路,CPU各個方面都是很完美的,可以說,應用程式沒有任何理由性能不良好。因此,還是說,這樣會將系統的核心關注點引回到設計良好的應用程式,無論從功能、安全性、可擴展性等各方面。我相信這會給企業帶來良好的變化,人們做更有創造性有價值的事情,肯定會給企業帶來更好的效益。

Graham:是的,雲平臺的確有很多優勢,現在系統中存在的關於擴展性的限制也會大大減少,因為正如Andrew所說,這些平臺的硬體是非常強大的。因此現在系統中面臨的問題,如果排除了來自硬體的緣故,開發人員就必須要找到真正的原因並解決掉,這樣設計和開發出來的應用程式也會更加強大。

小X:是的,其實現在在很多企業,對於硬體可能帶來的問題,都有一個誤區,或者說一種不良現象,當系統遇到問題的時候,如果他們找不到真正的原因,或者不願意深入研究去找真正的原因的時候,他們傾向於換硬體,如果他們足夠幸運,他們很可能就獲得了部分的性能提升,這看起來是更簡單的一種獲得性能提升的方式,當然,這種獲得性能的方式並不能帶來太大的提升,而且很快就會遭遇硬體的天花板。

Andrew:我想很多人在遇到真正的性能問題的時候可能都會這樣做,人們並不願意修改自己的系統,他們甚至不願意聽到別人說他們需要修改,因此他們試圖通過換平臺或者移動資料來掩蓋問題,這種現象並不是IT領域特有的,這是很正常的一種人類的反應,比如說一個優秀的賽車手,為了贏得比賽,他肯定會為自己配最好的裝備,如果你並不是一個優秀的賽車手,你可能並沒有完全發揮出你的裝備該有的價值。 但是在IT領域,運維人員並不存在這種競爭來決定誰最優秀,這種能力上的差異從來都是很難定量評價的,因此,在可能的時候他們或選擇找藉口,把系統的問題歸結到硬體的問題、平臺的問題、如果你不找藉口,就相當於是說你承認了你技不如人。 這是我們面臨的很大的一個挑戰,人們會更傾向於逃避問題,而不是去解決問題。對於這種現象,我們也無能無力。 有很多人,明明通過小小的改變就能獲得很大的性能提升,但他們不聽我們的建議,我們也就不再擔心這些人了,因為這是他們的選擇。

Graham:是的,他們選擇不聽我們的建議,我們無能為力。

Andrew:對,是他們自己做的選擇,他們選擇系統這麼慢。

小X:也許這不是他們的選擇,可能是他們老闆的選擇。

Andrew:是的,還是說到剛才的管理的問題。但歸根結底,就是他們選擇了平庸的系統,甚至性能很差的系統,甚至是說在他們整個職業生涯裡,他們都選擇了性能很差的系統。在這些問題中,領導和管理是起了很大作用的。

以資料為核心,打造完美系統

小X:你們在資料庫性能優化方面有豐富的經驗,除了像今天這樣的培訓之外,你們還會通過什麼樣的方式分享你們的經驗呢?

Graham:我們有很多個系列的視頻,也有一些版本是加了中文字幕的,這些視頻裡面,Andrew展示了很多我們這些年我們做的demo,我覺得視頻是一個比較好的傳播和分享方式。

Andrew:我們沒有寫博客,因為現在各種博客太多了,而且寫博客並不是一件簡單的事情,可能需要經常更新,比如說每天。 而且現在很多人寫的博客,品質真的是不敢恭維。 另外一方面,我認為寫博客或者出版書,更是一種自我的提升過程,但是對於問題本身,並沒有太大的意義。對於我,我希望人們能夠瞭解我們的優化策略,能夠獲得良好的系統性能,而不在乎他們是不是認識我。因此我個人並沒有寫博客或者寫書的意願。

小X:有道理,的確寫東西對自己的個人能力提升的作用更大。但我還是覺得這是很好的一種傳播技術的方式,如果是書,人們就可以自由地選擇時間地點學習,也能一遍遍地看直到看懂為止,而且還可以在書上做筆記,我覺得這也是它的一個優點。

Graham:市面上是書太多了,Oracle的書也太多了,事實上我們會更傾向於將這些經驗寫到Oracle的官方文檔裡面去。

Andrew:在Oracle12.2 的官方文檔有專門的一章是講Real World Performance的,那裡才是我們認為應該由我們來寫文檔的最合適的地方,官方文檔的確應該涉及到這些實踐的內容,因此我們不會寫其他的書,而是將自己更多的經驗寫到官方文檔裡面,使得文檔更豐富。

小X:那麼對於那些在客戶的環境中遇到的一些問題,更真實環境下的一些問題,你們怎麼記錄或者分享呢?

Graham:其實差不多針對每一種情景,我們都有對應的demo,通過demo展示了如何正確地處理來獲取性能的提升。因為很多時候,人們都不願意聽我們的建議,我們需要demo和資料去向他們證明為什麼要這樣修改,修改會帶來什麼改變。

Andrew:還有一件很重要的事情,也是我們團隊在做的事情就是設計有價值的工具,人們就可以通過工具的使用來獲得一定的幫助。Graham參與設計過很多的Oracle 的性能監控和優化的工具, 比如AWR,ASH,我們會教人們如何在不同的場景下正確地使用這些工具,人們在使用這些工具之前,首先看到了系統存在需要被優化的問題,通過使用這些軟體能夠更有效率地定位問題,找到系統的根源問題,從而通過恰當的代碼的修改來獲得性能的提升,而不是在猜測中以修改參數等方式來處理。我們在分析AWR報告的時候會發現很多系統存在的問題,有很多問題人們並沒有意識到正在系統中發生。我們甚至能夠通過AWR報告看出運維或者開發人員的個性,處理方式,通過這些報告,我們對於系統的瞭解可能比系統的負責人還要多。我們也在努力創造這些工具更大的價值,找到新的應用場景。AWR已經是很老的一個工具了,但我們現在不僅是利用它來做小的調整,而是通過AWR報告更好地理解應用程式。 對於我們來說,AWR不再是一個簡單的運維工具,而是瞭解開發的一個途徑。

Graham:是的,我們把AWR當做一種瞭解系統架構、應用程式的一種方式,通過在多個客戶系統的經驗,我們很容易就能夠對系統架構有一個清晰的認識。

Andrew:有很多次,當我們的使用者給我們看系統的AWR報告,然後我們發現了一些他們根本沒有意識到的問題,比如說他們的應用程式是如何設計的,有時候當我們問道這些問題的時候,他們會顯得很驚訝,說你們是怎麼知道的,我就會說,我們也遇到過同樣的問題。有時候我們也能看到一些系統潛在的隱患。

Graham:看AWR報告有時候會很有意思,當我們說出系統存在的一些問題之後,開發人員會說,不會的,系統不會存在這樣的問題的,然後DBA就會說,是的,這個問題已經出現好多次了。所以開發人員和DBA的確應該一起工作,共同坐下來看系統到底存在些什麼問題,我們能夠做些什麼區改變。

小X:最後想諮詢您一下,如何才能成為性能優化的專家呢?您有什麼好的建議或者方法可以分享一下嗎?

Graham:我的建議是,以資料為核心展開優化,真實的資料會告訴你系統哪裡存在問題,對於很多想要在性能優化方面有所成就的人,我都會這樣建議他們,在你嘗試解決問題之前,一定要確保找到系統真正的問題。很多人往往在找到問題之前就開始嘗試通過各種途徑解決問題了,這是很有問題的,並且往往不能真正解決問題。另外一點和重要的是,我引用Andrew早上說的一句話,在做性能優化時,一定要抓主要矛盾,從最關鍵的點入手。如果你嘗試解決一個無關緊要的小問題,無論你花了多大的努力,結果都是微乎其微的。你應該把重心放在系統最核心最重要的問題上面,這樣才有可能獲得大幅度的性能提升。

Andrew: Graham 所說的以資料為核心是很關鍵的,一定要抓住系統的主要矛盾。還有一點很重要的是,性能優化並不是一勞永逸的事情,隨時都要密切關注,如果你想要在性能優化方面取得成就,那麼就要保證你所做的專案,你的工作都是跟性能優化相關的,你周圍的環境也很重要。一個人不可能知道所有的事情,沒有人能夠知道所有的事情,因此有好的夥伴和團隊是很重要的。大家可以互相交流探討,一起進步。多努力多動手,多交流,互相學習,一定能夠獲得成長和進步。

感謝Andrew和Graham的分享。在Andrew多年遵循的優化原則有這樣一條,“Your system performance is what you "deserve",他相信,你對於系統的期待和你付出的努力會決定系統的性能。實現百倍千倍的性能提升不是夢想!在他的帶領下,RWP團隊也一直為真實世界的IT系統的性能不斷努力和探索。我們期待今後隨著雲的落地,運維的自動化和智慧化發展,以及DevOps理念的普及,每個人都能擁有性能完美的系統!

感謝ACOUG的付出,感謝雲和恩墨華章出版社和圖靈出版社的贊助、感謝Oracle公司的協助,這場技術交流會對於中國及中國的技術愛好者們意義深遠,我們期待下一次相聚,更期待在我們共同努力下將要迎接的美好未來!

Next Article
喜欢就按个赞吧!!!
点击关闭提示