這很技術(shù)丨3分鐘了解Web架構(gòu)小知識(shí)

24 評(píng)論 64807 瀏覽 416 收藏 9 分鐘

很多初創(chuàng)的小團(tuán)隊(duì)并沒(méi)有架構(gòu)師,而且就算有,人家講話的時(shí)候你一臉懵逼也不合適啊。

一開(kāi)始你只是參與一個(gè)小項(xiàng)目,架構(gòu)好像對(duì)你來(lái)說(shuō)并不是什么重要的事,大家討論下就馬上開(kāi)發(fā),一臺(tái)服務(wù)器輕松搞定操作系統(tǒng)+開(kāi)發(fā)語(yǔ)言+應(yīng)用程序+數(shù)據(jù)庫(kù)??墒?,突然有一天你的項(xiàng)目突然由于什么不可知的原因你的項(xiàng)目收到廣泛專注?。?!使用人數(shù)激增!?。?/p>

于是就很容易涌現(xiàn)各種性能問(wèn)題、負(fù)載問(wèn)題,如果處理不當(dāng)也許就錯(cuò)失風(fēng)投良機(jī)了。。。(就快要成為下一個(gè)facebook了!)

所以,你說(shuō)架構(gòu)重不重要!

但是你也許會(huì)說(shuō),我只是一只產(chǎn)品狗子,做架構(gòu)有架構(gòu)師啊~~但是,我要說(shuō)的是,很多初創(chuàng)的小團(tuán)隊(duì)并沒(méi)有架構(gòu)師,而且就算有,人家講話的時(shí)候你一臉懵逼也不合適啊。。。

既然這樣,快點(diǎn)來(lái)看看架構(gòu)的小知識(shí)!??!

(這里講的架構(gòu)并非傳統(tǒng)產(chǎn)品經(jīng)理喜歡研究的那種信息架構(gòu)或者業(yè)務(wù)架構(gòu))

web前端

運(yùn)行環(huán)境:

其實(shí)就是提供程序運(yùn)行環(huán)境的Web服務(wù)器,可以向?yàn)g覽器等Web客戶端提供文檔文件讓全世界瀏覽和下載。使用最多的 web服務(wù)器軟件有兩個(gè):微軟的信息服務(wù)器(iis),和Apache。

Facebook采用的技術(shù)架構(gòu)LAMP(Linux、Apache、MySQL、PHP),其中就有Apache。Apache是目前世界使用排名第一的Web服務(wù)器軟件,它可以運(yùn)行在幾乎所有廣泛使用的計(jì)算機(jī)平臺(tái)上。

1040370

編碼開(kāi)發(fā):

這個(gè)很容易引起 “哪種編程語(yǔ)言是最好的?”世界之爭(zhēng)。。。大家可以直接看2016編程語(yǔ)言排行榜,但并不代表本主編立場(chǎng)。

QQ截圖20160721195745

值得一提的是,F(xiàn)acebook作為開(kāi)源第一大廠,自家開(kāi)發(fā)并且開(kāi)源了HipHop for PHP,(yoyoyo很嘻哈么)這是一個(gè)PHP到C++的轉(zhuǎn)換程序,目的是旨在加速和優(yōu)化PHP,HipHop for PHP 比純PHP有高一倍的效能,從而大大減少了服務(wù)器的需求,流弊啊。。。

類庫(kù)框架:

類庫(kù)解決代碼或者是模塊級(jí)別的復(fù)用或者對(duì)復(fù)雜度的封裝問(wèn)題??蚣軇t是對(duì)模式級(jí)別的復(fù)用和對(duì)程序組織的規(guī)范。常用的框架有,Spring Framework (Java開(kāi)源 J2EE框架)Struts (Java開(kāi)源 Web框架)Hibernate (Java開(kāi)源 持久層框架)。

QQ截圖20160722112747

而facebook使用的是Thrift框架,對(duì)了,也是他們自己開(kāi)發(fā)的。。。thrift是一個(gè)軟件框架,用來(lái)進(jìn)行可擴(kuò)展且跨語(yǔ)言的服務(wù)的開(kāi)發(fā)。如 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 可以在這些編程語(yǔ)言間無(wú)縫結(jié)合、高效的服務(wù)。

負(fù)載均衡

硬件負(fù)載均衡:

是一種把網(wǎng)絡(luò)請(qǐng)求分散到一個(gè)服務(wù)器集群中的可用服務(wù)器上去,通過(guò)管理進(jìn)入的Web數(shù)據(jù)流量和增加有效的網(wǎng)絡(luò)帶寬的硬件設(shè)備。能夠直接通過(guò)智能交換機(jī)實(shí)現(xiàn),處理能力更強(qiáng),但問(wèn)題就是:貴!如圖傳說(shuō)中的f5

QQ截圖20160714200901

軟件負(fù)載均衡:

