欧美日操-欧美日韩91-欧美日韩99-欧美日韩ay在线观看-xxxx色-xxxx视频在线

產(chǎn)品運維角度分析大型互聯(lián)網(wǎng)應用架構設計與優(yōu)化的“4要素”

2017-12-18 18:51:14 csdn  點擊量: 評論 (0)
作為一名互聯(lián)網(wǎng)產(chǎn)品運維,對什么是好的產(chǎn)品(技術架構角度)有自己的感悟(我負責運維的產(chǎn)品高峰日訪問量在10個億,機器分布在全國不同機房,雖也有大小問題,但整體運行不錯)。產(chǎn)品運維是一個既要和開發(fā)又
    作為一名互聯(lián)網(wǎng)產(chǎn)品運維,對什么是好的產(chǎn)品(技術架構角度)有自己的感悟(我負責運維的產(chǎn)品高峰日訪問量在10個億,機器分布在全國不同機房,雖也有大小問題,但整體運行不錯)。產(chǎn)品運維是一個既要和開發(fā)又要和各基礎運維打交道的職務,要考慮到結構、擴容、容災、高可用和優(yōu)化等各方面的事宜,又要研究產(chǎn)品的邏輯本身(排障時需要),工作中發(fā)現(xiàn),一個好的互聯(lián)網(wǎng)產(chǎn)品不僅在優(yōu)秀的代碼本身,更體現(xiàn)在后期的易運維性、可擴展性、高可用性等。隨著用戶量的變化、機房的變化甚至員工的離職,可能隨時需要彈性的調整資源改變策略來應對各種問題,而這就是體現(xiàn)產(chǎn)品是否足夠優(yōu)秀的時候。

 

    如果是新產(chǎn)品,在設計階段運維就有必要參與進來了,因為做出來的產(chǎn)品最終都要交付上線,放到服務器上給用戶提供服務,一是運維更加了解線上環(huán)境,研發(fā)階段簡易的demo開發(fā)環(huán)境放到線上會遇到各種問題;二是開發(fā)過程如果缺少運維意識,上線后在做資源彈性調整及其它策略改變可能會遇到各種麻煩;另外運維人員會根據(jù)模塊屬于不同的IO消耗型、cpu消耗型、內存消耗型等需求提出更加合理的上線服務器環(huán)境,提前參與產(chǎn)品中也可對節(jié)省成本的同時提高性能有很大幫助。根據(jù)經(jīng)驗,我總結了4個要素,同樣如果對于已經(jīng)做好的產(chǎn)品,從優(yōu)化的角度去提升產(chǎn)品性能同時減少故障,也是從這“4要素”出發(fā):

 

wKiom1ebgBXDLYFoAAGwKZDOFyI576.png

 

 

一、整個系統(tǒng)的功能要模塊化(微服務),單個模塊高內聚低耦合;

  大型互聯(lián)網(wǎng)應用面對全國乃至世界范圍的使用,要面對開發(fā)分工、迭代、擴容等各種場景,使用中要保證優(yōu)秀的用戶體驗、良性的迭代升級和業(yè)務擴展,一定要使用微服務的架構設計思想進行模塊拆分,一個沒有模塊劃分的系統(tǒng)是不可能完成這項任務的,想想幾百號人圍繞著一套代碼轉是個什么樣子。一個優(yōu)秀的大型互聯(lián)網(wǎng)應用會在設計之初就進行模塊化,每個模塊各司其職,模塊間通過HTTP API或者消息隊列進行通信,各模塊根據(jù)工作量和難度分給不同項目組負責,最后單個模塊形成高內聚、模塊之間形成低耦合的模型,該是誰的事兒就找誰,當然功能模塊怎么劃分更加科學,就需要做研討了,研討中要從當前開發(fā)的科學性和后期上線可運維性兩個維度來做考慮。


二、每個功能模塊相對獨立易部署、所需資源彈性可擴展;

    要應對線上變化的環(huán)境、用戶量的自然及突發(fā)性增長、開發(fā)者的人員變動,每個功能模塊在做到功能獨立高內聚的同時,要做到運維的可交付、資源的可彈性擴展。

    運維的可交付體現(xiàn)在模塊的易部署(越簡單越好),部署過程不依賴修改源代碼,所需的配置文件、代碼可以做到統(tǒng)一下發(fā)。

    資源的彈性擴展是為了應對用戶量的自然及突發(fā)性增長,比如說要做一個活動,訪問量會突發(fā)翻倍,這時模塊要能做到易擴展,可以彈性的通過簡單的擴容服務器來增加系統(tǒng)吞吐量,不至于造成系統(tǒng)瓶頸,每個模塊做到了彈性可擴展,整個應用才會變成一個彈性可伸縮的強大產(chǎn)品。

 

