理想的互联网服务后台框架的九个要点
理想的互聯(lián)網(wǎng)服務(wù)后臺(tái)框架的九個(gè)要點(diǎn)
對(duì)于互聯(lián)網(wǎng)服務(wù)后臺(tái)團(tuán)隊(duì),開(kāi)發(fā)框架的選擇是非常關(guān)鍵的一個(gè)問(wèn)題,多年的海量服務(wù)經(jīng)驗(yàn)和教訓(xùn)使得我們團(tuán)隊(duì)深刻的認(rèn)識(shí)到:
要盡早規(guī)范團(tuán)隊(duì)的開(kāi)發(fā)服務(wù)框架,避免到了后期,各種開(kāi)發(fā)語(yǔ)言混雜、各類存儲(chǔ)組件充斥、重復(fù)編碼、每個(gè)模塊形態(tài)不統(tǒng)一、文檔缺失、監(jiān)控癱瘓、人員離職造成大量信息丟失,最后積重難返、痛苦不堪。
沒(méi)有框架來(lái)規(guī)范,團(tuán)隊(duì)的隨意性就太大,合作效率就大打折扣,甚至于內(nèi)耗、反復(fù)的挖坑填坑,系統(tǒng)的成敗過(guò)于依靠人的意識(shí)和水平。
規(guī)范,不能靠文檔、不能靠勞動(dòng)紀(jì)律、不能靠苦口婆心、不能靠人員意識(shí)、不能靠運(yùn)動(dòng)式的整頓,要靠技術(shù)框架上切實(shí)的限制與貼心保護(hù)。
如果有機(jī)會(huì)從0開(kāi)始定義一個(gè)理想的開(kāi)發(fā)框架,需要考慮哪些點(diǎn)?我們覺(jué)得主要有如下9個(gè)方面:
【同步編碼異步執(zhí)行】兼顧運(yùn)行效率和編碼效率,希望代碼寫(xiě)起來(lái)是同步和順序的,而執(zhí)行的時(shí)候是異步的
【IDL/RPC】支持IDL(接口描述語(yǔ)言)和RPC,減少網(wǎng)絡(luò)協(xié)議相關(guān)的重復(fù)工作,協(xié)議有比較好的擴(kuò)展性;遠(yuǎn)程調(diào)用友好且高效,做到覆蓋主要的開(kāi)發(fā)語(yǔ)言
【LB】對(duì)服務(wù)間的調(diào)用選路進(jìn)行統(tǒng)一的管理,對(duì)單機(jī)故障和網(wǎng)絡(luò)波動(dòng)等常見(jiàn)情況有自動(dòng)容錯(cuò),我們簡(jiǎn)稱load balance(LB)
【 存儲(chǔ)服務(wù)化】這個(gè)其實(shí)和開(kāi)發(fā)框架關(guān)系不太緊密,這里提一下,強(qiáng)調(diào)存儲(chǔ)應(yīng)該有統(tǒng)一的組件且由專業(yè)的團(tuán)隊(duì)運(yùn)維,就像共有云一樣
【過(guò)載保護(hù)】框架必須有成熟自帶的過(guò)載保護(hù)機(jī)制,不需要業(yè)務(wù)開(kāi)發(fā)人員關(guān)注或者關(guān)注很少
【基礎(chǔ)的監(jiān)控和告警】RPC調(diào)用、機(jī)器的cpu/網(wǎng)絡(luò)活動(dòng)、任務(wù)并發(fā)度、時(shí)延、進(jìn)程監(jiān)控和秒起等基礎(chǔ)信息,要有上報(bào)、統(tǒng)計(jì)和告警,不需要業(yè)務(wù)開(kāi)發(fā)人員關(guān)注。
【完整的業(yè)務(wù)流轉(zhuǎn)呈現(xiàn)】統(tǒng)一日志,在一個(gè)地方能夠清晰的呈現(xiàn)某次業(yè)務(wù)處理過(guò)程的流轉(zhuǎn)詳細(xì)情況:經(jīng)過(guò)了哪些模塊間調(diào)用,調(diào)用參數(shù)是怎樣的,每個(gè)模塊處理的重要分支和結(jié)果是怎樣的,最好圖形化呈現(xiàn)。支持染色和不同的日志詳細(xì)級(jí)別
【中央總控】整個(gè)系統(tǒng)的配置和文檔等重要信息,例如每個(gè)模塊有哪些機(jī)器,分布在哪些機(jī)房、容量冗余情況、模塊間調(diào)用關(guān)系、訪問(wèn)控制的配置動(dòng)態(tài)管理甚至電子流,都希望能統(tǒng)一在一個(gè)地方web化的管理起來(lái),并且與運(yùn)營(yíng)的系統(tǒng)是直接聯(lián)系直接生效的
【云調(diào)度】容量的自動(dòng)調(diào)度。例如要進(jìn)行某個(gè)運(yùn)營(yíng)活動(dòng)需要大量的擴(kuò)容,只需要把設(shè)備放進(jìn)去,就能自動(dòng)的擴(kuò)縮容。當(dāng)某個(gè)城市機(jī)房故障,能夠自動(dòng)調(diào)度容量到其他城市
基于上面的總結(jié),我們團(tuán)隊(duì)開(kāi)源了一個(gè)服務(wù)開(kāi)發(fā)運(yùn)營(yíng)框架,叫做毫秒服務(wù)引擎。
毫秒服務(wù)引擎(msec, 取英文名Mass Service Engine in Cluster的首字母組合)是騰訊的一個(gè)開(kāi)源框架,集RPC、名字發(fā)現(xiàn)服務(wù)、負(fù)載均衡、業(yè)務(wù)監(jiān)控、灰度發(fā)布、容量管理、日志管理、key-value存儲(chǔ)于一體,目的是提高開(kāi)發(fā)與運(yùn)營(yíng)的效率和質(zhì)量。
毫秒服務(wù)引擎的創(chuàng)作沖動(dòng)和構(gòu)建經(jīng)驗(yàn),來(lái)自QQ后臺(tái)團(tuán)隊(duì)超過(guò)10年的運(yùn)營(yíng)思考。它是一整套解決方案,但也可以拆分的來(lái)使用其中的監(jiān)控、key-value存儲(chǔ)單品。
詳細(xì)可見(jiàn)官網(wǎng),或在騰訊云服務(wù)市場(chǎng)聯(lián)系我們
典型用戶群體
使用毫秒服務(wù)引擎,用戶可以快速擁有一套具備監(jiān)控、名字發(fā)現(xiàn)服務(wù)、負(fù)載均衡、灰度發(fā)布、配置管理、日志、kv存儲(chǔ)等功能的系統(tǒng)化的開(kāi)發(fā)與運(yùn)營(yíng)框架,特別適合互聯(lián)網(wǎng)初創(chuàng)公司。
毫秒服務(wù)引擎非常容易搭建和上手,使用它,初學(xué)者從零開(kāi)始開(kāi)發(fā)一個(gè)分布式后臺(tái)demo并運(yùn)行起來(lái),只需要2個(gè)小時(shí)。基本上是一個(gè)小時(shí)完成框架搭建,一個(gè)小時(shí)完成開(kāi)發(fā)上線。
功能與優(yōu)勢(shì)
模塊間訪問(wèn)采用RPC的方式,開(kāi)發(fā)者不用關(guān)注網(wǎng)絡(luò)與報(bào)文格式,像寫(xiě)單機(jī)程序一樣開(kāi)發(fā)分布式服務(wù)
負(fù)載自動(dòng)均衡與容錯(cuò),對(duì)于單機(jī)故障、局部網(wǎng)絡(luò)波動(dòng)等狀況自動(dòng)應(yīng)對(duì),服務(wù)高可用性
支持C/C++與java語(yǔ)言,后續(xù)還將繼續(xù)豐富;如果選擇C/C++語(yǔ)言,支持協(xié)程,兼具開(kāi)發(fā)和運(yùn)行效率
Web化的管理界面,在web界面完成配置、發(fā)布、監(jiān)控、日志、Key--value存儲(chǔ)集群管理等所有操作
需要復(fù)雜部署的服務(wù)器都采用docker鏡像的方式安裝,使得部署與上手非常容易
相比使用其他開(kāi)源組件拼湊起來(lái)的解決方案,毫秒服務(wù)引擎更加的體系化,對(duì)團(tuán)隊(duì)的規(guī)范更加到位
?原文地址: https://www.qcloud.com/community/article/146
.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺(tái)或掃描二維碼關(guān)注
總結(jié)
以上是生活随笔為你收集整理的理想的互联网服务后台框架的九个要点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 关于全局ID,雪花(snowflake)
- 下一篇: 大新闻!Magic Leap造假,Hol