創(chuàng)業(yè)公司,覺得很重要的一點(diǎn),是快速的以市場(chǎng)行動(dòng)去驗(yàn)證業(yè)務(wù)方向的可行性。對(duì)于在創(chuàng)業(yè)公司的技術(shù)團(tuán)隊(duì),一支作為服務(wù)支撐的團(tuán)隊(duì),應(yīng)該遵循的設(shè)計(jì)原則是:
- 業(yè)務(wù)驅(qū)動(dòng)
- 橫向擴(kuò)展
- 互聯(lián)網(wǎng)通用技術(shù)
在此前提下,老夫基于阿里云服務(wù)實(shí)踐(是實(shí)踐不是YY)了一套技術(shù)架構(gòu)方案,如果你不幸步行于此,希望下圖沒有坑害到你。
與其說是架構(gòu)方案,還不如說是腳手架,因?yàn)槟闼吹降?,都是我們最常用的框架和技術(shù),可能不同的是,用了一些阿里云的一些服務(wù)。
對(duì)于上圖,老夫解答一些可能會(huì)存在疑問的點(diǎn)。
問題1:用了阿里云負(fù)載均衡(SLB),nginx做什么用?
SLB的主要作用的是負(fù)載均衡,同樣nginx也可以做。如果只是單純考慮負(fù)載均衡,阿里云的SLB優(yōu)越性更高。
但nginx可以做的更多,如反向代理、HTTP服務(wù)器,靈活性更高。所以如果要精簡(jiǎn),阿里云的SLB確實(shí)可以拿掉。
在實(shí)踐的過程中,老夫同時(shí)用了nginx和SLB,除了反向代理,nginx還承擔(dān)了一個(gè)靜態(tài)站點(diǎn)的HTTP服務(wù)。
問題2:nginx可以換成apache嗎?
別廢話,白菜蘿卜各有所愛,關(guān)于nginx和apache的對(duì)比自己google去。
問題3:圖中,一臺(tái)阿里云ECS只部署一個(gè)Tomcat服務(wù)么?
沒錯(cuò)。這里沒有統(tǒng)一的解決方案,你可以選擇在一臺(tái)服務(wù)器上開多個(gè)Tomcat端口,而對(duì)我來說一臺(tái)服務(wù)器一個(gè)Tomcat配置更精簡(jiǎn),再說這臺(tái)ECS掛了也不至于一個(gè)集群掛了,有錢任性!
問題4:Spring Session的應(yīng)用效果如何?
互聯(lián)網(wǎng)技術(shù)架構(gòu)很難不涉及到分布式,關(guān)于session共享的技術(shù)方案是必須要考慮的,它需要一套完整的session框架來做這件事。Spring Session提供了一套分布式Session的解決方案,默認(rèn)采用的是redis來管理session(目前最新的版本已經(jīng)支持DB、redis、mongodb、gemfire等方式存儲(chǔ)管理session)。
老夫?qū)崙?zhàn)過程中,Spring Session的Cookie和Header方案搭配使用,session存儲(chǔ)阿里云redis,目前沒有遇到任何障礙。
問題5:Swagger是什么鬼?
如果你涉及到APP的開發(fā),一定涉及API管理與文檔的書寫,Swagger是一個(gè)方便管理項(xiàng)目中API接口的框架。如果服務(wù)端開發(fā)同學(xué),想更好的管理API文檔,不妨嘗試下Swagger,你一定會(huì)愛上它的。 哦,對(duì)了,忘記告訴你,老夫其實(shí)用的是Springfox-一個(gè)基于SwaggerUI的庫(kù)。
問題6:如何評(píng)估阿里云redis、OSS、MQ?
在分布式session的解決方案中,session的最優(yōu)存儲(chǔ)位置是redis,如果前期用戶量少,甚至可以存儲(chǔ)在數(shù)據(jù)庫(kù)中,不建議維護(hù)在memcached中。初創(chuàng)型公司,不建議自己維護(hù)一套redis的集群環(huán)境,成本略高。所以,如果能使用阿里云的服務(wù),就使用之。
關(guān)于阿里云的對(duì)象存儲(chǔ)OSS,它應(yīng)該出自淘系內(nèi)部的TFS,搭配阿里云CDN使用效果是毋庸置疑的。而我們基本上用到最多的就是圖片、css、js的存儲(chǔ),這塊業(yè)界有很多免費(fèi)也較穩(wěn)定的存儲(chǔ),初創(chuàng)企業(yè)老夫更傾向于七牛云存儲(chǔ)。相比OSS,免費(fèi)額度高,文檔較完善,基本上需要的支持都有,比如圖片壓縮、水印、語音視頻分片等。
MQ,消息隊(duì)列服務(wù)。老夫其實(shí)沒用,因?yàn)槲矣?a href="http:///" target="_blank" rel="external">Reactor取代了,至少對(duì)于我目前的業(yè)務(wù)是可以滿足的,不過分布式消息隊(duì)列的重要性毋庸置疑,初創(chuàng)企業(yè)自己運(yùn)維不及直接使用有優(yōu)勢(shì)。
業(yè)務(wù)量上來后,怎么玩?先呵呵一下,再放一圖,各位看官歡迎樓下PK
老夫深深的吸一口煙,緩緩?fù)鲁鲆粓F(tuán)云圈,心中嘀咕一下:支撐的業(yè)務(wù)可以趕上淘寶了……
友情告知:以上使用阿里云的服務(wù),可以在公司的不同階段,自行替換為開源實(shí)現(xiàn)or自行實(shí)現(xiàn)和運(yùn)維。
|