一谣光、基于阿里云部署
(一)先了解整個(gè)阿里云部署的整體框架,系統(tǒng)知識(shí)芬为,如服務(wù)器ECS萄金,負(fù)載均衡SLB蟀悦,路由器,交換機(jī)氧敢,redis日戈,云數(shù)據(jù)庫(kù)等
負(fù)載均衡,英文名稱(chēng)為L(zhǎng)oad Balance孙乖,其意思就是分?jǐn)偟蕉鄠€(gè)操作單元上進(jìn)行執(zhí)行(我理解是:負(fù)載均衡會(huì)根據(jù)服務(wù)器的各種情況浙炼,隨機(jī)把請(qǐng)求給一個(gè)服務(wù)器)
redis:我的理解是相當(dāng)于一個(gè)中介。比如app發(fā)送一個(gè)請(qǐng)求唯袄,先去redis看下有無(wú)這個(gè)結(jié)果數(shù)據(jù)弯屈。如果有的話(huà) ,就直接取redis的數(shù)據(jù)回來(lái)恋拷,不會(huì)再訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)了资厉。因?yàn)閿?shù)據(jù)庫(kù)是保存在硬盤(pán)上,讀取數(shù)據(jù)庫(kù)數(shù)據(jù)比較慢蔬顾,所以用了redis酌住,還可以加快訪(fǎng)問(wèn)速度
(二)做出基本方案,類(lèi)似如下
負(fù)載均衡可以對(duì)應(yīng)多個(gè)端口號(hào)阎抒,服務(wù)器中可以同時(shí)部署多個(gè)項(xiàng)目(只要端口不沖突就行)
(三)購(gòu)買(mǎi)服務(wù)器酪我,負(fù)載均衡等
1、購(gòu)買(mǎi)服務(wù)器ECS
到阿里云購(gòu)買(mǎi)云服務(wù)器 ECS且叁。選了最便宜的套餐:CPU: 1核 / 內(nèi)存: 1024 MB / 帶寬:1Mbps / 操作系統(tǒng): CentOS 7.0購(gòu)買(mǎi)環(huán)節(jié)會(huì)設(shè)置 ssh 登陸密碼都哭,記下密碼。登陸到阿里云逞带,查看購(gòu)買(mǎi)的實(shí)例欺矫。注意公網(wǎng) IP,下一步會(huì)用到
2展氓、購(gòu)買(mǎi)負(fù)載均衡SLB穆趴,另外可根據(jù)項(xiàng)目情況,決定是否購(gòu)買(mǎi)云數(shù)據(jù)庫(kù)遇汞,或者自己安裝等
(四)登錄服務(wù)器ECS
打開(kāi) Terminal未妹, 輸入 ssh root@公網(wǎng)IP 登陸服務(wù)器。首次登陸會(huì)詢(xún)問(wèn)公鑰空入,yes 即可络它。關(guān)于 ssh 登陸,具體可以看SSH原理與運(yùn)用http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html 這篇文章
(五)環(huán)境部署
1歪赢、上傳文件到Linux云主機(jī):
本地系統(tǒng)為Windows系統(tǒng)化戳,可以使用命令安裝 yum -y install lrzsz,運(yùn)行 rz 埋凯,會(huì)自動(dòng)打開(kāi)一個(gè)Windows窗口点楼,選擇你要上傳到服務(wù)器的文件扫尖,點(diǎn)擊確定。ls 看一下掠廓,這個(gè)文件已經(jīng)在你的目錄下
本地系統(tǒng)為mac系統(tǒng)藏斩,打開(kāi)終端,使用命令scp或者ftp
服務(wù)器端口號(hào)為默認(rèn)的22:scp 文件名稱(chēng) root@ip地址:
服務(wù)器端口號(hào)非22:scp -p 端口號(hào) 文件名稱(chēng) root@ip地址:
2却盘、部署redis
可參考Redis的部署和啟動(dòng) https://yq.aliyun.com/articles/38257
3狰域、部署JDK+tomcat+jenkis等
可參考百人計(jì)劃成員的文章阿里云服務(wù)器環(huán)境部署JDK+Tomcat+Jenkins+Maven+Python+Git http://www.reibang.com/p/0e67b4545d08
4、根據(jù)方案配置端口
1)如果是tomcat黄橘,在cd tomcat/conf目錄下的文件server.xml中配置端
2)如果是java等代碼兆览,則在代碼里面的配置文件中配置即可(跟開(kāi)發(fā)了解具體的配置)
5、在阿里云配置SLB端口
6塞关、配置路由等
7抬探、啟動(dòng)項(xiàng)目腳本配置(因?yàn)橛袝r(shí)候開(kāi)發(fā)給的是開(kāi)發(fā)環(huán)境的配置,我們要改為測(cè)試環(huán)境的才可以)帆赢,也是我們說(shuō)的發(fā)布測(cè)試環(huán)境的項(xiàng)目
二小压、測(cè)試與數(shù)據(jù)庫(kù),linux的簡(jiǎn)單打交道
因?yàn)?9%的軟件椰于,處理的數(shù)據(jù)最終是需要落地怠益,到數(shù)據(jù)庫(kù)或者文件里的,我們必須知道是數(shù)據(jù)本身的問(wèn)題瘾婿,還是處理數(shù)據(jù)的過(guò)程出了問(wèn)題蜻牢。在測(cè)試過(guò)程中會(huì)出現(xiàn)一些諸如session過(guò)期、數(shù)值校驗(yàn)偏陪、參數(shù)傳遞錯(cuò)誤等現(xiàn)象抢呆,知道開(kāi)發(fā)的規(guī)則,是更好掌握測(cè)試結(jié)果的充分條件笛谦。
所以抱虐,建議測(cè)試都能拿到測(cè)試環(huán)境的賬號(hào)等,其實(shí)最嚴(yán)格的來(lái)說(shuō)饥脑,開(kāi)發(fā)是不能動(dòng)測(cè)試環(huán)境的恳邀,測(cè)試環(huán)境由測(cè)試人員掌管,但是看公司部門(mén)和測(cè)試人員的具體情況
(二)測(cè)試與數(shù)據(jù)庫(kù)的簡(jiǎn)單打交道
1好啰、測(cè)試通過(guò)查看表結(jié)構(gòu)轩娶,快速定位問(wèn)題
如發(fā)布評(píng)論功能儿奶,需求定義可以輸入文字200個(gè)框往,但最后你發(fā)布成功之后,只顯示了100個(gè)字闯捎,剩余的100字不見(jiàn)了椰弊。這時(shí)候直接跟開(kāi)發(fā)說(shuō)许溅?
====先查看表結(jié)構(gòu),看是否是字段的長(zhǎng)度設(shè)置的不夠秉版,如下圖贤重,升級(jí)表中,升級(jí)內(nèi)容的長(zhǎng)度是100清焕,是絕對(duì)不夠的
2并蝗、驗(yàn)證數(shù)據(jù)的正確性
對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)正確性的檢查,如時(shí)間的檢查秸妥。
比如一個(gè)活動(dòng)滚停,結(jié)束時(shí)間,你填的是2017/7/1.但是存到數(shù)據(jù)庫(kù)中是2017/7/1 00:00:00粥惧,這就代表你在2017/7/1號(hào)已經(jīng)看到這個(gè)活動(dòng)了=========正確是要存為2017/7/1 23:59:59
3键畴、查看linux下的日志和數(shù)據(jù)庫(kù)結(jié)合起來(lái)看的一個(gè)例子
你在APP中發(fā)現(xiàn)有2條重復(fù)記錄,這時(shí)候你去數(shù)據(jù)庫(kù)查突雪,數(shù)據(jù)庫(kù)中只有1條記錄起惕,這時(shí)候能看日志的,就去看下日志返回了幾條記錄
用tail -f 日志文件名稱(chēng) | grep '關(guān)鍵詞1'|grep '關(guān)鍵詞2'
具體關(guān)鍵詞咏删,可以平時(shí)多看接口文檔
4惹想、通過(guò)日志和數(shù)據(jù)庫(kù)進(jìn)行測(cè)試
如配置了排序規(guī)則,通過(guò)關(guān)鍵字查看(tail -f ?a.log|grep '關(guān)鍵字a')督函,看到后臺(tái)返回的排序是[431, 433, 449, 434, 442, 443, 444, 432]
此時(shí)根據(jù)需求去查看正確的排序
(二)測(cè)試與服務(wù)器linux的簡(jiǎn)單打交道
1勺馆、部署項(xiàng)目,有tomcat侨核,java的草穆;查看項(xiàng)目是否啟動(dòng)(***為需要查找的進(jìn)程名稱(chēng))ps -ef|grep ***
2、查看日志搓译,尤其是報(bào)錯(cuò)日志(如內(nèi)部錯(cuò)誤等):tail -f error.log悲柱;也可以查看前端上傳的數(shù)據(jù),后端返回的數(shù)據(jù)是否有錯(cuò)
如有腳本沒(méi)有跑些己,會(huì)報(bào)錯(cuò):
3豌鸡、發(fā)布測(cè)試環(huán)境的項(xiàng)目,一般是直接發(fā)布腳本段标,腳本是以.sh結(jié)尾的涯冠,發(fā)布操作,直接./腳本文件
現(xiàn)在有一種是直接發(fā)布腳本逼庞,腳本中會(huì)把最新代碼pull下來(lái)蛇更,這個(gè)方式是快,而且簡(jiǎn)單,只要開(kāi)發(fā)提交了代碼到相對(duì)于的分支即可派任,但是沒(méi)那么安全
一種是打成war包或者rar包砸逊,通過(guò)解壓之后,配置好部署文件再發(fā)布掌逛,這個(gè)方式是比較安全师逸,但是比較麻煩,而且屬于非集成豆混,失誤會(huì)比較多篓像,而且如果是頻繁更新發(fā)布的話(huà),會(huì)比較痛苦
最后的總結(jié):
我的習(xí)慣是:
1皿伺、一個(gè)新項(xiàng)目遗淳,我會(huì)拿到測(cè)試環(huán)境的數(shù)據(jù)庫(kù),服務(wù)器等賬號(hào)心傀。因?yàn)槲覀儠簳r(shí)沒(méi)有做數(shù)據(jù)庫(kù)的文檔屈暗,所有會(huì)要求開(kāi)發(fā)給我大概講下數(shù)據(jù)庫(kù)的各種表(這個(gè)有文檔的話(huà),就不用了脂男,可以自己主動(dòng)去了解)
2养叛、對(duì)于復(fù)雜功能,要求開(kāi)發(fā)補(bǔ)充具體的邏輯文檔或者口頭給測(cè)試人員說(shuō)明宰翅,防止漏測(cè)(這個(gè)覺(jué)得適合比較小的公司吧)
3弃甥、對(duì)于數(shù)據(jù)的更改要慎重,提前跟開(kāi)發(fā)溝通汁讼,免得是更改數(shù)據(jù)導(dǎo)致的bug