1 項(xiàng)目發(fā)布流程?
2 項(xiàng)目管理怎么做的职烧?用什么工具扁誓?
3 為什么需要 DevOps 防泵?DevOps有哪些優(yōu)勢(shì)蚀之?
技術(shù)優(yōu)勢(shì):
- 持續(xù)的軟件交付
- 縮短修復(fù)缺陷的交付時(shí)間
- 更快地解決問(wèn)題
商業(yè)利益:
- 更快速地傳遞功能
- 更穩(wěn)定的操作環(huán)境
- 有更多時(shí)間可以增加價(jià)值(而不是修復(fù)/維護(hù))
4 DevOps跟傳統(tǒng)開(kāi)發(fā)的區(qū)別?
- 手動(dòng) ——》自動(dòng)
- 線(xiàn)性 ——》閉環(huán)
5 Devops是什么捷泞?DevOps怎么落地足删?
DevOps定義
DevOps是Development和Operations的組合,是一種方法論锁右,是一組過(guò)程失受、方法與系統(tǒng)的統(tǒng)稱(chēng)讶泰,用于促進(jìn)應(yīng)用開(kāi)發(fā)、應(yīng)用運(yùn)維和質(zhì)量保障(QA)部門(mén)之間的溝通拂到、協(xié)作與整合痪署,以期打破傳統(tǒng)開(kāi)發(fā)和運(yùn)營(yíng)之間的壁壘和鴻溝。
DevOps并不指代某一特定的軟件工具或軟件工具組合兄旬。各種工具軟件或軟件組合可以實(shí)現(xiàn)DevOps的概念方法狼犯。其本質(zhì)是一整套的方法論,而不是指某種或某些工具集合领铐,與軟件開(kāi)發(fā)中設(shè)計(jì)到的OOP悯森、AOP、IOC(或DI)等類(lèi)似绪撵,是一種理論或過(guò)程或方法的抽象或代稱(chēng)瓢姻。
DevOps是一種重視“軟件開(kāi)發(fā)人員(Dev)”和“IT運(yùn)維技術(shù)人員(Ops)”之間溝通合作的文化、運(yùn)動(dòng)或慣例音诈。通過(guò)自動(dòng)化“軟件交付”和“架構(gòu)變更”的流程幻碱,來(lái)使得構(gòu)建、測(cè)試细溅、發(fā)布軟件能夠更加地快捷收班、頻繁和可靠。具體來(lái)說(shuō)谒兄,就是在軟件交付和部署過(guò)程中提高溝通與協(xié)作的效率摔桦,旨在更快、更可靠的的發(fā)布更高質(zhì)量的產(chǎn)品承疲。
DevOps落地
- 工具
- 流程
- 文化
6 CI(代表產(chǎn)品Jenkins)
CI (Continuous Integration)邻耕,持續(xù)集成。開(kāi)發(fā)人員將會(huì)頻繁地向主干提交代碼燕鸽,這些新提交的代碼在最終合并到主干前兄世,需要經(jīng)過(guò)編譯和自動(dòng)化測(cè)試流進(jìn)行驗(yàn)證。 主要用于整合團(tuán)隊(duì)開(kāi)發(fā)中不同開(kāi)發(fā)者提交到開(kāi)發(fā)倉(cāng)庫(kù)中的項(xiàng)目代碼變化啊研,并即時(shí)整合編譯御滩,檢查整合編譯錯(cuò)誤的服務(wù)。它需要一天中多次整合編譯代碼的能力党远,若出現(xiàn)整合錯(cuò)誤削解,可以?xún)?yōu)異地準(zhǔn)確定位提交錯(cuò)誤源。
7 CD
- CD沟娱,Continuous Delivery氛驮,持續(xù)交付,并不是指軟件每一個(gè)改動(dòng)都要盡快部署到產(chǎn)品環(huán)境中济似,它指的是任何的代碼修改都可以在任何時(shí)候?qū)嵤┎渴稹?/li>
- 持續(xù)交付表示的是一種能力矫废,而持續(xù)部署表示的則一種方式盏缤。持續(xù)部署是持續(xù)交付的最高階段。
- CD蓖扑,Continuous Deployment唉铜,持續(xù)部署,意味著所有的變更都會(huì)被自動(dòng)部署到生產(chǎn)環(huán)境中律杠。持續(xù)交付意味著所有的變更都可以被部署到生產(chǎn)環(huán)境中打毛,但是出于業(yè)務(wù)考慮,可以選擇不部署俩功。如果要實(shí)施持續(xù)部署幻枉,必須先實(shí)施持續(xù)交付。
8 AB Test與灰度發(fā)布诡蜓?
AB測(cè)試就是指把少部分用戶(hù)分成平均的兩組熬甫,其中一組用戶(hù)體驗(yàn)網(wǎng)站改版的A版本,另外一組用戶(hù)體驗(yàn)網(wǎng)站改版的B版本蔓罚,分別記錄清楚相關(guān)的所有用戶(hù)操作數(shù)據(jù)以后再進(jìn)行精確的比對(duì)椿肩,最后分析得出哪一個(gè)版本是用戶(hù)最喜愛(ài)的。
灰度發(fā)布則是指在新的功能上線(xiàn)以及沒(méi)有上線(xiàn)之間能夠保證新的版本可以穩(wěn)定過(guò)渡的一種發(fā)布方法豺谈,可以在灰度發(fā)布的過(guò)程當(dāng)中解決一些問(wèn)題或者對(duì)新版本做出一些可以提高用戶(hù)體驗(yàn)的調(diào)整郑象,這是保證網(wǎng)站可以平穩(wěn)更新到新版本的有效過(guò)程。
那么AB測(cè)試和灰度發(fā)布關(guān)系就非常好理解了茬末,可以說(shuō)AB測(cè)試就是灰度發(fā)布的一種表現(xiàn)方法厂榛,當(dāng)然除了AB測(cè)試以外,灰度發(fā)布還有其他的發(fā)布方法丽惭,但是最經(jīng)常用到的击奶,也最有效果的就是AB測(cè)試法了。
AB測(cè)試方法可以通過(guò)大量的用戶(hù)真實(shí)數(shù)據(jù)來(lái)得出用戶(hù)的具體操作行為喜好责掏,網(wǎng)站可以根據(jù)用戶(hù)的操作行為來(lái)對(duì)新版本進(jìn)行必要的改進(jìn)工作柜砾,除了用戶(hù)的體驗(yàn)以外,設(shè)計(jì)方面的考慮以及系統(tǒng)的質(zhì)量方面都是要考慮到的换衬,要保證網(wǎng)站可以順利的過(guò)渡到全新的版本痰驱,網(wǎng)站改版的最終目地還是增加用戶(hù)的粘性以及付費(fèi)率,所以出發(fā)點(diǎn)一定要明確瞳浦,在保證網(wǎng)站沒(méi)有技術(shù)性漏洞的前提下担映,要最大程度的從用戶(hù)操作習(xí)慣的角度出發(fā)來(lái)進(jìn)行必要的改版工作。
以上就是我們?yōu)榇蠹铱偨Y(jié)的AB測(cè)試和灰度發(fā)布關(guān)系了术幔,可以說(shuō)這兩者是一個(gè)包含的關(guān)系另萤,灰度發(fā)布方法里面是可以包含AB測(cè)試的,反之诅挑,AB測(cè)試是灰度發(fā)布眾多方法當(dāng)中的其中一個(gè)四敞。
9 TDD、BDD拔妥、ATDD忿危、DDD
- TDD:測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(Test-Driven Development)
測(cè)試驅(qū)動(dòng)開(kāi)發(fā)是敏捷開(kāi)發(fā)中的一項(xiàng)核心實(shí)踐和技術(shù),也是一種設(shè)計(jì)方法論没龙,TDD首先考慮使用需求(對(duì)象铺厨、功能、過(guò)程硬纤、接口等)解滓,主要是編寫(xiě)測(cè)試用例框架對(duì)功能的過(guò)程和接口進(jìn)行設(shè)計(jì),而測(cè)試框架可以持續(xù)進(jìn)行驗(yàn)證筝家。大行其道的一些模式對(duì)TDD的支持都非常不錯(cuò)洼裤,比如MVC和MVP等。
- BDD:行為驅(qū)動(dòng)開(kāi)發(fā)(Behavior Driven Development)
也就是行為驅(qū)動(dòng)開(kāi)發(fā)溪王。這里的B并非指的是Business腮鞍,實(shí)際上BDD可以看作是對(duì)TDD的一種補(bǔ)充,讓開(kāi)發(fā)莹菱、測(cè)試移国、BA以及客戶(hù)都能在這個(gè)基礎(chǔ)上達(dá)成一致,JBehave之類(lèi)的BDD框架道伟。
- ATDD:驗(yàn)收測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(Acceptance Test Driven Development)
通過(guò)單元測(cè)試用例來(lái)驅(qū)動(dòng)功能代碼的實(shí)現(xiàn)迹缀,團(tuán)隊(duì)需要定義出期望的質(zhì)量標(biāo)準(zhǔn)和驗(yàn)收細(xì)則,以明確而且達(dá)成共識(shí)的驗(yàn)收測(cè)試計(jì)劃(包含一系列測(cè)試場(chǎng)景)來(lái)驅(qū)動(dòng)開(kāi)發(fā)人員的TDD實(shí)踐和測(cè)試人員的測(cè)試腳本開(kāi)發(fā)蜜徽。面向開(kāi)發(fā)人員裹芝,強(qiáng)調(diào)如何實(shí)現(xiàn)系統(tǒng)以及如何檢驗(yàn)。
- DDD:領(lǐng)域驅(qū)動(dòng)開(kāi)發(fā)(Domain Drive Design)
DDD指的是Domain Drive Design娜汁,也就是領(lǐng)域驅(qū)動(dòng)開(kāi)發(fā),DDD實(shí)際上也是建立在這個(gè)基礎(chǔ)之上嫂易,因?yàn)樗P(guān)注的是Service層的設(shè)計(jì),著重于業(yè)務(wù)的實(shí)現(xiàn),將分析和設(shè)計(jì)結(jié)合起來(lái)掐禁,不再使他們處于分裂的狀態(tài)怜械,這對(duì)于我們正確完整的實(shí)現(xiàn)客戶(hù)的需求,以及建立一個(gè)具有業(yè)務(wù)伸縮性的模型傅事。
10 黑盒測(cè)試缕允、白盒測(cè)試、灰盒測(cè)試
- 黑盒測(cè)試:外科
- 灰盒測(cè)試:介于外科和內(nèi)科之間
- 白盒測(cè)試:內(nèi)科
11 全鏈路壓測(cè)怎么做蹭越?
1障本、核心鏈路梳理
各業(yè)務(wù)研發(fā)團(tuán)隊(duì)的owner對(duì)我們目前的核心業(yè)務(wù)鏈路進(jìn)行了梳理,主要包括:首頁(yè)、商品驾霜、訂單案训、支付、用戶(hù)粪糙、風(fēng)控强霎、優(yōu)惠券、大促活動(dòng)蓉冈、基礎(chǔ)服務(wù)城舞。下面為示意圖表:
2、鏡像環(huán)境準(zhǔn)備
由于本次壓測(cè)是在和生產(chǎn)等配的鏡像環(huán)境進(jìn)行寞酿,相當(dāng)于從零開(kāi)始搭建一套環(huán)境家夺,無(wú)論是資源準(zhǔn)備、服務(wù)部署還是服務(wù)聯(lián)調(diào)驗(yàn)證伐弹,都耗費(fèi)了較多的時(shí)間拉馋,從中也發(fā)現(xiàn)了我們之前的一些不足,累積了很多經(jīng)驗(yàn)掸茅。
3椅邓、壓測(cè)任務(wù)排期
根據(jù)大促任務(wù)規(guī)劃,性能測(cè)試同學(xué)從中拆解出了較為詳細(xì)的壓測(cè)任務(wù)昧狮,并進(jìn)行排期景馁,同時(shí)積極主動(dòng)的推動(dòng)了整個(gè)壓測(cè)任務(wù)的開(kāi)展實(shí)施。
4逗鸣、專(zhuān)項(xiàng)預(yù)案溝通
專(zhuān)項(xiàng)預(yù)案主要包括如下幾項(xiàng):限流合住、降級(jí)、熔斷撒璧、脈沖透葛、破壞性驗(yàn)證五種場(chǎng)景。
5卿樱、大促指標(biāo)溝通
為保證壓測(cè)流量和生產(chǎn)預(yù)估流量對(duì)齊僚害,由技術(shù)負(fù)責(zé)人牽頭,和運(yùn)營(yíng)產(chǎn)品同學(xué)進(jìn)行了多次溝通繁调,確認(rèn)了本次雙十一大促活動(dòng)相關(guān)的活動(dòng)場(chǎng)次萨蚕、時(shí)間段、優(yōu)惠券投放量蹄胰、預(yù)估DAU等相關(guān)關(guān)鍵指標(biāo)岳遥。
6、壓測(cè)模型梳理
壓測(cè)模型的梳理裕寨,主要包括核心業(yè)務(wù)鏈路的優(yōu)先級(jí)浩蓉、調(diào)用依賴(lài)關(guān)系派继、流量模型轉(zhuǎn)化(漏斗模型)等,限于保密措施捻艳,這里不過(guò)多介紹驾窟。
7、流量模型梳理
關(guān)于流量模型讯泣,建議梳理出核心交易鏈路對(duì)應(yīng)的依賴(lài)大圖纫普,并粗估雙十一峰值數(shù)據(jù)阅悍,作為接下來(lái)壓測(cè)好渠、性能優(yōu)化的技術(shù)目標(biāo)。
8节视、線(xiàn)上容量評(píng)估
為了在壓測(cè)開(kāi)展前對(duì)目前線(xiàn)上的服務(wù)容量有一個(gè)初步的了解拳锚,需要對(duì)各個(gè)核心服務(wù)、消息隊(duì)列寻行、緩存以及DB的容量進(jìn)行了梳理匯總霍掺。
9、線(xiàn)上鏈路監(jiān)控
監(jiān)控就是我們的眼睛拌蜘,有了監(jiān)控杆烁,才能快速發(fā)現(xiàn)問(wèn)題并定位修復(fù)問(wèn)題。這一點(diǎn)简卧,基礎(chǔ)架構(gòu)的同學(xué)為此做了很多工作兔魂。比如:鏈路追蹤監(jiān)控的Cat、可視化監(jiān)控大盤(pán)Grafana以及更多的監(jiān)控組件举娩。
10析校、壓測(cè)數(shù)據(jù)準(zhǔn)備
為了盡可能保證壓測(cè)數(shù)據(jù)的真實(shí)性,我們的解決方案是復(fù)制生產(chǎn)庫(kù)的數(shù)據(jù)铜涉,進(jìn)行脫敏和可用性驗(yàn)證智玻,用來(lái)做壓測(cè)的基礎(chǔ)數(shù)據(jù)。在數(shù)據(jù)脫敏和可用性驗(yàn)證這點(diǎn)需要高度重視芙代。
11吊奢、資損防控梳理
由于現(xiàn)在雙十一大促活動(dòng)主要玩法都是優(yōu)惠券以及滿(mǎn)減相關(guān),且涉及到訂單支付業(yè)務(wù)纹烹,因此資損防控也是準(zhǔn)備階段的重中之重页滚。
12、確定性能水位
為了精確測(cè)定各服務(wù)單機(jī)的水位性能滔韵,并留存一定的buffer作為流量高峰時(shí)刻的緩沖逻谦,結(jié)合業(yè)內(nèi)經(jīng)驗(yàn)和我們當(dāng)前的系統(tǒng)情況,最終確定以單機(jī)40%的水位性能作為線(xiàn)上擴(kuò)容和容量規(guī)劃的驗(yàn)收標(biāo)準(zhǔn)陪蜻。
13邦马、輸出測(cè)試方案
前期做了相當(dāng)多的準(zhǔn)備工作,在正式開(kāi)展全鏈路壓測(cè)之前,性能測(cè)試同學(xué)輸出了本次雙十一全鏈路壓測(cè)的測(cè)試方案滋将,通過(guò)評(píng)審后邻悬,全鏈路壓測(cè)工作就可以正式開(kāi)展。
12 性能測(cè)試怎么做随闽?
12.1 性能測(cè)試指標(biāo)
- 響應(yīng)時(shí)間
- 最大并發(fā)用戶(hù)數(shù)
- 吞吐量:?jiǎn)挝粫r(shí)間內(nèi)系統(tǒng)處理用戶(hù)的請(qǐng)求的數(shù)量
- QPS:Query per second父丰,每秒系統(tǒng)能夠處理的查詢(xún)業(yè)務(wù)數(shù)量
- TPS:Transaction per second,每秒系統(tǒng)能夠處理的事務(wù)數(shù)量
制造行業(yè):10TPS~50TPS
金融行業(yè):1000TPS~9000TPS
保險(xiǎn)行業(yè):100TPS~1000TPS
互聯(lián)網(wǎng)電子商務(wù):10000TPS~100000TPS
互聯(lián)網(wǎng)中型網(wǎng)站:100TPS~500TPS
互聯(lián)網(wǎng)小型網(wǎng)站: 50TPS~100TPS - HPS:HTTP per second掘宪,每秒系統(tǒng)處理的HTTP請(qǐng)求數(shù)量
- 性能計(jì)數(shù)器:描述服務(wù)器或操作系統(tǒng)性能的一些數(shù)據(jù)指標(biāo)蛾扇。
- 使用內(nèi)存數(shù)
- 進(jìn)程時(shí)間
- 資源利用率
根據(jù)《摩訶僧祗律》記載 :一剎那者為一念,二十念為一瞬魏滚,二十瞬為一彈指镀首,二十彈指為一羅預(yù),二十羅預(yù)為一須臾鼠次,一日一夜有三十須臾更哄。
結(jié)論:一瞬間為0.36 秒,一剎那有 0.018 秒.一彈指長(zhǎng)達(dá) 7.2 秒
12.2 性能測(cè)試工具
- ApacheBench:輕量級(jí)工具,主要用于HTTP協(xié)議的性能測(cè)試腥寇,沒(méi)有圖形界面
- Apache JMeter:開(kāi)源
- HP LoadRunner:閉源成翩,最初是Mercury公司開(kāi)發(fā)的,后被HP收購(gòu)
13 自動(dòng)化測(cè)試
Selenium
14 mock&打樁
- 打樁赦役,為被測(cè)服務(wù)的請(qǐng)求創(chuàng)建一些有著預(yù)設(shè)響應(yīng)的打樁服務(wù)麻敌。比如設(shè)置積分賬戶(hù),當(dāng)有請(qǐng)求查詢(xún)客戶(hù)aaa的余額時(shí)扩劝,它應(yīng)該返回100萬(wàn)庸论,這時(shí)候的測(cè)試不關(guān)心這個(gè)打樁服務(wù)被訪(fǎng)問(wèn)了多少次。
- mock棒呛,在打樁基礎(chǔ)上還會(huì)進(jìn)一步驗(yàn)證請(qǐng)求本身是否被正確調(diào)用聂示。如果與期望請(qǐng)求不匹配,測(cè)試便會(huì)失敗簇秒。
15 藍(lán)綠部署&金絲雀發(fā)布區(qū)別鱼喉?
- 藍(lán)綠部署,部署兩份趋观,但只有一份接受真正的請(qǐng)求扛禽,另一份經(jīng)過(guò)冒煙測(cè)試后,切換流量到新版本皱坛。
- 金絲雀發(fā)布编曼,灰度發(fā)布,將部分生產(chǎn)流量引流到新部署的系統(tǒng)剩辟,來(lái)驗(yàn)證系統(tǒng)是否按照預(yù)期執(zhí)行掐场,新舊版本共存的時(shí)間更長(zhǎng)往扔,而且經(jīng)常會(huì)調(diào)整流量。
16 摩爾定律&康威定律
- 摩爾定律:集成電路集體管的數(shù)目每18個(gè)月翻一番熊户。
- 康威定律:如果你有四個(gè)小組開(kāi)發(fā)一個(gè)編譯器萍膛,那你會(huì)得到一個(gè)四步編譯器∪卤ぃ康威定律強(qiáng)調(diào)的是系統(tǒng)架構(gòu)跟組織結(jié)構(gòu)相匹配蝗罗。