不同区域的不同分支和构建[关闭]

问题描述 投票:0回答:1

这是一个理论问题,因此请多加赞赏。我在一家致力于全球扩张的初创公司工作。我们在澳大利亚和英国运行非常类似的devops设置(在扩大规模之前,使用约15个EC2部署老式木偶)。

在我们的后端中,我们运行Java,我们的应用程序使用区域标头/ nginx定向到正确的后端(uk / aus)。

我们开始遇到的问题是,不同区域所需的代码开始变得越来越不同,并且使所有东西都可以相互兼容变得乏味。例如,我们只是与英国的支付服务提供商集成在一起,而该支付服务提供商将永远不会在澳大利亚使用,但是为了使代码能够在澳大利亚部署,我们需要确保其与澳大利亚现有的支付服务提供商正常工作,并且不影响任何共享/基础代码和批处理作业等。

解决此问题的最佳方法是什么?我们是否只是开始在每个国家/地区经营不同的分支机构,然后将共同的功能合并到其中?还是我们编写额外的代码以使所有内容相互兼容,以便我们可以发布相同的版本。

git version-control architecture geolocation agile
1个回答
0
投票

这两种方法各有利弊。

单独的版本:

  • 减小的可执行文件大小
  • 更快的构建
  • 较少的集成问题要处理
  • 代码的构建具有更大的灵活性

组合版本:

  • 能够在地理位置之间快速切换要素的能力
  • 可以避免混乱的代码合并
  • 确保代码设计和标准的一致性
  • 可能是一种更简单的支持模型(即,仅一个应用程序要支持)

我个人会倾向于合并后的版本,除非出于某种原因导致这样做不切实际。

谨慎使用feature toggles和用户个人资料可以为您提供灵活而强大的应用程序。例如,您可以使用功能开关来允许canary releases,这有助于降低生产发行版的风险。他们还可以帮助您的组织交叉销售产品和特殊促销等营销策略。

© www.soinside.com 2019 - 2024. All rights reserved.