業(yè)務(wù)介紹
隨著現(xiàn)金貸業(yè)務(wù)的如火如荼悼院,各地的現(xiàn)金貸業(yè)務(wù)平臺(tái)也如雨后春筍般的冒了出來(lái)淮逊,現(xiàn)金貸業(yè)務(wù)開(kāi)張也簡(jiǎn)單找一家現(xiàn)金貸平臺(tái)提供方侠坎,再買(mǎi)一個(gè)風(fēng)控產(chǎn)品(如同盾等)蚁趁,找到一個(gè)不錯(cuò)的資金渠道,就可以開(kāi)張了实胸;但平臺(tái)建起來(lái)后如何尋找合適的客戶(hù)是個(gè)問(wèn)題他嫡,于是市場(chǎng)上對(duì)于現(xiàn)金貸平臺(tái)的客戶(hù)導(dǎo)流形成了又演化了一個(gè)次級(jí)產(chǎn)品“現(xiàn)金貸超市”番官。
現(xiàn)金貸超市產(chǎn)品是利用各種渠道的流量,將目標(biāo)用戶(hù)引入至自己的產(chǎn)品超市客戶(hù)端钢属,公眾號(hào)徘熔,客戶(hù)端(公眾號(hào))內(nèi)頁(yè)面以下圖一中的列表形式展示了大量的現(xiàn)金貸平臺(tái)產(chǎn)品,對(duì)目標(biāo)用戶(hù)與現(xiàn)金貸平臺(tái)進(jìn)行信息撮合淆党;這樣一款產(chǎn)品看起來(lái)應(yīng)該沒(méi)什么難度酷师?
下一章節(jié)對(duì)業(yè)務(wù)初期的架構(gòu)及后續(xù)運(yùn)營(yíng)發(fā)生的問(wèn)題做一系列的說(shuō)明,方便大家了解業(yè)務(wù)染乌,也便于后來(lái)的同學(xué)踩坑
初期產(chǎn)品架構(gòu)
項(xiàng)目初期整個(gè)系統(tǒng)架構(gòu)比較簡(jiǎn)單山孔,在不同的流量渠道發(fā)布不同的安卓包,對(duì)于不同的渠道展示的產(chǎn)品內(nèi)容荷憋,順序也是有所區(qū)分的台颠;因此平臺(tái)提供了一個(gè)基本的管理系統(tǒng)用于日常的客戶(hù)版本,下載地址管理台谊;
在項(xiàng)目初期由于流量引入的乏力蓉媳,剛開(kāi)始一天不到200個(gè)下載,平臺(tái)未見(jiàn)任何壓力锅铅,運(yùn)轉(zhuǎn)也較正常酪呻;
隨著流量的引入,老用戶(hù)的活躍盐须,客戶(hù)端版本升級(jí)等平臺(tái)開(kāi)始陸續(xù)出現(xiàn)部分時(shí)段用戶(hù)訪(fǎng)問(wèn)慢玩荠,服務(wù)器負(fù)載較高,間接的影響了平臺(tái)產(chǎn)品運(yùn)營(yíng)贼邓,造成營(yíng)收損失阶冈;
平臺(tái)架構(gòu)第一次調(diào)整
隨著服務(wù)器壓力越來(lái)越大,我們考慮把一部分前端靜態(tài)化塑径,文件下載等服務(wù)從原來(lái)的WEB服務(wù)遷移出去女坑,同時(shí)增加代理服務(wù)器入口帶寬匆骗;服務(wù)器壓力暫減,平臺(tái)恢復(fù)正常瓮钥;
需要強(qiáng)調(diào)的是代理服務(wù)器桨武、接口服務(wù)必須使用內(nèi)網(wǎng);(這塊由于配置錯(cuò)誤七咧,導(dǎo)致流量上升時(shí),兩臺(tái)服務(wù)器同時(shí)網(wǎng)卡被打滿(mǎn),互相牽扯)
但不到一周我們又遇到了更大的問(wèn)題悼粮;
平臺(tái)架構(gòu)第二次調(diào)整
網(wǎng)絡(luò)架構(gòu)調(diào)整不到一周后翘地,平臺(tái)出現(xiàn)歷史上最重大的一次事故昧穿,導(dǎo)致業(yè)務(wù)中斷6個(gè)小時(shí);事情的起因源于我們的短信驗(yàn)證碼接口被黑,任意下行的驗(yàn)證碼導(dǎo)致用戶(hù)投訴使我們的驗(yàn)證碼通道當(dāng)天被封囊拜,用戶(hù)無(wú)法正常注冊(cè)使用產(chǎn)品身诺。惡意的下發(fā)也直接導(dǎo)致短信平臺(tái)賬戶(hù)余額幾乎被耗盡橄务。
相關(guān)的背景不細(xì)說(shuō),且說(shuō)說(shuō)從平臺(tái)上我們做了哪些改進(jìn)。
1、短信通道采用多通道,下發(fā)時(shí)按權(quán)重進(jìn)行路由,單價(jià)低一點(diǎn)的多發(fā)點(diǎn),遇到問(wèn)題時(shí)由平臺(tái)的短信模塊自動(dòng)更換通道下行官脓;保證驗(yàn)證碼短信到達(dá)仑撞;
2、檢查了下這次攻擊手段,其采用的是CC攻擊疲牵;針對(duì)這塊由于整理攻擊量不大识啦,原打算采購(gòu)阿里阿里的安全策略题翻,但其技術(shù)專(zhuān)員給的意見(jiàn)是平臺(tái)安全策略不一定能防的住嵌赠;所以我們自己構(gòu)建了防御體系:
1塑荒、Nginx 采用了NginxHttpLimitZoneModule,對(duì)于同一IP多次請(qǐng)求的直接拒絕請(qǐng)求姜挺;示例如下:
http {
limit_req_zone $binary_remote_addr zone=my_req_zone:10m rate=1r/s;
...
server {
...
location /somedir/ {
limit_req_zone zone= my_req_zone burst=2;
}
2齿税、同一IP單天如果請(qǐng)求頻次達(dá)到500,則直接使用centos ?的IPTABLES禁止其訪(fǎng)問(wèn)炊豪;
3凌箕、同一號(hào)碼單天只允許5次。
注:很多人可能會(huì)建議說(shuō)短信驗(yàn)證碼的獲取可以增加圖形驗(yàn)證碼词渤;但輸入驗(yàn)證碼的校驗(yàn)會(huì)增加用戶(hù)交互的步驟牵舱,影響轉(zhuǎn)化,我們做過(guò)一個(gè)測(cè)算缺虐,如果去掉圖形驗(yàn)證碼芜壁,渠道的用戶(hù)轉(zhuǎn)化會(huì)提升10%左右。
隨著產(chǎn)品運(yùn)營(yíng)時(shí)間增加高氮,流量引入越來(lái)越大慧妄,服務(wù)器又出現(xiàn)了響應(yīng)慢,影響轉(zhuǎn)化的現(xiàn)象剪芍;很快我們又做了第三次調(diào)整塞淹;
架構(gòu)第三次調(diào)整
隨著產(chǎn)品運(yùn)營(yíng)的深入對(duì)于公眾號(hào)用戶(hù)的模板消息推送,短信渠道的營(yíng)銷(xiāo)等引發(fā)了平臺(tái)流量在某個(gè)時(shí)間點(diǎn)突然上升罪裹,對(duì)于這種流量在于一個(gè)點(diǎn)上的突然上升給我們的系統(tǒng)造成了很大壓力饱普,特別是流量方面入口的服務(wù)器帶寬經(jīng)常被打滿(mǎn)运挫,雖說(shuō)整個(gè)平臺(tái)基于阿里云,可以通過(guò)臨時(shí)增加帶寬解決费彼,但購(gòu)買(mǎi)大的帶寬即浪費(fèi)費(fèi)用,而且在流量上升后服務(wù)器的負(fù)載也會(huì)突然上升口芍,每次有大流量時(shí)箍铲,服務(wù)器總會(huì)響應(yīng)特別滿(mǎn),影響流量轉(zhuǎn)化鬓椭;
針對(duì)這種情況我們又對(duì)架構(gòu)做了一次調(diào)整颠猴;策略如下:
1、徹底將文件下載單獨(dú)部署服務(wù)器小染,并購(gòu)買(mǎi)了阿里的CDN緩存;由于渠道包比較多,有時(shí)候緩存也會(huì)打打串掏导,但后來(lái)發(fā)現(xiàn)其比重不在晴股,我們把下載服務(wù)的帶寬就保持在了20M;運(yùn)營(yíng)至今沒(méi)出什么問(wèn)題踊赠;
2呵扛、對(duì)于接口服務(wù),我們采購(gòu)了一批輕量的阿里去服務(wù)筐带,部署了一堆應(yīng)用服務(wù)器今穿,并且在Nginx上做了軟負(fù)載策略;(當(dāng)時(shí)考慮如果代理服務(wù)也需要保障伦籍,就往域名上做蓝晒。)
3、對(duì)于應(yīng)用端的熱點(diǎn)數(shù)據(jù)我們做了緩存策略帖鸦,保證對(duì)于熱點(diǎn)渠道的應(yīng)用芝薇、頁(yè)面數(shù)據(jù)全部從緩存經(jīng)過(guò),這樣一來(lái)可以降低我們的數(shù)據(jù)庫(kù)壓力作儿;
總結(jié)
由于行業(yè)特殊性剩燥,整個(gè)產(chǎn)品運(yùn)營(yíng)周期不長(zhǎng),大概也就幾個(gè)月立倍,有很多地方還有進(jìn)一步的優(yōu)化空間灭红,但在產(chǎn)品初期公司投入不大,所以架構(gòu)的演進(jìn)很多時(shí)候也是邊打邊升級(jí)口注;我覺(jué)得這次的產(chǎn)品對(duì)于很多互聯(lián)產(chǎn)品变擒,或者小企業(yè)來(lái)說(shuō)是有一定的借鑒意義,所以碼出來(lái)供大家參考寝志;