價(jià)格低,甚至有免費(fèi)開(kāi)源的負(fù)載均衡策略,但效果肯定不如硬件,但一般中型網(wǎng)站夠用。目前使用最為廣泛的負(fù)載均衡軟件是Nginx、LVS、HAProxy。

數(shù)據(jù)庫(kù)和緩存

數(shù)據(jù)庫(kù)方案:

選擇數(shù)據(jù)庫(kù)需要考慮數(shù)據(jù)的量級(jí)、計(jì)算場(chǎng)景和處理數(shù)據(jù)的頻次來(lái)選擇。

facebook使用MySQL、Memcached、Hadoop’s HBase實(shí)現(xiàn)持久化。memcached是一套分布式的快取系統(tǒng)通過(guò)緩存數(shù)據(jù)庫(kù)查詢結(jié)果,減少數(shù)據(jù)庫(kù)訪問(wèn)次數(shù),以提高動(dòng)態(tài)Web應(yīng)用的速度、提高可擴(kuò)展性。

分布式存儲(chǔ)服務(wù)器

分布式存儲(chǔ)系統(tǒng),是將數(shù)據(jù)分散存儲(chǔ)在多臺(tái)獨(dú)立的設(shè)備上。分布式網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)采用可擴(kuò)展的系統(tǒng)結(jié)構(gòu),利用多臺(tái)存儲(chǔ)服務(wù)器分擔(dān)存儲(chǔ)負(fù)荷,利用位置服務(wù)器定位存儲(chǔ)信息,它不但提高了系統(tǒng)的可靠性、可用性和存取效率,還易于擴(kuò)展。

Facebook用戶所發(fā)布的照片數(shù)以億計(jì),其存儲(chǔ)由Haystack這個(gè)ad-hoc存儲(chǔ)解決方案(由Facebook開(kāi)發(fā))來(lái)處理——包括對(duì)其進(jìn)行低級(jí)別優(yōu)化與只擴(kuò)展寫(xiě)入方式。

QQ截圖20160722113204

TAO是Facebook一種用來(lái)處理社交圖形信息的分布式數(shù)據(jù)庫(kù)。針對(duì)讀取進(jìn)行優(yōu)化的數(shù)據(jù)存儲(chǔ)機(jī)制,并以單一地理分布實(shí)例的方式部署在Facebook當(dāng)中。 Tao系統(tǒng)的設(shè)計(jì)初衷在于為“數(shù)PB級(jí)別”的龐大數(shù)據(jù)集提供每秒超過(guò)十億次讀取操作。

Facebook擁有超過(guò)6萬(wàn)臺(tái)服務(wù)器。最近發(fā)布的數(shù)據(jù)中心位于俄勒岡州普賴恩維爾市,硬件完全自行設(shè)計(jì),并被歸為Open Compute Project。

源代碼管理和版本控制

源碼管理工具是一種記錄代碼更改歷史,可以無(wú)限回溯,用于代碼管理,多個(gè)程序員開(kāi)發(fā)協(xié)作的工具。幾種常用的有:svn、cvs、hg、git、vss。

1454292321-0

作為工程師的天堂(產(chǎn)品經(jīng)理的火葬場(chǎng)),facebook是這樣做的

  • 有非常牢靠的安全體系,以免有人不小心/故意做了些不好的事。
  • 每個(gè)工程師可以修改facebook的任何代碼,隨時(shí)可以遷入。
  • 所有的代碼修改都要進(jìn)行審核(通過(guò)一個(gè)或多個(gè)工程師),但News Feed是個(gè)例外,因?yàn)樘匾?,Zuckerberg會(huì)親自review。
  • 所有的修改至少要被一個(gè)人審核,而且這個(gè)系統(tǒng)可以讓任何人很方便地審核其他人的代碼,即使你沒(méi)有邀請(qǐng)他。
  • 工程師負(fù)責(zé)測(cè)試,代碼修復(fù),和維護(hù)自己的項(xiàng)目。
  • 運(yùn)維組是受過(guò)嚴(yán)格訓(xùn)練,倍受尊敬,而且有商業(yè)意識(shí)的。他們的工作包括分析錯(cuò)誤日志,負(fù)載和內(nèi)存狀態(tài)等等。還包括用戶行為。

另外:

  • 產(chǎn)品經(jīng)理與工程師的比例大約為1-7到1-10。
  • 濃厚的工程師驅(qū)動(dòng)文化。”產(chǎn)品經(jīng)理基本可以被忽略”,這是facebook一名員工的話。工程師可以修改流程的細(xì)節(jié),重新安排工作任務(wù),隨時(shí)植入自己的想法。
  • 對(duì)于某個(gè)特性是否值得開(kāi)發(fā)的爭(zhēng)論,通常是這么解決的:花一個(gè)星期的時(shí)間完成他,并在小部分人群中(如1%)進(jìn)行測(cè)試。

參考:http://www.yixieshi.com/21053.html

 

