網(wǎng)站建設(shè)自動化的意義
在無人值守的隋況下網(wǎng)站可以正常運行,一切都可以自動化是網(wǎng)站的理想狀態(tài)。目前大型問站的自動化架構(gòu)設(shè)計主要集中在發(fā)布運維方面
發(fā)布對網(wǎng)站都是頭等大事許多網(wǎng)站故障出在發(fā)布環(huán)節(jié),網(wǎng)站工程師經(jīng)常加班也是因為發(fā)布不順利。通過減少人為干預(yù)使發(fā)布過程自動化可有效減少故障。發(fā)布過程包括諸多環(huán)節(jié)。自動純代碼管理,代碼版本控制、代碼分支創(chuàng)建合并等過程自動化開發(fā)工程師只要提交自己參與開發(fā)的產(chǎn)品代號,系統(tǒng)就會自動為其創(chuàng)建開發(fā)分支,后期會自動進行代碼合并;自動純測試,代碼開發(fā)完成提交;則試后,系統(tǒng)自動將代碼部署到測試環(huán)境,啟動自動化測試用側(cè)進行測試向相關(guān)人員發(fā)送測試報告,同系統(tǒng)反饋測試結(jié)果;自動純安全檢測,安全檢測工具通過對代
碼進行靜態(tài)安全掃描及部署到安全;則試環(huán)境進行安全攻擊測試,評估其安全性;最后進行自動純部署,將工程代碼自動部署到線上生產(chǎn)環(huán)境。
此外,網(wǎng)站在運行過程中可能會遇到各種問題:服務(wù)器宕機、程序Bug、存儲空間不足、突然爆發(fā)的訪問高峰。網(wǎng)站需要對線上生產(chǎn)環(huán)境進行自動化監(jiān)控,對服務(wù)器進行心跳檢測,并監(jiān)控其各項性能指標和應(yīng)用程序的關(guān)鍵數(shù)據(jù)指標。如果發(fā)現(xiàn)異常、超出預(yù)設(shè)的閥值,就進行自動化報警.向相關(guān)人員發(fā)送報警信息,警告故障可能會發(fā)生。在檢測到故障發(fā)生后,系統(tǒng)會進行自動優(yōu)先效轉(zhuǎn)移,將失效的服務(wù)器從集群中隔離出去,不再處理系統(tǒng)中的應(yīng)用請求。待故障消除后,系統(tǒng)進行自動化失效恢復(fù),重新啟動服務(wù),同步數(shù)據(jù)保證數(shù)據(jù)的斂眭。在網(wǎng)站遇到訪問高峰,超出網(wǎng)站最大處理能力時,為了保證整個網(wǎng)站的安全可用,還會進行自動化降級,通過拒絕部分請求硬關(guān)閉部分不重要的服務(wù)將系統(tǒng)負載降至一個全的水平,必要時,還需要自動化分配資源,將空閑資源分配給重要的服務(wù),擴大其部署規(guī)模。
網(wǎng)站建設(shè)自動化之安全
互聯(lián)網(wǎng)的開放特日使得其從誕生起就面對巨大的安全挑戰(zhàn),網(wǎng)站在安全架構(gòu)方面也積累了許多模式:通過密碼和手機校驗碼進行身份認證;登錄、交易等操作需要對網(wǎng)絡(luò)通信進行加密,硎站服務(wù)器上存儲的敏感數(shù)據(jù)如用戶信息等電進行加密處理;為了防止機器人程序濫用網(wǎng)絡(luò)資源攻擊網(wǎng)站,網(wǎng)站使用驗證碼進行識別;對于常見的用于攻擊網(wǎng)站的xss攻擊、SQL注入、進行編碼轉(zhuǎn)換等相應(yīng)處理;對于垃圾信息、敏感信息進行過濾;對交易轉(zhuǎn)賬等重要操作根據(jù)交易模式和交易信息進行風(fēng)險控制。
網(wǎng)站制動化建設(shè)架構(gòu)模式在新浪微博的應(yīng)用(案例)
短短幾年時間新浪做博的用戶數(shù)就從零增長到數(shù)億,明星用戶的粉絲數(shù)達數(shù)千萬,圍繞著新浪微博正在發(fā)展個集社交、媒體、游戲、電商等多位體的生態(tài)系統(tǒng)。
同大多數(shù)網(wǎng)站樣,新浪微博也是從一個小網(wǎng)站發(fā)展起來的。簡單的LAMP( Linux+Apache+MvSQL -l-PHP)架構(gòu),支撐起最初的新浪做博應(yīng)用程序用PHP開發(fā),所有的數(shù)據(jù),包括微博、用戶、關(guān)系部存儲在MySQL數(shù)據(jù)庫中。
這樣簡單的架構(gòu)無法支撐新浪微博快速發(fā)展的業(yè)務(wù)需求,隨著訪問用戶的逐漸增加,系統(tǒng)不堪重負。新浪做博的架構(gòu)在較短時間內(nèi)幾經(jīng)重構(gòu),最后形成現(xiàn)在的架構(gòu),如圖2.1所示。
網(wǎng)站建設(shè)自動化效果分布圖2.1新浪微博的系統(tǒng)架構(gòu)
(圖片來源:http://timyang net/architecture/weibo/)
系統(tǒng)分為三個層次,最下層是基礎(chǔ)服務(wù)層,提供數(shù)據(jù)庫、緩存、存儲、搜索等數(shù)據(jù)服務(wù),以及其他些基礎(chǔ)技術(shù)服務(wù),這些服務(wù)支撐了新浪微博的海量數(shù)據(jù)和高并發(fā)訪問,是整個系統(tǒng)均技術(shù)基礎(chǔ)
中間層是平臺服務(wù)和應(yīng)用服務(wù)層,新浪做博的核心服務(wù)是微博、關(guān)系和用戶,它們是新浪做博業(yè)務(wù)大廈的支柱。這些服務(wù)被分割為獨立的服務(wù)模塊,通過依賴調(diào)用和共享基礎(chǔ)數(shù)據(jù)構(gòu)成新浪微博的業(yè)務(wù)基礎(chǔ)。
最上層是API和新浪微博的業(yè)務(wù)層,各種客戶端(包括Web網(wǎng)站)和第三方應(yīng)用,通過闊用API集成到新浪微博的系統(tǒng)中,共同組成個生態(tài)系統(tǒng)。
這些被分層和分割后的業(yè)務(wù)模塊與基礎(chǔ)技術(shù)模塊分布式部署,每個模塊都部署在組獨立的服務(wù)器集群上,通過遠程調(diào)用的方式進行依賴訪問。新浪做博在早期還使用過種叫作MPSS(MultiPort Single Server,單服務(wù)器多端口)的分布式集群部署方案,在集群中的多臺服務(wù)器上,每臺都部署多個服務(wù),每個服務(wù)使用不同的端口對外提供服務(wù),通過這種方式使得有限的服務(wù)器可以部署更多的服務(wù)實例,改善服務(wù)的負載均衡和可用性?,F(xiàn)在問站應(yīng)用中常見的將物理機虛擬化成多個虛擬機后,在虛擬機上部署應(yīng)用的方案跟新浪微博的MPSS方案異曲同工,只是更加簡單,還能在不同虛擬機上使用相同的端口號。
在新浪微博的早期架構(gòu)中,微博發(fā)布使用同步推模式,用戶發(fā)表微博后系統(tǒng)會立即特這條微博插入到數(shù)據(jù)庫所有粉絲的訂司列表中,當(dāng)用戶量比較大時,特別是明星用戶發(fā)布微博時,會引起大量的數(shù)據(jù)庫寫操作,超出數(shù)據(jù)庫負載,系統(tǒng)性能急劇下降,用戶響應(yīng)延遲加劇。后來新浪微博改用異步推拉結(jié)合的模式,用戶發(fā)表微博后系統(tǒng)將微博寫入消息隊列后立即返回,用戶響應(yīng)迅速,消息隊列消費者任務(wù)將微博推送給所有當(dāng)前在線粉絲的訂司列表中,非在線用戶登錄后再根據(jù)關(guān)注列表拉取微博訂司列表。
由于微博頻繁刷新,新浪微博使用多級緩存策略,熱門微博和明星用戶的微博緩存在所有的微博服務(wù)器上,在線用戶的微博和近期微博緩存在分布式緩存集群中,對于微博操作中最常見的“刷微博”操作,幾乎全部都是緩存訪問操作,可以獲得很好的系統(tǒng)性能。
為了提高系統(tǒng)的整體可用性和性能,新浪微博啟用了多個數(shù)據(jù)中心。這些數(shù)據(jù)中心既是地區(qū)用戶訪問中心,用戶可以就近訪問最近的數(shù)據(jù)中心以加快訪問速度,改善系統(tǒng)性能;同時也是數(shù)據(jù)冗余復(fù)制的滅備中心,所有的用戶和微博數(shù)據(jù)通過遠程消息系統(tǒng)在不同的數(shù)據(jù)中心之間同步,提高系統(tǒng)可用性。
同時,新浪敞博還開發(fā)了系列自動化工具,包括自動化監(jiān)控,自動化發(fā)布,自動化故障修復(fù)等,這些自動化工具還在持續(xù)開發(fā)中,以改善運維水平提高系統(tǒng)可用性。
由于微博的開放特性,新浪微博也遇到了一系列的安全挑戰(zhàn),垃圾內(nèi)容、僵尸粉、微博攻擊從未停止,除了使用一般網(wǎng)站常見的安全策略新浪微博在開放平臺上使用多級重全審核的策略以保護系統(tǒng)和用戶。
深圳網(wǎng)站建設(shè)公司小結(jié)
在程序設(shè)計與架構(gòu)設(shè)計領(lǐng)域,模式正變得越來越受人關(guān)注,許多人寄希望通過模式一勞永逸地解決自己的問題。正確使用模式可以更好地利用業(yè)界和前人的思想與實踐,用更少的時間開發(fā)出更好的系統(tǒng)使設(shè)計者的水平也達到更高的境界。但是模式受其適用場景限制,對系統(tǒng)的要求和約束也很多,不恰當(dāng)?shù)厥褂媚J街粫嫽⒉怀煞搭惾坏珱]有解決原來的老問題,反而帶來了更棘手的新問題。
好的設(shè)計絕對不是模仿,不是生搬硬套某一個模式,而是對問題深刻理解之上的創(chuàng)造與創(chuàng)新,即使是“微創(chuàng)新”,也是讓人耳目一新的似曾相識。山寨與創(chuàng)新的最大區(qū)別不在于是否抄襲,是否模仿,而在于對問題和需求是否真正理解與把握。深圳網(wǎng)站建設(shè)公司-博納網(wǎng)絡(luò)關(guān)于大型網(wǎng)站自動化建設(shè)以及安全的解決方案就到這里,如果您有這方面的計劃,需要更為詳細的網(wǎng)站建設(shè)方案,聯(lián)系我們在線客服,為您提供專業(yè)詳實的文檔方案。