架構師是這樣煉成的

隨着軟件行業的發展,軟件人才也在不斷地細分。以前,他們被統稱爲軟件開發工程師。而現在,系統分析員、配置管理員、測試工程師,新興的崗位名稱不斷出現。其中,軟件架構師這一角色的重要開始日益凸顯。

    對於每一個軟件開發人員,架構師都是一個令人嚮往的角色,它是能力與高薪的代名詞。就連軟件行業的傳奇比爾蓋茨在2000年卸任公司CEO時,也擔任了微軟公司的榮譽角色“首席軟件架構師”,可見“架構師”這一稱謂的吸引力。

    而架構師也絕非簡單寫寫代碼就能當上的,它需要從業經驗的積累和技術知識的融會。架構師成爲目前很多軟件企業急需的人才,特別是對一些大型軟件產品和項目的開發,這一角色顯得更爲關鍵。

    由於缺乏好的軟件架構師導致項目失敗的例子不勝枚舉。如何才能成爲一名合格的、進而成爲一名優秀的軟件架構師呢?ITPUB借SOA標準研討會之機採訪了Tibco資深架構師林偉炎先生,請他談談對於軟件架構和軟件架構師的認識,談談什麼纔是一個成功的架構,如何避免一個失敗的架構,以及真正的軟件架構師是怎樣煉成的。

    ITPUB: 首先請您介紹一下自己,您的經歷、專長、目前的研究領域。

    林偉炎:我在IT行業已經有十多年的經驗。從程序員,系統分析,開發組長,到架構師,享受過軟件開發的甜酸苦辣(哈!還是甜的比較多)。作爲顧問的角色幫助客戶進行系統架構也已經有超過七年的時間。不能算是專長吧,只是近兩年接觸的項目都與SOA有關,對於SOA,尤其是治理的領域總算有些體會。

    ITPUB:因爲架構師職業的特殊性,他需要與用戶、業務人員、技術人員等多方交流,因此溝通能力是重要且必須的。但是對於大多數程序員來說,他們似乎更擅長與機器對話,而不是與人交流。您如何看待這個難題呢?

    林偉炎:事實上,剛開始的時候,我是很怕作顧問的,因爲常常都要接觸新的客戶,新的問題,新的挑戰。但時間久了,就開始領略作顧問的好處。那就是可以多聽,多看,多接觸,不斷豐富自己的經驗。

    ITPUB:作爲一名資深架構師,請談談您對架構的認識。

    林偉炎:架構這個詞這幾年可能用得比較濫。好像什麼都是架構。我們常聽到的有電腦架構(硬件),應用架構,集成架構,企業信息架構等。因此,要爲架構下一個定義可能很難,但也許並沒有必要。大部分的人說架構的時候,他們都是指向整體的設計方向,部件之間的關係,信息在部件間的流動等,都是考慮整體性,追求一致性,方向與原則。然而,這一切的背後,最重要的還是你的架構到底要解決什麼樣的問題。

    我親眼看過很多架構師他們規劃架構的時候,只是把業界最炫耀的東西放在一起。比如說現在流行Web Service,就乾脆什麼都用Web Service來連接吧。什麼?Web  Service不支持事務嗎?那就不要事務吧。Web  Service傳送效率低嗎?那就要用戶多等一會吧!這樣做就是本末倒置,所有架構背後的真義,就是要解決用戶的問題。在企業的環境裏面,這就是解決業務的問題。要選擇、設計一個架構的時候,這個是唯一要緊的問題。

    ITPUB:那麼您認爲一個成功的架構應該具有哪些特徵呢?要如何避免一個失敗的架構呢?

    林偉炎:在過去幾十年間,市場上出現了很多不同的架構,其中SOA是最炙手可熱的。將IT基礎設施應用到混亂的真實世界向來都是非常有挑戰性的,講求未來概念的架構似乎更難以掌握。因此,我認爲成功的架構,應該能夠讓企業快速回應現實世界,能夠應付意料之外的事件,也可以幫助企業更進一步預測和對應有可能出現的機遇及危機。

    這個架構爲現實世界的挑戰提供了答案,從數據描述的方法與準確性,到影響IT狀況(包括機構內外)的數據異質性,以至爲決策者及與業務有關人士而設,最終希望能讓IT支持人員工作更爲輕鬆的信息展示方法。

    成功的架構必須明白現實世界的問題,及擁有不一致主數據的成本,並提供確保機構內有數據一致性的方法。這個服務爲本的方法,充許多類型IT資產可以更快速重新配置,來對應場需、法規和更快的業務改變。架構的事件處理能力,讓企業能夠在機會和問題發生之前做出預測和對應。另外,這個架構可以將該事件處理能力應用到自已上,按服務水平協議監控和主動管理架構的健康與績效。在基於Ajax的前端,商業智能工具採用與業務相關人士能夠輕鬆瞭解的形式提供信息。

    這個架構的美好在於它真的存在。

    所以,一個成功的架構,就是一個可以解決用戶需求(包括功能和非功能)的架構。當然,還要考慮到可行性與擴展性。其中,擴展性又是最容易出問題及最困難的地方。要做到容易擴展,你就要知道,或者預測到將來用戶需求的變更方向。如果架構師只着重技術的話,要做到這點真的是非常困難。所以從企業架構師的角度來看,他不但要對企業的業務非常瞭解,也必須要了解未來幾年業務發展的方向。SOA的流行事實上就給了我們一個機會去想清楚IT跟業務部門的關係,IT到底只是一個一味追趕業務需求的部門,還是一個業務上的拍檔,彼此互相影響,這將影響到整個企業信息架構的成功。

    ITPUB:您多次談到SOA,那麼SOA對於系統架構的意義和影響何在?在您的理解中,SOA架構的本質是什麼?

    林偉炎:SOA對系統架構的意義極爲深遠,從解決單一問題,到解決整個企業的問題。從以部件爲主,到以企業服務爲主,牽涉到設計思路的改變。也許需求更多的投入在溝通,規劃,設計,基建與組織治理方面。

    很多人說服務的本質就是重用。這種看法不錯,但拿捏不到重點。服務導向的本質應該是更緊密的IT-業務的關聯,更高的服務抽象層次,更強的IT治理,最終達到業務的敏捷性。能達到最後這點,纔是一個真正的面向服務架構(SOA)。

    ITPUB:目前,您或所在團隊是如何開展軟件架構設計工作的?在使用什麼產品或者方法呢?

    林偉炎:要進行軟件架構設計並不特別需要什麼工具,最重要倒是溝通。溝通是爲了兩個原因。第一個是對需求的理解,第二個是把你的設計作推廣,缺一不可。

    第一點比較容易理解,正如前面說過,不清楚需求是不可能設計出成功的架構。第二點則比較容易忽略。老實說,一個企業架構的成功與否就是要看到底這個架構能否落地,個別部門的項目組是否跟從。所以作爲架構師,一定要多聽,多溝通。

    在架構的規劃及設計階段,我發現最有用的工具是工作坊,就是爲了一個特定的目的而把不同部門的人聚集起來一同討論,讓每個受影響的部門都可以充分發表意見。架構師作爲facilitator,必需要有良好的溝通技巧,敏銳的觸覺,以及包容和正面的態度。國內跟國外的架構設計不存在很大的技術差異,只是國內搞技術的人都太注重技術,一般忽略了對業務的關注,對治理及溝通的重視。

    ITPUB:剛纔您提到了Ajax。在今年的JaveOne會議上,Tibco公司也宣佈Ajax消息服務(AMS)計劃,能否詳細介紹什麼是AMS,AMS在SOA架構中將起到怎樣的作用,以及AMS與ESB的異同?

    林偉炎:我們認爲SOA與Ajax會產生最完美的協同效應。兩者獨立演進,但也能同時善用各自的長處。典型的Ajax應用與HTTP服務聯繫,並只會傳送HTML標記或者只是數據的信息,然後在用戶端轉化爲可供閱讀的信息。至於企業服務管道 (ESB) 則是以JMS,或以Rendezvous,或者MQ爲基礎,按不同的供應商而定,來實時移動數據。Ajax Message Server的功用就是連接這兩個世界。

    另外一個ESB的問題就是,它只是消防喉,而不是自來水龍頭。所以你需要把所有時刻改變且大量的即時數據過濾,令它們變成人能夠接收了解的信息。這也正是AMS所能夠做到的。它其實是一個服務器,能夠連接服務器及客戶端,以建立一個即時的HTTP連接,然後作多路傳輸、過濾信息,還會根據用戶應用情況來控制流量。AMS能夠優化由服務器端流向用戶端的即時串流信息。

    ITPUB:最後,請對有志於軟件架構發展的讀者談談,您認爲對於一個架構師,最大的挑戰是什麼?應該如何面對呢?

    林偉炎:作爲一個架構師,最大的挑戰就是要放下自己,不能假設自己什麼都懂,要多聽,多看,多想,多包容。不能只顧技術,也要發展溝通、帶領團隊,以及處理人事關係的技巧。技術只能幫你成爲一個技工,而架構師,就要看你的Soft Skill了。

    感謝林偉炎先生的精彩回答,讓我們在向架構師的征途上又邁進了一步。也請繼續關注我們的架構師訪談系列。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章