大部分公司的服務器都已遷到了云上,還有一些公司,則是辦公室的某個角落小隔間里,有個黑漆漆的房間,運維管它叫做“機房”,里面放著承載公司業務的服務器。那服務器究竟是什么呢?
其實在互聯網發展的初年,就和現在人人都是產品經理一樣,“每臺電腦都是服務器”、“每臺電腦都可以當一陣子服務器”,不難看出,服務器可以就是一臺普普通通的電腦。之所以叫服務器(Server),本質上是因為在互聯網的業務中,他承載了服務端的作用,與之相對的,就是客戶端(Client)。

服務器是指在網絡環境下,為客戶端,包括但不限于電腦、手機、智能電視、ATM機等等設備,提供服務的專用計算機。服務器是一種角色身份,為了更好的實現這一角色的需求:提供服務、保持穩定、長時間工作、不易停機等,服務器上要安裝配套的服務器操作系統和服務器應用軟件。
所以服務器其實分為三個部分:服務器本體,操作系統、應用軟件三個部分,就相當于我們一臺普通的電腦、裝有Windows 10操作、使用著微信聊天一樣。本位著重介紹服務器本體相關的內容。
如果產品經理經歷過一款產品的0到0.1時代,可能會體驗到被老板問起,我們要買什么規格的服務器才能帶得動我們的業務類似的問題,像極了學生才上大學時,家長問你需要買什么樣的電腦才能更好的學習專業知識(玩游戲才不卡)。
既然服務器也是一臺電腦,那為什么不能直接就去電腦城或者某寶買臺電腦了呢,非得去阿里云、騰訊云、天翼云等平臺采購云服務器,或者得專門搞個房間做機房弄一大堆設備呢?

決定一臺電腦卡不卡的核心硬件,就是CPU、內存、硬盤、網絡四大件,服務器也一樣,但是服務器作為服務端,需要1對N服務于我們成百上千,甚至百萬、千萬、更大規模的客戶,我們一般的家用電腦,開十幾個網頁可能輕輕松松,但是當我們打開上幾十個網頁時,電腦就會變成龜速,再想打開更多網頁的時候,電腦就死機藍屏了。想象有多少的客戶他們在同時連接著我們的服務器,這樣我們服務器的性能勢必要比家用電腦強很多才承受得住。這就是服務器在硬件本體上和我們家用電腦最大的區別之一,硬件配置差異,帶來的就是性能差異。

