大公司也是從小公司一步步走過來的,而大公司之所以與小公司不同,不在于基礎的技術體系不同,而是當數據量達到一定程度后,引發的質變而已。而在思考質變帶來的性能問題中,總結出來了一系列的工具,然后通過把對應的工具集合起來后形成了對應的運維工具平臺。
“萬丈高樓平地起”
有了運維工具平臺是不是運維能力就夠了?這句話先放在這里……
剛才已經說了,工具無大小,適合公司的使用即可,先拋開大公司使用的工具,我們先來聊聊小公司日常都需要什么工具?出入公司首先解決的是網絡問題,然后大家能夠上網后開始解決共享存儲問題,比如搭建FTP,SAMBA,NFS網絡存儲,解決員工之間的文件傳送和備份,這些在Linux學習過程中都有體現,馬哥課程中也有比較詳細的描述,比如如何搭建,此處省略不說了。
“古樹千年幼苗成”
隨著人們增加,必然會出現公司網絡帶寬首先,很多時候買的路由器也可以去做一定的限流功能,那隨著業務的發展,公司有了自己網站的特色,這些特色的背后其實是公司核心的商業價值,比如網站的搭建,一個普通網站的背后究竟有什么呢?純靜態網站就不說了,沒啥技術含量,我們聊聊動態網站,動態網站是會動的網站嗎?顯然不是,他其實是存在數據交換的網站,那既然有數據交換,數據交換過程中有哪些東西呢?數據交換后的狀態有哪些呢?這其實就是所謂的數據對象存儲的問題,比如常見的數據庫存儲軟件有MySQL,既然用到了MySQL,那他日常的維護都需要什么?舉個簡單的栗子,他的部署,服務啟停,數據備份,數據庫容災,對應時間點的備份,抽取binlog……,這背后的工具不用我詳細描述,相信大家都知道了,那就是基本的數據庫的維護,數據庫的備份,恢復,策略都有哪些呢?這塊如果你不知道請自行翻閱馬哥課程進行腦補,已經被講爛的課題,但是有時大家必須要掌握的,好了說外數據庫的事情,那聊聊應用程序吧!
“盤龍臥虎高山地”
應用程序運行究竟是如何的?運行環境有哪些?比如公司早期需要快速迭代,那么PHP是不二之選,畢竟PHP是世界上最好的語言嘛,Linux上運行PHP環境的常見組合是Nginx+PHP+PHP-FPM,拋個問題,這樣部署好后,代碼請求的流程是怎么樣的?php-fpm作用是什么?fastcgi又是干什么的?fastcgi被啟動的worker用完了怎么辦?這些信息在配置中如何體現?如何合理的優化?
帶著上面的思考,如果你會了我就不說了,如果你不會,請自行惡補,已經是面試被問爛的問題了,如果連這個都回答不上來,真該回馬哥教育回爐了。
那么談到LNMP,那為啥一個請求通過一個LNMP就能訪問到?一個請求又經過哪些過程達到最終想要的結果呢?這一塊需要去了解DNS解析原理,HTTP協議請求,談到DNS不得不說DNS解析方式有哪些?
DNS記錄類型有哪些?DNS服務器的類型有哪些?
你是否知道什么叫主服務器,輔助服務器,緩存名稱服務器,轉發器?
那對于主輔架構中,區域的傳送類型有哪些?
區域類型有哪些?什么叫子域,什么叫子域授權?
知道RNDC是干嘛的不?
以上問題也不多,翻翻看看應該都會,當然請不要告訴我你不會,要不然上半年都過完了,這些姿勢還沒學會的話,下半年豈能安身立命呢?
回過神來,HTTP協議知道多少呢?了解什么叫跨域嗎?Nginx如何解決跨域問題?平時見過不少學員一個HTTP請求返回個403,啥意思呀?知道幾個狀態碼呢?都表示啥意思呢?419表示啥(不是你知道的那個4-1-9)?對于HTTPS了解幾分?為啥要搞HTTPS,解決什么問題?帶來的性能問題有哪些?知道什么叫泛域名證書嗎?和普通的證書哪個貴?最后再問一個最基礎的,HTTP協議在TCP/IP協議棧中哪個位置?那你知道TCP/IP協議棧和OSI相關的知識嗎?如果不知道,不好意思,下面你也不用讀了,你真的不可能再看懂的。
………
“大海無邊百川融”
能躺著看到這地方的說明基礎還有一定水平,那好吧,接著我們倆聊聊,隨著流量增加后,你需要了解的知識有哪些?你的應用服務器如何水平擴展,擴展后代碼的結構和部署方式如何實現同步,如何實現流量的遷移,遷移的健康檢車方式有哪些?你知道的負載均衡設備有哪些?
你覺得LVS和F5哪個更適合做CDN的負載均衡?
談到LVS,那你知道LVS的模式嗎?
每個模式的特點有哪些?他都解決了什么場景下的問題?
我感覺問題到這里后,你已經蒙圈了。在你還沒徹底掛的情況下,我再補一個問題:LVS的負載均衡算法有哪些?他們解決的是什么問題?
談完集群的LB類型后,那我們倆聊聊單點背后我們要干的事情—永無寧日,為了讓自己吃得好,睡得香,咋整呢?高可用呀,High available
Cluster嘛,簡稱HA。常見的HA軟件有哪些?知道keepalived的vrrp原理嗎?常見高可用軟件中對資源如何管理的?腦裂是如何產生的又該如何應對呢?有些東西他們本身是獨立的,但是一旦結合起來后,你會發現他們之間其實能產生很大的效果,也就是1+1 》 2的節奏,比如當LB和HA結合起來的時候,是不是可以消除LB的單點問題,也可以消除HA的負載均衡問題,然后你也許會陷入LB的HA和HA的LB循環坑里面,不過這不重要,重要的是你是一個對架構有追求的好孩子,難道不是嗎?
量變帶來了質變,質變帶來了架構的變化,所以對于對于一個普通的電商架構來說,上面的基礎設施層基本上歐了,當然對于圖片服務器,我們可以需要加一些靜態文件服務器,或者換成服務器,比如通過Nginx和Varnish來解決靜態文件的存儲、緩存問題,提高用戶端的快速響應能力,而對于我們的數據層面我們也可以通過添加緩存來解決應用和數據庫IO速度不匹配的問題,大家都知道大型互聯網架構中,緩存為王,那是不是所有的都需要加緩存,緩存又該如何加呢?舉個簡單的栗子,大家都知道MySQL也可以加緩存,比如Memcached,那你是否聽過MySQL的Memcache Plugins呢?為什么要把他們放到同一臺機器上,有什么特俗含義嗎?
好了,到這里我們已經跨越到了中型互聯網公司的范疇了,那接下來對于大型互聯網公司他們都需要什么呢?舉個簡單的栗子,對于業務組件來說,他們需要的是一套完整的服務管理組件,中間層,底層封裝好的api,那這些api對于業務的使用其實是透明的,他們也不需要去實現,只需要找對應的人去要授權,然后調用即可,這就是服務化的雛形,當然他們一樣會面臨服務負載均衡問題,一樣會面臨消息,隊列,緩存,存儲問題,當大型互聯網公司在逐漸升級,逐漸解決遇到的瓶頸后,他們也開始逐漸思考如何把這種實踐帶來更多的市場價值,比如阿里云的誕生。我相信早期阿里云初衷是為了解決每年雙十一后過剩機器帶來的資源浪費問題,但是隨著這條路深入到根底發現他不僅僅是解決資源問題,更是解決中國互聯網基礎設施問題,當然也是解決眾多創業小公司的效率問題。
-
工程師
+關注
關注
59文章
1569瀏覽量
68504 -
Linux
+關注
關注
87文章
11293瀏覽量
209338
發布評論請先 登錄
相關推薦
評論