成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【效率專精系列】Beta環(huán)境不需要,本地聯(lián)調(diào)拯救開發(fā)效率

cc17 / 1891人閱讀

摘要:目前團隊中前后端聯(lián)調(diào)是較之個人多帶帶開發(fā)相對耗時的一個環(huán)節(jié),主要體現(xiàn)在環(huán)境下的部署時間較長。本文的目的是通過將聯(lián)調(diào)本地化,減少部分枯燥勞動以及無效的等待時間,提高團隊的開發(fā)效率。不需要更改的為外部,保持即可。

目前團隊中前后端聯(lián)調(diào)是較之個人多帶帶開發(fā)相對耗時的一個環(huán)節(jié),主要體現(xiàn)在:

beta環(huán)境下的部署時間較長。首先部署beta需要經(jīng)過push分支、合并沖突、build、部署四個步驟。在不考慮分支沖突的情況下,由于白天CI服務(wù)器壓力較大,以商戶后臺應(yīng)用為例,build耗時約1-2min,部署耗時約3-5min。本地的build則相對快得多,冷部署時間則和beta服務(wù)器差不多。

代碼迭代過程中等待時間所占比例較多。迭代具體指代碼更新 - 編譯&部署 - 驗證 - 代碼更新的開發(fā)循環(huán),而在beta編譯和部署時間則是這個循環(huán)的大頭,包括切換CI頁面的時間、操作push&update的時間、等待build的時間、等待部署的時間,每一步都需要肉眼確認,無法自動化。雖然人腦上下文切換的時間如果熟練之后也挺快的,但是beta部署不像本地部署可以應(yīng)用熱部署技術(shù),beta部署的時間代價無法縮減。

其他分支可能的干擾。由于beta上存在其他并行開發(fā)的分支,如果存在分支沖突,根據(jù)沖突行數(shù)和對業(yè)務(wù)代碼的了解程度的不同,則存在極不確定的merge時間,但是實際上merge步驟應(yīng)該放到聯(lián)調(diào)后和上線前,以保證不會因為分支上線時間的調(diào)整導(dǎo)致merge工作量的浪費。

本文的目的是通過將聯(lián)調(diào)本地化,減少部分枯燥勞動、以及無效的等待時間,提高團隊的開發(fā)效率。

業(yè)務(wù)團隊目前開發(fā)的API基本是兩種形式:WebAPI和RpcAPI,WebAPI通常是指以超文本傳輸協(xié)議(HTTP/HTTPS)為基礎(chǔ)的API,是現(xiàn)代流行的對外部第三方開發(fā)者提供服務(wù)的方式。例如Github API,它的編碼風格——特征狀態(tài)轉(zhuǎn)移(Rest)被大家視為經(jīng)典;RpcAPI則是通過各類RPC協(xié)議為基礎(chǔ)的API,各個公司的組件有所不同,團隊中用的是Pigeon。

下文將分為相應(yīng)的兩個部分闡述。

基于Tomcat的WebAPI

為了做到本地聯(lián)調(diào),只需要確保前端能訪問到后端Tomcat上的應(yīng)用即可。以macOS為例,我收集了相關(guān)的資料,有些步驟是實驗證明不必要的,有些步驟則是必須的。

防火墻權(quán)限和端口映射配置

【不需要】關(guān)閉系統(tǒng)偏好設(shè)置-安全性與隱私-防火墻

【需要】設(shè)置防火墻的端口轉(zhuǎn)發(fā)和訪問本機外網(wǎng)IP的權(quán)限。具體的設(shè)置方法不再贅述。

# 對本地IP的Tomcat默認端口8080訪問重定向到80端口,這樣就可以直接使用域名訪問了,避免有些應(yīng)用會禁止非80端口的訪問。
rdr pass on lo0 inet proto tcp from any to 127.0.0.1 port 80 -> 127.0.0.1 port 8080
rdr pass on en0 inet proto tcp from any to 127.0.0.1 port 80 -> 127.0.0.1 port 8080

# 類似的,允許外部機器通過外網(wǎng)IP(172.22.54.89)訪問本機,順便把8080端口重定向也設(shè)置了
rdr pass on lo0 inet proto tcp from any to 172.22.54.89 port 80 -> 172.22.54.89 port 8080
rdr pass on en0 inet proto tcp from any to 172.22.54.89 port 80 -> 172.22.54.89 port 8080
Hosts配置

配置文件位于/etc/hosts。

【不一定需要】將beta域名的DNS地址重定向到本地

#127.0.0.1    web-application.dev.meituan.com
IP地址配置

【不一定需要】雙方機器的IP切換到不同路由器下。

這是因為無線熱點配置了AP隔離的安全特性:掛在同一Wifi AP下的機器禁止通過路由機(其實是交換機)本身相互訪問。

ID 機器 SSID IP
1 mac mtdp 172.22.54.89
2 mobile mtdp_tech 172.22.38.121
3 mobile mtdp 172.22.50.98

1號機訪問2號機的traceroute回顯,可以看到正常訪問。

