資深直播技術(shù)大牛:淺談創(chuàng)業(yè)早期技術(shù)實現(xiàn)思路

0 評論 5561 瀏覽 29 收藏 7 分鐘

創(chuàng)業(yè)最開始的時候,是最難的時候。此時,從0到1,從無到有,做的是自己不曾做過的事情。因此,我們稱之為創(chuàng)業(yè)。

對于早期的技術(shù)而言,不要大而全,不用高精尖,先按需求實現(xiàn),活下來再說。我們需要考慮的是哪些可以用第三方云服務(wù),哪些可以直接用現(xiàn)成的開源方案或技術(shù),哪些需要自己開發(fā)實現(xiàn)。我們可以粗曠一些,要的是快速出活,讓產(chǎn)品活下來。

前期那么幾桿槍,就技術(shù)而行,要用團(tuán)隊成員最熟悉的。要有人能全盤掌控所有的技術(shù)棧。雖然我們用的是最熟悉的東西,但是在整個技術(shù)選型和開發(fā)過程中,需要有以下幾個基本的思路:

1. 原則和規(guī)范

注意解耦,分層,動靜分離、輕重分離的原則。

開發(fā)的規(guī)范,代碼及代碼分支管理規(guī)范、發(fā)布流程。

在開發(fā)過程中,對于公共的操作要抽象成組件。即我們常說的職責(zé)單一,如緩存操作,數(shù)據(jù)庫操作等等都封裝成組件,一邊開發(fā)一邊封裝。

2. 保留水平擴(kuò)展的能力

業(yè)務(wù)服務(wù)端無狀態(tài),會話通過 memcache 等來管理。

數(shù)據(jù)庫設(shè)計考慮到一定時間內(nèi)的容量,做好必要的分庫分表,如1到2年的容量規(guī)劃。

熱點數(shù)據(jù)緩存起來,將大量請求打到緩存而不是數(shù)據(jù)庫。

3. 業(yè)務(wù)隔離

隔離關(guān)鍵業(yè)務(wù)和非關(guān)鍵業(yè)務(wù)。

隔離主業(yè)務(wù)系統(tǒng)與旁路上報、日志上報等周邊系統(tǒng)。如果是 HTTP 服務(wù),至少要在域名級別保證其隔離。

不同端業(yè)務(wù)的隔離。如 PC 側(cè)的業(yè)務(wù)和 H5 的頁面可以是同一套代碼,但是域名不同,接入點不同,后端機(jī)器相同。

4. 用好開源的輪子

在滿足現(xiàn)有業(yè)務(wù)需求的情況下,對業(yè)界開源的輪子做技術(shù)選型。在能駕馭的前提下盡量使用已有的,成熟的,經(jīng)過了大量公司實踐的開源組件,如nginx,redis,和elk等等。

5. 必要的安全策略

安全是互聯(lián)網(wǎng)應(yīng)用無法回避的問題,我們需要在框架或基礎(chǔ)組件層面引入常見的 XSS 、CSRF、?和 SQL注入等安全問題的過濾。

對于靜態(tài)的能放到CDN的內(nèi)容盡量放到CDN。這樣做的好處:一是就近接入,提高訪問速度,二是減少后臺的服務(wù)壓力。

保留快速切到云服務(wù)防 DDoS 的能力。

在業(yè)務(wù)層面實現(xiàn)一定的規(guī)則以及聯(lián)合 WEB 容器實現(xiàn)一定程度上的防 CC 攻擊能力。

6. 備份、備份、備份,重要的事情說三遍

宕機(jī)、不同城市的機(jī)房同時起火、光纜被挖斷、數(shù)據(jù)錯亂等等各種神奇的事情都有可能出現(xiàn)。此時備份就顯示出其價值。我們不僅僅是要備份業(yè)務(wù)數(shù)據(jù)庫,還要備份代碼,和備份部署腳本等等。

當(dāng)所有的不幸都發(fā)生的時候,我們所有的東西都不見的時候,我們能夠很快地將應(yīng)用恢復(fù)到上一個可預(yù)見的備份版本。即我們必須有災(zāi)備方案,最好是能夠提前演練過。

7. 監(jiān)控可能出現(xiàn)的異常

使用第三方的監(jiān)控服務(wù)監(jiān)控網(wǎng)站的訪問可用性,服務(wù)的可用性等。

對業(yè)務(wù)的數(shù)據(jù)和關(guān)鍵的節(jié)點進(jìn)行監(jiān)控,比如做金融的需要確認(rèn)每個用戶的進(jìn)出錢要對得上賬,在這里至少要有一個監(jiān)控。

8. 灰度發(fā)布

前期按機(jī)器做灰度發(fā)布,一個簡單的腳本就可以搞定。后期可以實現(xiàn)按用戶灰度等,以此提高業(yè)務(wù)的連續(xù)性,保證業(yè)務(wù)的可用性。

從0到1,不管是技術(shù)還是業(yè)務(wù)都是不成熟的,大家都是摸著石頭過河。因此,我們需要快速的試錯,需要快速的反饋。

在技術(shù)層面,在保證以上一些原則的同時,快速迭代,實現(xiàn)產(chǎn)品需求。對于一些出錯統(tǒng)計類的東西直接交給第三方來實現(xiàn)。在業(yè)務(wù)層面,如果是網(wǎng)站,一些流量分析直接也是直接交給第三方。比如百度統(tǒng)計,Google Analytics等。對于具體的業(yè)務(wù),一個腳本每天早上跑出報表以郵件的形式發(fā)到指定郵件組。將相關(guān)人加入郵件組列表,以確保相關(guān)人等能接收到報表郵件。

以上是最開始需要注意的原則和必須要實現(xiàn)的東西。

在此之外,還有很重要的內(nèi)容需要持續(xù)搭建和實現(xiàn),包括但不限于以下這些:

(1)降級服務(wù)能力

在遇到正常或不正常的大流量時,可以在一定范圍內(nèi)將業(yè)務(wù)降級。業(yè)務(wù)降級可以前期提供手動降級能力,后續(xù)實現(xiàn)自動降級。

(2)第三方服務(wù)可替換

花錢能解決問題,但花錢一般不能真正的解決問題。因為花錢買來的可能是一個坑,還是一個需要自己填的坑。在使用第三方服務(wù)時,需要多家備用可替換,如短信服務(wù),多接兩家。平時兩家均衡分發(fā),或者按業(yè)務(wù)分發(fā)。當(dāng)某一家出問題時,直接切到正常的那家。

(3)日志中心

日志是定位問題的必備工具。當(dāng)后臺服務(wù)有多臺機(jī)器時,就不能一臺一臺的用 grep 搜索了,需要有一個集中存儲的地方,直接上一個 elk 也許能解決大部分的問題。

創(chuàng)業(yè)要的是能存活下來,技術(shù)要的是能產(chǎn)生價值。架構(gòu)會隨著業(yè)務(wù)的發(fā)展而不斷的演化。然而,在創(chuàng)業(yè)早期上面的原則是必須要守住的。

 

作者:冼牛

來源:http://www.leiphone.com/news/201611/DzmXNka0hLjwPtJo.html

本文來源于人人都是產(chǎn)品經(jīng)理合作媒體@雷鋒網(wǎng),作者@冼牛

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!