公司要你開發(fā)建立一個web服務器,并與開發(fā)人員合作讓其他人訪問。操作就是要做到一件事、一人少、一件事并保證生意。
服務方面
1.選擇服務版本,要與開發(fā)溝通,如果要開發(fā)PHP語言,請詢問他編寫的代碼是什么版本,不同版本可能不兼容某些語法,會導致錯誤。
為了選擇穩(wěn)定版,更新過多會導致bug,造成崩潰或服務出錯。要想選擇一個新版本,就必須有新特性,否則舊的版本最穩(wěn)定。
一個簡單的服務部署之后要做的是一個簡單的測試,讓服務器能夠像往常一樣運行,不能完全安裝。在Java這個替代版本中,將1.7升級到1.8可能會導致一些JDK依賴于1.7,這一切都需要考慮。
在服務運行之后,要注意其啟動用戶,可能用戶錯誤導致無法讀取文件。例如,WWW用戶在Nginx啟動時無法讀取/data查找HTML發(fā)送給用戶。
在要使用庫的時候,考慮表名稱是否重復。當一個Redis用于緩存時,考慮寫入的數(shù)據(jù)是否沖突。
2.基于企業(yè)的結(jié)構(gòu)分析:使用Nginx還是apache,在選擇之前填寫調(diào)查文檔,進行測試,編寫測試文檔,部署文檔。
3.根據(jù)業(yè)務量選擇計算機還需要有配置選擇,這樣可以使配置成為一個組合,例如,tomcat機器,每臺8核的16G內(nèi)存,硬盤100基,這一選項可作為創(chuàng)建虛擬機或購買云機器的套餐。
4.根據(jù)需求進行主從,或負載平衡選擇,也可以選擇備份容災,CDN等。
5.分析諸如ip源地址、pv、uv等服務的日志。
6.對服務和系統(tǒng)進行優(yōu)化,前期優(yōu)化和優(yōu)化后差異很大,性能可能會降低一倍。
7.安全保護,不僅僅是DDoS,還有登錄問題。重點放在軟件可能暴露的安全問題或Linux自身的系統(tǒng)問題上。
也許是某個Nginx版本突然說出問題了,您還沒有關(guān)注,這樣很容易被黑掉。
8.網(wǎng)絡問題,很多時候都是這樣,有些地方來得速度慢,可是有些人去的速度不慢,很頭痛,需要抓包再逐步排查。
9.性能問題,一開始也許不錯。當壓力出現(xiàn)時,數(shù)據(jù)庫可能會有緩慢的查詢,需要檢查和解決。也許有些網(wǎng)站的某些用戶無法訪問,或訪問速度慢,需要進行檢查。
這是最難得的,需要各方面的知識,若遇上突如其來的無法訪問,那就回想以前做過什么操作,再有針對性地檢查。
10.專注于版本問題,與前面的7層不同,nginx1.9將支持TCP的4層代理,這將大大改善性能,并有助于企業(yè)業(yè)務。
11.優(yōu)化,不僅僅是對系統(tǒng)進行內(nèi)核優(yōu)化,還包括對服務進行概要優(yōu)化,這需要長期深入地了解。缺省都是最標準的,但可以根據(jù)情況舍棄其中一部分,強化另一部分,使之符合業(yè)務。
例如Nginx做反向代理,可以優(yōu)化內(nèi)核參數(shù),快速釋放鏈接,以及縮短超時配置,從而能夠處理更高的并發(fā)。但如果提供如PHP等服務,則要配置較長,才能達到穩(wěn)定效果。
12.應考慮總體結(jié)構(gòu)。例如Nginx做負載平衡,可能抗壓能力很好,但后面的數(shù)據(jù)庫監(jiān)控只有3個,導致數(shù)據(jù)庫帶寬已滿,還會產(chǎn)生無法訪問的問題。
三、自動發(fā)布
1.如何發(fā)布,是手動還是自動,如果機器多,需要Jenkins等自動發(fā)布。
2.容災問題,代碼在發(fā)布失敗時需要快速回滾,不影響問題,發(fā)布時也不要所有節(jié)點都發(fā)布,挨個節(jié)點發(fā)布。
3.還要備份舊代碼,以防止將來可能突然出現(xiàn)需要回滾的問題。
四、總體而言
1.做好工作并非每天都在忙著做錯事,大部分時間都是空閑的,此時就需要自我控制來學習東西。
2.運作的價值=節(jié)省的成本x你的意識x你的覺知。
操作不能直接獲取價值,但可以進行優(yōu)化,調(diào)整結(jié)構(gòu)以節(jié)省開支,不發(fā)生事故就是最佳的價值。與此同時,分析日志可以為企業(yè)創(chuàng)造無形價值。
3.優(yōu)化現(xiàn)有的方法,公司在成長時,一定會有很多隱患,例如,一開始就是用一只腳來批量操作10-20臺機器,后面公司又有100臺機器,要用ansible進行批量操作。以上均需自動化,還需自動發(fā)布,壓力大可自動擴容,報警CPU不足自動調(diào)整緩解當前機器的壓力。
4.服務也不是照著百度百科放在檔案里就可以了,像負載平衡一樣,可能調(diào)度算法填錯了,導致一個壓力大,一個壓力小。也許服務也會占用一個CPU壓力大,而其他都不會閑著。
5.要編寫許多文檔,如資產(chǎn)文檔、機器配置、以及密碼表、服務連接文檔、部署文檔、維護文檔都要寫,文檔的功能之一是自己使用,另一個是等待您離開或新員工加入,他們可以迅速進行維護。
6.部署一項新服務,在上線測試之后必須要進行測試,而不是安裝,需要找到深入測試的數(shù)據(jù),模擬在線環(huán)境。
7.小心一點也不小心,任何操作都會反復思考幾次,不要隨意使用,例如重新啟動在線nignx的reload,否則當前的業(yè)務中斷。
8.監(jiān)視非常重要,可以查看通信量,某些服務的內(nèi)存是否超負荷,沒有監(jiān)測出什么問題,監(jiān)控不僅要監(jiān)視服務端口防止掛掉,還要有自己深度的使用,比如MySQL的慢查詢,home等。
9.系統(tǒng)上,運行操作最好有一些發(fā)布流程,虛擬機應用程序,巡檢過程等。巡視也很重要,云服務器也要檢查是否磁盤已滿,是否需要續(xù)費等。要不然什么時候出問題就大了。
10.進行業(yè)務機械規(guī)劃,在有壓力時進行擴展,逐步關(guān)閉。
11.測試也很重要,服務從多種角度進行測試,如nginx從靜態(tài)頁面、動態(tài)頁面、提交數(shù)據(jù)、模擬多個在線用戶的登錄訪問等等。
12.在修改文件之前必須進行備份,便于回滾,最好對操作日志進行審核。
?。?)事先積累了技術(shù),可能懂得了謀略,優(yōu)化后讓服務器性能提高2個點。
?。?)提早預防問題,防患未然。
(3)考慮更多的可能性,即目前的結(jié)構(gòu)可能是穩(wěn)定的,但肯定不是最佳的。
云吶統(tǒng)一運維管理平臺,通過對網(wǎng)絡設備管理、服務器管理、存儲設備管理、業(yè)務應用管理、無線管理、日志分析、辦公設備/聯(lián)網(wǎng)設備、動環(huán)系統(tǒng)等本地和異地網(wǎng)絡的實時監(jiān)控、自動巡檢,精準采集、分析故障信息,判斷重要數(shù)據(jù)性能指標,實現(xiàn)大規(guī)模數(shù)據(jù)中心的集中統(tǒng)一管理。如果對云吶統(tǒng)一運維管理平臺有什么疑問,你可以聯(lián)系在線客服,或直接注冊免費試用云吶系統(tǒng)。
免費試用:點我提交開通試用
資產(chǎn)管理系統(tǒng)免費試用
相關(guān)內(nèi)容
400-0589-976