1號機訪問3號機的traceroute回顯,可以看到網(wǎng)絡(luò)包在網(wǎng)關(guān)這一層就被丟棄了。這也就解釋了mac和手機處于mtdp時,Charles抓包失敗的情況。

Tomcat的配置

配置文件位于%TOMCAT_HOME%/conf/context.xml。

【不需要】設(shè)置如下的IP過濾器,保持默認即可。



【不需要】更改Engine的defaultHost為外部IP,保持localhost即可。

【不需要】更改Host的name為外部IP,保持localhost即可。

基于Pigeon的RpcAPI

【需要】配置相同的泳道。

Pigeon是公司內(nèi)部的Rpc組件,支持泳道特性,大大簡化了配置過程。配置了泳道,所有的請求也會被隔離起來了,在A泳道里的請求只會發(fā)送給A,而不會發(fā)送給B。利用該特性,我們可以把Rpc上下游的服務(wù)都加入到同一個泳道中,使雙方的IP位于服務(wù)發(fā)現(xiàn)列表的第一位。

上下游雙方編輯本地文件/data/webapps/appenv,在文件末尾新添加一行swimlane=XXX,此處的值可以是任意的,盡量不要和其他人配置相同就可以了。然后雙方各自啟動服務(wù),在test.pigeon.sankuai.com中或者訪問ServiceIP:4080/services確認已位于統(tǒng)一泳道。

Reference

【二層隔離技術(shù)漫談】“一:為什么要二層隔離”&“二:端口隔離技術(shù)”

泳道配置

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/70463.html

相關(guān)文章

  • 效率專精系列】我有一個夢想:提高開發(fā)效率,晚上回家吃雞

    摘要:效率專精系列善用統(tǒng)一描述語言提升開發(fā)效率分鐘搞定環(huán)境配置與使用考慮到篇幅較長的文檔反復(fù)修改的情況,要快速找到修改點比較困難。 之前零零散散寫了幾篇文章,主要是實際開發(fā)過程中一些效率痛點和相應(yīng)的改善方法。今天抽空溫故知新,把之前的內(nèi)容串起來,做了個小總結(jié),即《效率專精系列》小系列的總集篇。 回顧項目開發(fā)流程 開發(fā)一個新項目時,開發(fā)流程大概分成以下幾步: 設(shè)計方案,并落地成設(shè)計文檔 設(shè)計...

    zhaot 評論0 收藏0
  • 效率專精系列】善用API統(tǒng)一描述語言提升RestAPI開發(fā)效率

    摘要:其標準為前身是,提供強大的在線編輯功能,包括語法高亮錯誤提示自動完成實時預(yù)覽,并且支持用戶以格式撰寫導(dǎo)入導(dǎo)出轉(zhuǎn)換文檔。 團隊內(nèi)部RestAPI開發(fā)采用設(shè)計驅(qū)動開發(fā)的模式,即使用API設(shè)計文檔解耦前端和后端的開發(fā)過程,雙方只在聯(lián)調(diào)與測試時耦合。在實際開發(fā)和與前端合作的過程中,受限于眾多因素的影響,開發(fā)效率還有進一步提高的空間。本文的目的是優(yōu)化工具鏈支持,減少一部分重復(fù)和枯燥的勞動。 現(xiàn)狀...

    tianyu 評論0 收藏0
  • 效率專精系列】幾種常見的JVM熱部署技術(shù)及實現(xiàn)難點淺談

    摘要:而熱部署技術(shù)能夠幫助開發(fā)人員減少重新部署的等待時間。本文的目的為調(diào)研熱部署的技術(shù)現(xiàn)狀及其對開發(fā)效率的幫助,并簡單梳理其技術(shù)實現(xiàn)的難點。熱部署技術(shù)總結(jié)熱部署目前有多種技術(shù)實現(xiàn)官方開源商業(yè)。 開發(fā)、自測、聯(lián)調(diào)期間代碼可能會被頻繁地修改,通常即使只增加了一行代碼,都需要重啟容器以檢查執(zhí)行效果。而熱部署技術(shù)能夠幫助開發(fā)人員減少重新部署的等待時間。本文的目的為調(diào)研熱部署的技術(shù)現(xiàn)狀及其對開發(fā)效率的...

    dongfangyiyu 評論0 收藏0
  • 效率專精系列】善用插件提升MyBatis開發(fā)效率

    摘要:通過插件更優(yōu)雅地生成和的樣板代碼通過插件不污染地實現(xiàn)優(yōu)雅分頁。使用步驟引入依賴,在或的配置中進行配置。提供語法提示自動補全錯誤提示導(dǎo)航功能。該插件提供了類似的功能,根據(jù)接口的方法名推斷含義,然后在中直接生成對應(yīng)的。 團隊使用Mybatis作為數(shù)據(jù)庫訪問框架。不同于Hibernate這種采用經(jīng)典面向?qū)ο笏枷朐O(shè)計的ORM框架,Mybatis是面向過程的,它只做了過程到SQL語句的映射。兩者...

    Kylin_Mountain 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<