作者:lottelyn江琳。公眾號(hào):這個(gè)產(chǎn)品超難用(chaonanyong233),企業(yè)級(jí)軟件產(chǎn)品經(jīng)理

本文由 @lottelyn江琳 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 服務(wù)器用什么軟件,服務(wù)器硬件,這些都和軟件架構(gòu)沒(méi)關(guān)系。
    架構(gòu)師只關(guān)注軟件的架構(gòu),顧名思義。PM也一樣。
    運(yùn)維有運(yùn)維的活兒,專業(yè)的事交給專業(yè)的人員。后端一般不會(huì)去涉及運(yùn)維的。
    此外,版本控制是項(xiàng)目經(jīng)理的事情……
    有一些確實(shí)是架構(gòu)的活兒,但有一些沒(méi)關(guān)系。
    分得清楚一點(diǎn)的目的,是至少出了問(wèn)題,知道去找誰(shuí)。

    來(lái)自浙江 回復(fù)
  2. 你說(shuō)的這些,說(shuō)實(shí)話沒(méi)多大用啊。
    知識(shí)倒是知識(shí),但感覺(jué)不成體系。光是列舉名詞,連我都不知道有什么用處。
    而且facebook等等自己研發(fā)的框架,沒(méi)必要說(shuō)出來(lái)。用戶量少,沒(méi)有意義。
    說(shuō)白了,重要的是思想,體系。
    MVC框架的內(nèi)涵是什么?彼此怎么通信,交流?
    前后端的連接和通信是怎么通信的,哪些屬于前端,哪些屬于后端,數(shù)據(jù)庫(kù)要怎么設(shè)計(jì)?
    這些才是架構(gòu)師工作中比較重要的一部分。
    而且架構(gòu)師說(shuō)白了,也不會(huì)負(fù)責(zé)運(yùn)營(yíng)維護(hù)這一塊啊。。。。。服務(wù)器選擇什么軟件。。這個(gè)無(wú)所謂啊。架構(gòu)師不會(huì)關(guān)注。一般有專業(yè)的運(yùn)維人員。這里真心寫(xiě)得比較蒙。。。
    單獨(dú)列舉N多的名詞沒(méi)有意義。

    來(lái)自浙江 回復(fù)
  3. 產(chǎn)品的火葬場(chǎng) ?

    來(lái)自北京 回復(fù)
  4. 是不是應(yīng)該換個(gè)題目叫Facebook的XXXX,感覺(jué)會(huì)誤導(dǎo)人

    來(lái)自北京 回復(fù)
  5. 一臉懵逼啊親

    來(lái)自上海 回復(fù)
  6. 看完真的是一臉懵逼,沒(méi)有g(shù)et到點(diǎn)

    來(lái)自吉林 回復(fù)
  7. 什么鬼

    來(lái)自北京 回復(fù)
  8. EXM??

    來(lái)自廣東 回復(fù)
  9. 以為只有我一臉懵逼。

    來(lái)自重慶 回復(fù)
  10. 關(guān)注了你的公眾號(hào),為什么會(huì)講星座學(xué)啊。。。。這樣很不專業(yè)啊。跟產(chǎn)品有什么關(guān)系。。。

    來(lái)自日本 回復(fù)
  11. 一臉懵逼的我。要加油充電了。

    來(lái)自日本 回復(fù)
  12. 只有我是程序轉(zhuǎn)的產(chǎn)品嗎 ??

    來(lái)自上海 回復(fù)
    1. 產(chǎn)品自學(xué)技術(shù)+1

      來(lái)自河南 回復(fù)
    2. 求推薦自學(xué)材料 ??

      來(lái)自浙江 回復(fù)
    3. 產(chǎn)品自學(xué)技術(shù)+2

      來(lái)自北京 回復(fù)
    4. 求推薦自學(xué)材料 ??

      來(lái)自浙江 回復(fù)
    5. 網(wǎng)上好多免費(fèi)視頻,像慕課網(wǎng),還有實(shí)戰(zhàn)訓(xùn)練的。找正規(guī)系統(tǒng)的,從頭看起,跟著裝軟件配環(huán)境。先從最簡(jiǎn)單的前端看起吧

      來(lái)自北京 回復(fù)
  13. 一臉懵逼的看完了

    來(lái)自浙江 回復(fù)
  14. 看不懂

    回復(fù)
  15. 就這也叫web架構(gòu)?作者你在逗我?

    來(lái)自上海 回復(fù)
    1. 作者只是簡(jiǎn)單描述一下 facebook的 基礎(chǔ)架構(gòu)

      來(lái)自河南 回復(fù)
  16. 咱倆同感,我也是不想一臉懵比,所以買(mǎi)了一本架構(gòu)的書(shū)······于是更是一臉懵比 ??

    來(lái)自北京 回復(fù)
  17. 來(lái)點(diǎn)APP的

    來(lái)自四川 回復(fù)
  18. 不是很能看懂………

    回復(fù)