三、每個功能模塊無單點故障點,如遇后端依賴故障可以降級服務;

    為了讓開發(fā)和運維人員能夠睡個好覺,一個好產(chǎn)品的每個模塊必須能夠做到服務器間容災且無單點故障,就是說一臺服務器掛了不會影響到模塊服務,進而影響到整個應用的癱瘓,每臺服務器模塊都是一個獨立的個體,互不影響,當某臺服務器掛了之后剩余的服務器能把活兒接起來,當然這是最理想的模型,如果實在無法做到熱備,最起碼得做到無需人工干預的冷備。

    模塊之間都是協(xié)同工作的,每個模塊都可能承上啟下相互依賴,在向前端輸出任務處理結果時也依賴后端其它模塊的處理結果,這時就要考慮到萬一依賴的后端模塊掛了或者超時怎么辦的情況,以防出現(xiàn)雪崩的連鎖反應,這時模塊就有必要設置降級預案機制,比如說當那不到結果或為空時向前端返回一個默認的或最近處理的結果,應付一下用戶,總比返回錯誤信息要強,然后騰出時間解決問題,再比如是個新聞類應用,可以返回一個近期的靜態(tài)頁面。

 

四、每個模塊的日志健全,做到可分析、可監(jiān)控。

    日志的健全性很重要,日志可以及時的發(fā)現(xiàn)問題、分析問題、分析模塊的性能、故障點等等,總之日志可以反應出各種問題,其包含但不限于操作系統(tǒng)日志、業(yè)務日志(訪問、超時、錯誤)、后端資源依賴日志等,分析的結果同時正向反饋到下一步的產(chǎn)品迭代研發(fā)中去。

    對于監(jiān)控,也分為了基礎監(jiān)控、應用軟件監(jiān)控、業(yè)務監(jiān)控、依賴監(jiān)控四個層面,簡單介紹一下,基礎監(jiān)控指服務器各種基本指標包含cpu、負載、io、內存使用、網(wǎng)卡流量等的監(jiān)控,應用軟件只nginx、tomcat、php-fpm等應用軟件本身性能的監(jiān)控,業(yè)務監(jiān)控是指訪問后或對于任務處理情況的日志監(jiān)控,比如說nginx的訪問日志,依賴監(jiān)控是指其依賴模塊或資源的監(jiān)控,比如說MC、redis等。

 

    寫在最后:如果一個大型互聯(lián)網(wǎng)應用能夠做到這“4要素”,這個產(chǎn)品就是一個很高級的妖怪了,能夠抵抗狂風暴雨。(所說“產(chǎn)品”是技術層面產(chǎn)品,并不是為網(wǎng)民設計的接入層用戶體驗類邏輯產(chǎn)品)

大云網(wǎng)官方微信售電那點事兒

責任編輯:售電衡衡

免責聲明:本文僅代表作者個人觀點,與本站無關。其原創(chuàng)性以及文中陳述文字和內容未經(jīng)本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關內容。
我要收藏
個贊
?
主站蜘蛛池模板: 青草伊人网| 午夜免费毛片| 亚欧在线精品免费观看一区| 亚拍精品一区二区三区| 亚洲精品中文字幕不卡在线| 亚洲国产精品67194成人| 四虎影视亚洲精品| 亚洲色无码播放| 欧美特黄a级| 亚洲国产日本| 青青热久久久久综合精品| 香港一级a毛片在线播放| 亚鲁鲁国产| 欧美在线视频a| 日韩操操| 四虎国产精品永久在线网址| 色成人亚洲| 天天综合网在线| 亚洲欧美激情视频| 亚洲性色成人| 日韩欧美一中文字幕不卡| 午夜在线观看福利| 天天玩天天操| 日本一道免费一区二区三区| 手机看片三级| 日韩丝袜在线| 亚洲人和日本人jzz护士| 亚洲日本欧美| 日韩在线中文字幕| 三级黄色片免费| 性精品| 欧美网站在线观看| 欧美成人a视频| 手机看片久久国产免费不卡| 奇米影视888狠狠狠777九色| 日韩在线欧美| 三年片大全在线观看| 一级毛片一级毛片一级级毛片| 手机看片高清日韩精品| 色噜噜狠狠色综合欧洲| 日本三级免费|