CPU
中央處理器(central processing unit,簡稱CPU),相當于一輛汽車的發動起,他直接決定了汽車能開多快,目前CPU都是多核心架構,就跟家用車的發動機一般是四缸,但是跑車有六缸、八缸、十二缸甚至更多的缸體一樣,CPU核心數量越多,服務器速度就越快,能同時處理更多并發請求。現在常見的家用電腦,由于要兼顧工作、娛樂等很多內容,CPU一般都在4核以上,多核心并行運作,提高處理效率。但是服務器一般只專注于一種類型的工作,不會有人在服務器上開Word、打開Chrome、再掛個微信等等,所以業務量不大時,服務器對于多核的需求就比較小,有些客戶量很少的業務,服務器配備1核或2核就足夠運行了。
CPU還有一個決定速度的關鍵:基礎頻率,又稱“主頻”,即每秒鐘計算的次數。頻率越高,同一時間內能處理更多的計算。就跟汽車發動機的轉速一樣,轉速越高,車子自然就跑的越快。但是很多云服務器廠家并不會將主頻的信息透露給“初級玩家”,主要是各款CPU主頻相差其實不大,CPU性能依然靠核數取勝;另一方面是,大部分服務器也不會長時間滿負載的運作,就像一般汽車能跑到快200公里每小時,但是實際上大部分時候都在幾十公里每小時的速度形式,除非特殊場景,能達到的最高速度對日常體驗影響就很小。
內存
內存可能是大家比較難理解的部分,大家都知道手機內存(嚴格意義上說是運行內存,全稱為隨機存取存儲器Random Access Memory,RAM)越大,手機就越快,但是原理呢?內存其實有點像汽車的變速箱,但我想大部分人其實不知道、也不想知道變速箱用來干嘛的……那內存就像上學時,幫你傳遞小紙條給暗戀對象的同桌。
內存本質上是一種中間件,放我們數據的東西叫做硬盤,但是硬盤的處理速度遠更不上CPU的計算速度,那么需要處理硬盤上的數據時,就先把數據從硬盤存到內存中,然后CPU讀取、計算內存中的數據,完成后再存回硬盤中。有了內存,我們就可以把一些高頻需要訪問的內容常駐在內存中,例如我們無論用電腦還是手機,要聊微信時,不會每看一條微信,就把微信徹底關閉,然后再打開、看下一條微信。當微信打開后,微信的程序從我們的硬盤中加載到內存里,只要我們不從徹底關閉微信,他就一直常駐在內存中,我們隨時查看、回復消息就很快,但是在我們首次打開微信時,或者徹底關閉微信后再打開,就能感受到首次打開微信其實是要等待一會兒的,誰都不希望每看一條或回復一條消息時,都經歷這樣漫長的等待,這就是內存的功勞了。
內存大小一般用GB衡量,日常無論是手機、家用電腦還是服務器,內存容器其實相差不大,一般在幾G到幾十G之間,部分性能強悍的服務器能達到幾百G內存甚至以上。內存是有容量限制的,越大的的內存,就能臨時存放越多的數據,提供更快的響應速度,一旦內存容量不夠了,電腦/手機就會變卡,我們就不得不徹底關掉一些應用,讓電腦/手機保持流暢,服務器也是如此,如果同時訪問的用戶量巨大,那么內存可能就會吃緊,如果不升級更大內存,可能就會導致服務器運行緩慢、甚至死機,如果內存充足,我們就可以把更多的數據緩存到內存中,讓客戶訪問速度提升,獲得更好的用戶體驗。
硬盤
硬盤是存儲數據的地方,包括系統本身需要占用一定的硬盤空間、開發寫的代碼、客戶的數據等,都需要占用硬盤空間。硬盤大小一般用GB(兆字節)或TB(千兆字節)衡量,一部高清電影大約2GB左右,一張照片大概幾百KB到幾MB大(1GB=1,024MB=1,048,576KB)。由于服務器里除了存放大量的客戶資料外,安裝系統、安裝允許代碼所需的語言程序等,都需要占用硬盤大小,所以選購服務器時,最少都需要幾十GB以上的硬盤。客戶信息量時,尤其是圖片與視頻多網站的服務器,硬盤動輒需要數TB、甚至數PB(1PB=1,204TB)都很正常。
我們常聽到的數據庫,其實是對數據的一種管理方式,就像圖書館的書架和編號一樣,而圖書館的物理空間,就是硬盤的存儲空間,借助了書架、編號等管理方式(就是數據庫軟件),對書籍(數據)進行有序的管理和快速的存取。數據可以脫離數據庫存在,就像我們個人電腦里面的文檔、表格、圖片、視頻等數據,沒有數據庫并不影響它們是數據的事實。數據不能脫離存儲空間存在(包括硬盤存儲空間以及內存緩存的空間),就像一本實體書一定有體積;圖書館的空間決定了最多能存放多少書籍的上限,硬盤存儲空間也決定了數據量的上限。
如果大家購買過實體硬盤,或者嘗試使用過購買阿里云等云服務時,會發現硬盤除了分大小外,還分很多類型。如果是購買實體服務器或者云上的裸金屬服務器,硬盤規格可以看到HDD、SAS、SSD、NVMe SSD等,如果是選購云服務器,給出的則是性能指標IOPS、最大吞吐量等數據。
硬盤讀取速度相對于內存來說慢很多,但是硬盤與硬盤間的速度又是有很大的差異的,慢速的硬盤就像綠皮火車的站票,數量多,價格便宜,包括候車、乘車全過程的速度慢;高速的硬盤就像高鐵的商務座,數量少,價格安規,但是候車有VIP通道速度快、乘車速度也快。但是我們大多數的產品,數據基本以字符形式存在,如客戶的ID、姓名、賬號等信息,其實用不了多少硬盤空間,對讀寫速度要求也不高,但是如果我們的業務涉及視頻、直播、或大量圖片時,這些數據本身硬盤空間占用大,客戶量大的時候,如果不搭配高速的硬盤,那就會明顯的影響訪問速度了。
網絡
一般指互聯網的訪問,我們購買服務器時至少要有一臺能訪問互聯網,沒有網絡怎么給客戶提供服務呀。網絡訪問分為IP地址、域名、帶寬、地域等因素。
IP地址相當于經緯度,就是服務器在網絡世界中的具體位置。域名相當于一個門牌號,例如www.baidu.com,對應的IP地址是110.242.68.66。小明家住在某某街道某某小區幾棟幾樓幾號房,總比記小明家在東經113°19'52.640",北緯23°6'44.276",海拔高度50米的位置強太多了。
帶寬,是指在單位時間(一般指的是1秒鐘)內能傳輸的數據量,單位為Mbps,相當于馬路的寬度,決定了同時能通過多少車輛,帶寬越大時,同時訪問的客戶越多,越不容易堵車,大家訪問速度就越快。家用網絡的帶寬動輒幾百兆(又稱M,實際單位為Mbps)甚至千兆,且價格便宜,一個月百來塊、甚至幾十塊、免費,但是服務器用的企業網絡,價格高昂得多(幾元到十幾元每Mbps),因為家用網絡一般指的是下載速度能達到那么多M,但是上傳速度一般只有下載速度的1/5甚至1/10,但企業用的網絡一般是上傳與下載速度對等,且服務器主要是向客戶提供服務,對上傳速度要求很高、企業網絡的穩定性要遠高于家用網絡,想象一下公司服務器的網絡就跟打王者農藥一樣關鍵時候必定掉線,那客戶早就跑光了。除此之外家用網絡由于不是每時每刻都滿速率跑著,運營商也存在嚴重的超售現象,從而進一步壓低了價格。
地域,即服務器在物理世界中所在的位置。云服務器不是真的在天上,云服務器只是聚集在各地的大型數據中心中。服務器所在位置,與客戶所在的位置,有著物理距離的間隔,中間通過一系列的網絡設備相連接,間隔越遠,信號傳輸需要的時間就越長,時延就越高。時延高了,想想刷短視頻的時候,翻到下一個視頻還得等幾秒鐘加載的時間,客戶的體驗自然就不好了。所以還要根據客戶分布的特點,選擇服務器所在的位置,如果全國、甚至全世界各地都有客戶,就需要考慮各地都架設一些服務器,或者采用CDN等技術,加快各地區客戶的訪問速度。
以上就是服務器本地的主要構成因素了,知道這些后,產品經理就可以愉快的找開發同學一起去評估公司業務需要什么配置的服務器才能支撐了。
除了以上提到的主要硬件外,服務器還有很多細致分類,例如配備了顯卡的服務器、x86與ARM服務器、虛擬機與裸金屬等,后續有機會再娓娓道來。