創(chuàng)業(yè)初期如何選擇APP的云服務(wù)器架構(gòu)

最近正好自己的軟件準(zhǔn)備推出第一個(gè)Demo,需要選擇合適的云服務(wù)器,作為一名懂點(diǎn)技術(shù)的非技術(shù)人員,我研究了一下各個(gè)云服務(wù)大佬的產(chǎn)品,看了一些書籍,也咨詢了幾位架構(gòu)牛人,總結(jié)了一些心得。記錄下來,與大家一起探討。如果恰好也有像我一樣的草根無經(jīng)驗(yàn)者,可以一起學(xué)習(xí)提高。大牛們就慎入了。

作為草根創(chuàng)業(yè)者,雖然都希望自己的App正式上線后能夠迅速擴(kuò)大影響,收獲不斷激增的用戶,但畢竟那是美好的理想。即便是如Google、Facebook、Twitter這樣的互聯(lián)網(wǎng)里程碑式的公司,也是從微小的狀態(tài)一步一步發(fā)展壯大的。如果你是一個(gè)嚴(yán)肅的創(chuàng)業(yè)者,一定對自己的idea有過成熟地思考,一定是希望自己的idea能夠從一個(gè)很小的痛點(diǎn)出發(fā)去滿足一小部分特定的用戶,之后通過不停地獲取用戶反饋,不斷快速迭代進(jìn)化。相信現(xiàn)如今,沒有一個(gè)冷靜的創(chuàng)業(yè)者一上來就信心滿滿地宣稱自己要做一個(gè)XX平臺(tái),要滿足10億人的需求。因此,就算你內(nèi)心里想著今后我的軟件要有100萬的DAU,你也沒有必要在一開始就按照那樣的規(guī)模去設(shè)計(jì)架構(gòu)。首先,滿足高并發(fā)、大流量、高可用、海量數(shù)據(jù)、能夠支持分布廣泛的用戶來源的系統(tǒng)架構(gòu),一定是相對非常復(fù)雜的架構(gòu)。作為創(chuàng)業(yè)者,在idea沒有真的投放市場,接受用戶檢驗(yàn)的時(shí)候,幻想一步到位去設(shè)計(jì)完善的架構(gòu),絕對不明智,甚至可以說是無用功。因?yàn)槟悴⒉荒芡耆珳?zhǔn)確預(yù)測未來你的瓶頸到底在哪里,準(zhǔn)確信息一定來自于實(shí)踐。其次,復(fù)雜的架構(gòu),必定意味著高價(jià)格。創(chuàng)業(yè)初期,更重要的是驗(yàn)證想法,調(diào)整發(fā)展方向,尋找真正可持續(xù)前進(jìn)的策略。創(chuàng)業(yè)的失敗率太高了,彈藥糧草的儲(chǔ)備,是能否創(chuàng)業(yè)成功的非常重要的因素,甚至可以說是最重要的因素。古人打仗,講究的是大軍未至,糧草先行。創(chuàng)業(yè)成功的一個(gè)重要原則是你得挺到你找到正確前進(jìn)方向的那一天。絕大部分人都是倒在黎明前的黑暗里。其實(shí)我挺反感很多人說什么這是因?yàn)橐懔陀職獠蛔?,這些都屬于風(fēng)涼話。當(dāng)大軍饑腸轆轆時(shí),如果糧草久久不至,只有一種結(jié)果,就是軍心渙散。從這個(gè)角度來講,創(chuàng)業(yè)開始階段,錢必須花在刀刃上??赡苡腥藭?huì)講,提前搭好架構(gòu),就是為了當(dāng)用戶數(shù)量激增時(shí),能夠讓服務(wù)器支撐,以獲得良好的用戶體驗(yàn)。那我要告訴你,就連Twitter在成長過程中,都經(jīng)歷過無數(shù)次宕機(jī),無數(shù)次系統(tǒng)崩潰。我們真不應(yīng)該總?cè)ハ胗辛薠X萬用戶之后怎么辦,而是應(yīng)該先踏踏實(shí)實(shí)地獲取1萬個(gè)用戶。

