我不是很有经验,但我在一些大型Java项目(使用maven2)上使用了非常不同的方法来处理不同平台上的安装/交付。
1)其中之一是使用快照进行开发,然后发布组件和主要was应用程序的maven版本。因此,交付是:
团队将使用这些文件将新的应用程序版本放到不同的平台上。我认为这个过程是严格的,允许你总是很容易地保持不同的配置在生产中通过,但它不是真正的灵活,这个过程有点重,它引导我们有时做一些肮脏的事情,如推翻一个类别的战争,以修补一个回归……这是一个电子商务网站,每月有1000万独特的访问者和99.89%的可用性。
2)我看到的另一个方法是签出每个平台上的源,然后在本地存储库中安装快照工件。然后,应用服务器将使用.m2文件夹的这些快照。没有一个真正的交付过程,因为要在生产中添加一个新版本,我们只需更新组件/webapp的来源,完成一些maven干净的安装并重新启动应用服务器。我认为它更灵活,但我看到了一些缺点,这种方法对我来说似乎很危险。这个网站有一个前端,我不知道数字,但它远远低于第一个。该公司还为13万人的公司的大多数员工提供了一个大型后台办公室。
我想,根据网站、其对公众的展示和所需的可用性,我们必须根据需要调整交付策略。
我不是来问哪种解决方案是最好的,而是想知道你是否见过不同的东西,在这种情况下你会采用什么策略?
发布于 2010-12-29 16:36:18
在不处理网站的情况下,我必须参与异构环境中各种大型(Java)项目的发布管理过程:
我看到的常见方法是:
因此,在发布管理过程中要考虑的各种参数是:
(这并不是一个详尽的清单。
取决于应用程序发布的性质,还必须解决其他问题)
发布于 2011-01-09 19:16:01
这个问题的答案因确切的需求和团队结构的不同而有很大差异。
我为几个具有类似可用性要求的大型网站实现了流程,并且我发现有一些通用的原则奏效了:
一些额外的指示:
有关使用spring加载每个环境的不同属性的简单方法,请参见我的答案属性-来自另一个属性的占位符位置。
http://wiki.hudson-ci.org/display/HUDSON/M2+Release+Plugin如果使用此插件并确保只有CI服务器才有正确的凭据来执行maven版本,则可以确保所有版本的执行都是一致的。
http://decodify.blogspot.com/2010/10/how-to-build-one-click-deployment-job.html --部署发行版的简单方法。虽然对于大型站点,您可能需要一些更复杂的东西来确保不停机--例如,一次部署到一半的集群,并在两个部分- http://martinfowler.com/bliki/BlueGreenDeployment.html之间切换web流量。
http://continuousdelivery.com/是一个很好的网站和书籍,有一些很好的发布模式。
希望这能帮上忙-祝你好运。
发布于 2011-01-05 08:32:12
为了补充我之前的回答,您所处理的基本上是一个CM-RM问题:
换句话说,在第一个版本之后(即主要的初始开发已经结束),您必须继续发布,这就是CM应该管理的内容。
在您的问题中,RM的实现可以是( 1)或( 2),但我的要点是在该机制中添加以下内容:
https://stackoverflow.com/questions/4554218
复制相似问题