我不是那么有经验,但我在一些大型Java EE项目(使用maven2)上工作,使用非常独特的方式来处理不同平台上的安装/交付。
1)其中一个是使用快照进行开发,然后发布组件和主要Web应用程序的maven版本。因此,交付是:
团队将使用这些文件将新的应用程序版本放在不同的平台上。 我认为这个过程是严格的,允许你总是轻松地保持生产中传递的不同配置,但它不是很灵活,过程有点沉重,它让我们有时做一些肮脏的事情,如重写战争类补丁回归... 这是一个电子商务网站,每月有1000万独立访客,可用率为99.89%。
2)我看到的另一个是检查每个平台上的源,然后将快照工件安装在本地存储库中。然后,应用程序服务器将使用.m2文件夹的这些快照。 没有真正的交付流程,因为要将新版本投入生产,我们只需要更新组件/ webapps的来源,做一些maven clean install并重新启动应用程序服务器。 我认为它更灵活,但我看到一些缺点,这种方法对我来说似乎很危险。 这个网站有一个前台,我不知道数字,但它远远少于第一个。它还为13万人公司的大多数员工提供了一个很大的后台。
我认为,根据网站,公众的展示和所需的可用性,我们必须根据需要调整交付策略。
我不是在问这个解决方案是最好的,但想知道你是否看到过不同的东西,以及在哪种情况下会使用哪种策略?
答案 0 :(得分:3)
在不处理网站交易的情况下,我不得不参与异构环境中各种大型(Java)项目的发布管理流程:
我看到的常用方法是:
因此,发布管理过程需要考虑的各种参数是:
(这不是一个详尽的清单 根据应用程序版本的性质,必须解决其他问题)
答案 1 :(得分:3)
对此的答案根据具体要求和团队结构而有很大差异。
我已经为一些具有类似可用性要求的非常大的网站实施了流程,并且我发现有一些一般原则可用:
一些额外的指示:
请参阅我的回答property-placeholder location from another property,了解使用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
http://continuousdelivery.com/一个很好的网站和书籍,有一些很好的发布模式。
希望这会有所帮助 - 祝你好运。
答案 2 :(得分:1)
要添加到我之前的答案中,您所处理的内容基本上是CM-RM问题:
换句话说,在第一次发布之后(即主要的初始开发结束),你必须继续发布,这就是CM-RM应该管理的内容。
在您的问题中,RM的实现可以是1)或2),但我的观点是添加到该机制:
答案 3 :(得分:1)
在不声明它是最佳解决方案的情况下,这就是我的团队目前进行分段和部署的方式。
scp
。我们计划直接在服务器上构建。scp
。scp
复制二进制文件。这种滑动策略允许我们并行开发3个版本。版本N目前正在制作并通过更新服务器上演,版本N + 1将是即将发布并将在测试版服务器上发布的下一个主要版本,而版本N + 2将是下一个主要版本目前正在进行开发并在开发服务器上进行。
我们做出的一些选择:
将配置嵌入EAR可能会引起争议,因为传统上操作需要控制例如生产中使用的数据库数据源(它指向的服务器,允许连接池的连接数等)。但是,由于开发团队中的人员也在运营,因此他们可以在代码仍在开发过程中轻松地检查配置中其他开发人员所做的更改。
与分段并行,我们让连续构建服务器服务器在每次签入后执行脚本(ANT)构建(每5分钟最多一次),并运行单元测试和其他一些完整性测试。
仍然很难说这是否是最佳方法,我们一直在努力改进我们的流程。
答案 4 :(得分:1)
我是一个单一部署,包含所有(代码,配置,数据库Delta,...)适用于所有环境的大力倡导者,集中构建和发布CI服务器。
这背后的主要思想是 Code,Config&无论如何,DB Delta紧密耦合。代码依赖于在配置中设置的某些属性以及DB中存在的一些对象(表,视图等)。那么为什么要分开这个并花时间跟踪所有内容以确保它们在一起,当你可以将它们放在一起时。
另一个重要方面是最大限度地减少环境之间的差异,将失败原因降至最低。
我持续投放关于Parleys的更多详细信息:http://parleys.com/#id=2443&st=5