久久国产精品无码网站,在线天堂免费中文字幕,亚洲成年人av,全黄特一级,亚洲电影成人av99爱色,久久久性生活视频,91免费在线

系統(tǒng)架構(gòu)師

互聯(lián)網(wǎng)架構(gòu)師必須具備的技能

時間:2024-06-09 22:06:28 系統(tǒng)架構(gòu)師 我要投稿
  • 相關推薦

互聯(lián)網(wǎng)架構(gòu)師必須具備的技能

  對于任何一個軟件開發(fā)人員來說,架構(gòu)師都是一個令人向往的角色。就連世界首富比爾蓋茨在2000年卸任公司ceo的同時,也擔任了微軟公司的榮譽角色“首席軟件架構(gòu)師”,可見“架構(gòu)師”這一稱謂的吸引力。那么作為一名互聯(lián)網(wǎng)架構(gòu)師必須具備的技能有哪些呢?小編為大家講解如下,歡迎查看!

  架構(gòu)師是公司的“金領”,有著非常高的收入,很少需要考慮生存的問題,從而有更多的精力思考關鍵技術問題,形成“強者愈強”的良性循環(huán)。部分優(yōu)秀的開發(fā)人員在工作了一定時間后,就要開始考慮自己的未來到底向哪個方向發(fā)展。如果開發(fā)人員的溝通能力強過技術能力,在補充一定的項目管理知識后,可以向技術管理的方向轉(zhuǎn)型。如果其對技術一直很感興趣,而溝通能力也不弱,則可以試著進一步加強技術修養(yǎng),以期向架構(gòu)師的方向發(fā)展,最終“修成正果”。

  那么,到底什么是架構(gòu)師呢?所謂的架構(gòu)師,應該是一個技術企業(yè)的最高技術決策者。他主要負責公司軟件產(chǎn)品或軟件項目的技術路線與技術框架的制訂。好的架構(gòu)師都是善良的獨裁的人,具有很強的技術、良好的寫作能力、良好的口頭表達能力,能夠在各個層次進行溝通。從開發(fā)人員到架構(gòu)師的成長應該是階梯式的,一般來講開發(fā)人員在剛剛開始工作時只能開發(fā)簡單的獨立軟件模塊,慢慢的隨著經(jīng)驗的增長,他開始接觸一些相互之間有信息傳遞的模塊,而后來,他會發(fā)現(xiàn)自己接到的開發(fā)任務已經(jīng)不是一個獨立的單體,這些任務由一些專門的軟件部分組成,可能包含數(shù)據(jù)庫,工作流引擎,消息服務等等各種功能模塊,可能分布在不同的服務器上,所有的部分協(xié)同起來,完成軟件功能。而這時候,體系結(jié)構(gòu)的好壞將直接決定了系統(tǒng)的性能和可擴展性,而就在這時候,這名優(yōu)秀的開發(fā)人員也開始思考架構(gòu)師應該思考的問題了,或者說,他向成長為架構(gòu)師的道路邁出了一大步。

  什么是架構(gòu)師最具價值的技能呢?就是要了解不同的知識,做一個“雜家”或者說“博學家”。當然,如果你的數(shù)據(jù)庫技術非常棒,或者你在工作流引擎方面具有不可超越的專家知識,那也是很不錯的。好的架構(gòu)師有好多都是從專家成長過來的。但是,這不是架構(gòu)師應該做的事情,架構(gòu)師應該做的是了解所有的東西,既了解技術的宏觀面,又了解技術的細節(jié)。真正的架構(gòu)師不僅僅要了解軟件,也要了解硬件,在關鍵的部位使用合適的硬件來取代軟件,可以成倍甚至成百倍的提高整個系統(tǒng)的效率。下面我將會以互聯(lián)網(wǎng)行業(yè)對的架構(gòu)師的要求為例,向大家講解作為架構(gòu)師應該具備的知識。

  互聯(lián)網(wǎng)行業(yè)是當前最激動人心的行業(yè)之一,很多的創(chuàng)新都來自于這個行業(yè),而每一個大型的網(wǎng)站如google,yahoo,myspace等都需要解決一個非常復雜的問題,就是網(wǎng)站的分布式向外擴展(scale out)的問題。解決這個問題,需要最優(yōu)秀的架構(gòu)師對業(yè)務進行剖析,利用軟硬件將網(wǎng)站進行重構(gòu),甚至根據(jù)業(yè)務研發(fā)相應的分布式技術,解決網(wǎng)站復雜的分布式計算的問題。如果你想在這個行業(yè)中成為一名架構(gòu)師的話,需要至少掌握網(wǎng)絡知識,硬件,軟件,網(wǎng)站優(yōu)化等方方面面的知識:

  1.網(wǎng)絡知識

  當前的軟件已經(jīng)絕對不是那種僅僅跑在一臺單機上的孤立應用了。不僅僅是在互聯(lián)網(wǎng)行業(yè),任何一個行業(yè)的軟件,都要求其具有網(wǎng)絡功能。因此,網(wǎng)絡知識是架構(gòu)師必備的知識。我們所說的網(wǎng)絡知識,不僅僅包括tcp/ip,http等互聯(lián)網(wǎng)行業(yè)常用的軟件協(xié)議,也包括網(wǎng)絡規(guī)劃,甚至更具體的說,根據(jù)網(wǎng)站應用所處的地理環(huán)境進行網(wǎng)絡規(guī)劃。比如人們常說:“這世界上最遠的距離不是生與死的距離,而是電信到網(wǎng)通的距離”(笑)如果應用是建立在中國的,就要考慮電信用戶和網(wǎng)通用戶訪問網(wǎng)站的速度應該都比較快才可以。這時候的解決方案可能有多種,比如采用cdn(content delivery network內(nèi)容分發(fā)網(wǎng)絡)使得網(wǎng)站的內(nèi)容發(fā)布到離用戶最近的服務器,又可以采用把服務器放在一些所謂的雙線機房中,甚至將幾種方案結(jié)合起來使用。這些都統(tǒng)統(tǒng)歸到網(wǎng)絡知識中。做為公司的架構(gòu)師,要對這些知識都有所了解,才有助于在遇到問題時找到最佳答案。

  2.硬件知識

  了解硬件的極限,是架構(gòu)師的基本功。我見過一些人,他們的眼中軟件硬件都是沒有極限的,需要資源就申請,系統(tǒng)性能下降了就買更高級的設備。然而,硬件的性能有很大一部分取決于i/o設備。而這些i/o設備依靠的都是機械物理運動,這種運動是有極限的。因此當資源訪問量增大到一定的程度時,這種物理運動將成為瓶頸。比如說,在開發(fā)網(wǎng)站的過程中,記錄訪客的狀態(tài)是一件很重要的事情,一般來說可以使用httpsession來記錄。而httpsession的存儲問題將是一個很大的挑戰(zhàn),尤其是多機共享session時,將httpsession存成文件并通過多機共享或網(wǎng)絡備份的方式來解決分布式的問題是常用的方案,然而,架構(gòu)師必須考慮到這種方案是有i/o極限限制的,很難擴展到超過一定規(guī)模的大型網(wǎng)絡。同時,架構(gòu)師應該了解目前最近的硬件發(fā)展是否對軟件系統(tǒng)會造成一定的影響,比如在多核的條件下是否對軟件編程有新的要求,是否會對運行在虛擬機和非虛擬機上的程序有影響等等。

  3.軟件知識

  軟件知識所包含的范圍就更加廣泛了。對于互聯(lián)網(wǎng)行業(yè)來講,架構(gòu)師要了解操作系統(tǒng),數(shù)據(jù)庫,應用服務器等各方面的知識。比如說,如果網(wǎng)站使用的操作系統(tǒng)是linux,就要了解這個linux版本的性能與局限性,比如說最多可以存放的單個文件為多大。有的數(shù)據(jù)庫的數(shù)據(jù)是以單個文件來存放的,雖然我們很

  少見到數(shù)據(jù)庫中的數(shù)據(jù)多到不能再放入一條記錄的情況,但是作為架構(gòu)師,請時刻注意,這種可能性是有的。而且如果你有幸在一家高速成長的互聯(lián)網(wǎng)企業(yè)中,而你所負責的應用又沒有經(jīng)過優(yōu)化的話,可能你會很快見到這種現(xiàn)象。這種現(xiàn)象的發(fā)生可能是由于操作系統(tǒng)不支持大文件的原因,也可能是數(shù)據(jù)庫不支持大文件。不論如何,架構(gòu)師應該在這種現(xiàn)象發(fā)生之前就把一切都準備好。對數(shù)據(jù)庫中表的拆分是架構(gòu)師應該遇到的另外一個困難。一般來說增加應用服務器比較簡單而增加數(shù)據(jù)庫服務器則是比較復雜的問題,如果一個站點由多個數(shù)據(jù)庫支持,架構(gòu)師需要考慮如何在保證數(shù)據(jù)一致的情況下,讓多個數(shù)據(jù)庫分擔壓力。有些解決方案是將數(shù)據(jù)庫的讀寫分開,使得大多數(shù)的查詢sql不經(jīng)過核心數(shù)據(jù)庫,而只是訪問數(shù)據(jù)庫的副本,但事實上,這種方式也只能維護規(guī)模不大的網(wǎng)站。對于大型的網(wǎng)站來說,把業(yè)務分散到不同的數(shù)據(jù)庫中,只共享必要的數(shù)據(jù),才是合理的提高網(wǎng)站擴展性的解決方案。

  4.其他知識

  作為系統(tǒng)架構(gòu)師,可能還需要對分布式系統(tǒng),負載均衡,網(wǎng)絡安全,數(shù)據(jù)監(jiān)控等等各方面都有所了解。不僅僅是了解理論知識,也要對相關的產(chǎn)品和業(yè)界進展有一定的認識。比如說做負載均衡最好的產(chǎn)品是那種。目前最常用的備份策略是什么,有什么缺點。如何使用緩存,如何做好日志分析等等。

  剛剛談到的是架構(gòu)師需要掌握的知識,然而,冰凍三尺非一日之寒。這個過程需要我們慢慢的積累。如果你已經(jīng)進入到公司進行軟件開發(fā),請時刻關注你所開發(fā)軟件的性能與可擴展性,而不僅僅局限在功能上,時刻想著任何一個簡單的問題:我開發(fā)的模塊如果放在多人并發(fā)的環(huán)境下會怎樣,慢慢的就會有所心得。如果你還是一個在校學生,不要想著自己離架構(gòu)師這個職位還很遙遠。要知道,成為架構(gòu)師的修煉之路是很長的,甚至可以說是終身的,因此早點進入學習狀態(tài),不斷修煉自己。在學校期間學好離散數(shù)學,數(shù)據(jù)結(jié)構(gòu),操作系統(tǒng),編譯原理,體系結(jié)構(gòu),數(shù)據(jù)庫原理等關鍵課程,并積極尋找機會到外面實習,增長自己的工作經(jīng)驗。如果有機會去到一些技術主導的公司中工作,就一定不要放棄這種機會,慢慢就會成長起來。最重要的,你會養(yǎng)成關注技術,勤于思考的好習慣。當有一天你發(fā)現(xiàn)自己對任何技術難題都可以一眼看到其本質(zhì),并能夠?qū)⑵浞纸鉃橐粋個可輕松解決的模塊,你會由衷的感覺到知識給你帶來的快樂,或許那一天,你已經(jīng)是一個架構(gòu)師了。

  拓展:架構(gòu)師必須具備的能力

  1、軟件架構(gòu)的定義:

  軟件架構(gòu)(Software Architecture)也稱之為軟件體系結(jié)構(gòu),它是一組有關如下要素的重要決策:軟件系統(tǒng)的組織,構(gòu)成系統(tǒng)的結(jié)構(gòu)化元素,接口和它們相互協(xié)作的行為的選擇,結(jié)構(gòu)化元素和行為元素組合成粒度更大的子系統(tǒng)方式的選擇,以及指導這一組織(元素及其接口、協(xié)作和組合方式)的架構(gòu)風格的選擇。換句話說,軟件架構(gòu)實際上是對系統(tǒng)整體結(jié)構(gòu)設計的刻劃,系統(tǒng)架構(gòu)師是做全局的、整體的把握工作。架構(gòu)的組成與決策是架構(gòu)設計的兩個基本概念。架構(gòu)=>藍圖+規(guī)則+解決方案。

  軟件架構(gòu)是一個認識事物的過程:原型、發(fā)現(xiàn)、改進、再發(fā)現(xiàn)、再改進,這是軟件開發(fā)的必由螺旋。

  2、架構(gòu)師成長路線圖:

  系統(tǒng)架構(gòu)師已經(jīng)不僅僅是技術精湛的技術專家,他需要與業(yè)務團隊緊密合作,并且精通市場、業(yè)務與管理。從上升趨勢來說,可以有三個層面的路線圖:第一個層面,要關注系統(tǒng)思考。在這個層面,重要的不僅僅是掌握設計的知識點,而是更重視分析能力、創(chuàng)新思維能力的提升,需要更廣闊的思路,這方面的空間相當非常大。這是第一層面的能力基礎。第二個層面,要關注總結(jié)和指導,思維空間要轉(zhuǎn)向群體。如何把已有的經(jīng)驗總結(jié)出來,并讓這種智力資產(chǎn)真正發(fā)揮作用?成為架構(gòu)師上升第二層面的能力基礎。第三個層面,要提升自身的全面修養(yǎng)。我們必須引發(fā)自己思維方式的變革,要培養(yǎng)組織力、領導力、創(chuàng)新力以及擁有激情,這是架構(gòu)師上升第三層面的能力基礎。

  要看到自身的弱點,思路要寬,多思考

  架構(gòu)師并不是一個普通的技術人員,他對設計站的角度更高,需要的知識和能力結(jié)構(gòu)更復雜,他需要具有其他人所沒有的思想、眼光和感知世界的方法,必須突破已有的思維模式和行為模式,突破長期束縛自己的思維瓶頸,才可能達到自己從未達到過的高度。

  架構(gòu)師要養(yǎng)成每項工作都記錄并分析的好習慣,以形成更扎實的工作風格。在每個項目完成都需要進行總結(jié)。

  3、架構(gòu)師要保持自己的競爭力:

  架構(gòu)師必須關注今天的IT技術、商業(yè)模式變革以及由此引發(fā)的軟件產(chǎn)業(yè)變革的重大趨勢,勤于思考并迎接新的挑戰(zhàn)。一個人最核心的競爭優(yōu)勢是學習能力。架構(gòu)師作為技術層面資深的一群,為了保持競爭力需要注意以下幾個問題:

  (1)、保持激情:關鍵是信念。激情源自于信念,有了信念才會主動挑戰(zhàn)自我,迎接挑戰(zhàn)才會有激情,有了激情工作才會更有意思。

  (2)、創(chuàng)新思考:在工作中多嘗試一些新方法,是維持自我能力的重要手段。

  (3)、逆向思維:逆向思維指的是使用與正常思路相反的思維方式去分析同一個問題,使思路多樣化。逆向思維能夠幫助人們沖破傳統(tǒng)思維的束縛,克服慣性思維方式。從反方向考慮問題往往會取得出人意料的結(jié)果。

  4、架構(gòu)師要關注軟件的新趨勢:

  目前傳統(tǒng)軟件危機暴露出的問題還未真正解決,新的挑戰(zhàn)卻已擺在眼前。在人們不斷思考面臨的挑戰(zhàn)以及對策中,形成了一些新的趨勢,包括:

  (1)、軟件質(zhì)量以服務質(zhì)量形式展現(xiàn),對質(zhì)量的投資可獲得更高的投資回報。

  (2)、軟件過程擴展到用戶,希望更多的用戶深入?yún)⑴c到軟件全生命周期。

  (3)、功能至上遠遠不夠,用戶體驗得到空前重視。

  (4)、系統(tǒng)集成模式面臨變革,軟件、服務、終端、IT基礎設施將形成更緊密的價值體系。

  (5)、研發(fā)要更多關注非功能性需求,如安全性質(zhì)量、性能、可靠性、可擴充性、可伸縮性、可用性等,從而不斷提高軟件的價值! ≈R就是力量==>信息就是力量。

  架構(gòu)并不完全是概要設計。概要設計還是停留在圖紙上,而架構(gòu)必須證明這個技術路線可行,并且能夠證明大多數(shù)質(zhì)量風險已經(jīng)得到了解決。

  5、所謂設計就是解決問題的過程:

  軟件設計是一種思維活動,設計的魅力在于破解難題,通過直面問題的挑戰(zhàn),以及對相應解決方案的仔細推敲,才可能設計出真正有靈性的產(chǎn)品。

  (1)、設計不具普遍性:軟件設計很少具有普通性,不同的目標需要不同的設計來支持。

  (2)、做出權衡:所謂軟件設計,本質(zhì)上就是在質(zhì)量、成本、時間以及其它各種因素之間做出權衡。

  (3)、記錄設計的理由(設計文檔)。多關注各種方面的架構(gòu)設計。

【互聯(lián)網(wǎng)架構(gòu)師必須具備的技能】相關文章:

采購主管必須具備的能力09-07

中層領導必須具備的能力02-26

網(wǎng)絡營銷必須具備的能力06-17

工作中必須具備的心態(tài)04-21

辦公文秘必須具備的素養(yǎng)12-02

車間主任必須具備的能力03-06

企業(yè)總裁必須具備的三種能力03-15

主持人的必須具備的基本功04-24

客服需要具備哪些素質(zhì)和技能04-24

中層管理人員必須具備哪些能力01-14