亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

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

cc17 / 1937人閱讀

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

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

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

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

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

本文的目的是通過(guò)將聯(lián)調(diào)本地化,減少部分枯燥勞動(dòng)、以及無(wú)效的等待時(shí)間,提高團(tuán)隊(duì)的開(kāi)發(fā)效率。

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

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

基于Tomcat的WebAPI

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

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

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

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

# 對(duì)本地IP的Tomcat默認(rèn)端口8080訪問(wèn)重定向到80端口,這樣就可以直接使用域名訪問(wèn)了,避免有些應(yīng)用會(huì)禁止非80端口的訪問(wèn)。
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

# 類似的,允許外部機(jī)器通過(guò)外網(wǎng)IP(172.22.54.89)訪問(wèn)本機(jī),順便把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地址配置

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

這是因?yàn)闊o(wú)線熱點(diǎn)配置了AP隔離的安全特性:掛在同一Wifi AP下的機(jī)器禁止通過(guò)路由機(jī)(其實(shí)是交換機(jī))本身相互訪問(wèn)。

ID 機(jī)器 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號(hào)機(jī)訪問(wèn)2號(hào)機(jī)的traceroute回顯,可以看到正常訪問(wèn)。

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

Tomcat的配置

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

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



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

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

基于Pigeon的RpcAPI

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

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

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

Reference

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

泳道配置

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/70463.html

相關(guān)文章

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

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

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

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

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

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

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

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

    Kylin_Mountain 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<