当前情况: 我们有一个用C++编写的应用程序,用cmake构建,使用googletest进行单元测试。C++应用程序在不同环境下自动构建
我们有两种环境:
- 测试:本地不那么强大的服务器
- 制作:用预构建AMI图像几个亚马逊EC2实例
我们测试本地计算机上,当我们发布时,我们在生产机器上签出代码,构建它并运行。
现在公司正在用自动化构建工具(如Jenkins)来推广CI。 尽管我们可以自动化构建过程,但有些人建议不建议直接在生产机器上构建。
但在我看来,不像Java程序可以运行,只要有JRE,C++应用程序就非常依赖于机器。
大多数情况下,Docker可能是银色的子弹,但不幸的是,我们的应用程序无法放入docker中,因为它需要在一组真正的机器上运行。
行业中是否存在处理这类问题的一般/常用方式?
恕我直言只要图像相同,应用程序就会表现相同。所以我会设置一个具有相同映像的本地虚拟机,并首先对其进行测试和/或创建另一个亚马逊实例(不是很强大),并在那里测试并构建它,然后将二进制文件移动到生产系统。直接在生产环境中构建可能会破坏服务,并可能使用大量资源。 – knightrider