當(dāng)然,我說這么多,可不是說優(yōu)秀的架構(gòu)不重要。我們應(yīng)該有能力想到長遠(yuǎn),但行動(dòng)上絕不應(yīng)該超出當(dāng)下。服務(wù)器的架構(gòu),是為了滿足APP服務(wù)客戶的需要,只要遵循可復(fù)制、可擴(kuò)充的原理,是可以隨著業(yè)務(wù)量的增加不斷進(jìn)化和優(yōu)化的。上線初期的架構(gòu)一定是簡單的,也許只是一臺(tái)云服務(wù)器,但軟件一定要有可分解分層的潛力?,F(xiàn)在的云計(jì)算,都能簡單的在線擴(kuò)充計(jì)算能力、存儲(chǔ)空間、帶寬,各種彈性伸縮、分布式計(jì)算都越來越成熟,創(chuàng)業(yè)者的基礎(chǔ)技術(shù)環(huán)境應(yīng)該說越來越好。這里給大家推薦一本書《大型網(wǎng)站技術(shù)架構(gòu)_核心原理與案例分析》,這本書語言平實(shí),從基礎(chǔ)出發(fā)講解了大型優(yōu)秀網(wǎng)站所應(yīng)具備的優(yōu)秀架構(gòu),作者是李智慧,是阿里優(yōu)秀的架構(gòu)師。大家都經(jīng)歷過雙十一,都知道這淘寶搞出來的購物狂歡是多么的瘋狂,也能想象在雙十一期間淘寶天貓要經(jīng)歷的是什么樣的流量沖擊,那就能夠知道阿里的架構(gòu)是非常的優(yōu)秀的。

下面從這本書里摘取一個(gè)網(wǎng)站從小到大的成長過程中,架構(gòu)的合理變化路徑,以作Mark。雖然這是說網(wǎng)站架構(gòu)進(jìn)化之路,但是對于APP一樣有借鑒意義。

1、小型網(wǎng)站初期很少人訪問,應(yīng)用程序、文件、數(shù)據(jù)可以都放在一臺(tái)服務(wù)器上。


2、隨著業(yè)務(wù)發(fā)展,一臺(tái)服務(wù)器不能滿足需求。越來越多的用戶導(dǎo)致性能越來越差,這時(shí)需要將應(yīng)用程序、文件和數(shù)據(jù)庫部署在三臺(tái)服務(wù)器上。這三臺(tái)服務(wù)器對性能要求各不相同,應(yīng)用服務(wù)器需要處理大量業(yè)務(wù)邏輯,因此需要更快更強(qiáng)大的CPU;數(shù)據(jù)庫服務(wù)器需要快速磁盤檢索和數(shù)據(jù)緩存,因此需要更快的硬盤和更大的內(nèi)存;文件服務(wù)器需要更大的硬盤和更快的IO。


3、網(wǎng)站訪問特點(diǎn)和現(xiàn)實(shí)生活一樣遵循二八定律,80%的業(yè)務(wù)訪問集中在20%的數(shù)據(jù)上。如果需要進(jìn)一步優(yōu)化架構(gòu),就必須把這部分?jǐn)?shù)據(jù)建立緩存。緩存分為兩種,緩存在應(yīng)用服務(wù)器上的本地緩存和緩存在專門的遠(yuǎn)程分布式緩存服務(wù)器上。


4、單一應(yīng)用服務(wù)器能夠處理的請求連接有限,訪問高峰期,應(yīng)用服務(wù)器成為瓶頸,這時(shí)應(yīng)采用應(yīng)用服務(wù)器集群。


5、使用緩存后,絕大部分?jǐn)?shù)據(jù)庫讀操作可以通過不訪問數(shù)據(jù)庫服務(wù)器完成,但少部分讀以及所有的寫操作,還是需要訪問。下一步就是用2臺(tái)服務(wù)器將數(shù)據(jù)庫的讀寫分離,兩臺(tái)服務(wù)器之間采用主從復(fù)制機(jī)制。在應(yīng)用服務(wù)器端采用專門的數(shù)據(jù)訪問模塊。


6、由于中國存在不同地域網(wǎng)絡(luò)速度和互通的問題,可以采用CDN和反向代理。


7、如果訪問量持續(xù)增大,可以建立分布式數(shù)據(jù)庫系統(tǒng)和分布式文件系統(tǒng)。


8、為應(yīng)對越來越復(fù)雜的數(shù)據(jù)檢索需求,需要添加NoSQL和搜索引擎服務(wù)器。


9、大型網(wǎng)站為了滿足復(fù)雜的業(yè)務(wù)需求,通常會(huì)將不同的業(yè)務(wù)應(yīng)用拆分,分別搭建服務(wù)器。


10、當(dāng)服務(wù)器數(shù)量越來越龐大,所有的應(yīng)用服務(wù)器都需要和數(shù)據(jù)庫連接,造成極大的阻塞和復(fù)雜度,可以將不同業(yè)務(wù)之間的相同部分提取出來,獨(dú)立部署。通過分布式調(diào)用這些共有業(yè)務(wù)。


說了這么多,也許都是錯(cuò)的,畢竟我對于技術(shù)只是一知半解,如有誤導(dǎo),還請見諒。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容