我从过去一个月一直在Gitlab CI周围工作。最初,我设置了gitlab共享运行程序。然后,我们认为在aws上有一个自托管的运行程序可以更好地一次性管理成本。
实际上,我们有6个微服务使用自托管运行器,即aws ec2 - t3。micro (2vCPU, 1GB)。这些工作是为了建立和推广码头工人的形象。在ECS集群上部署。
我们有前端android &Ios项目,目前运行在共享运行程序上,这需要大量的CPU &内存资源可能是t3。xlarge (4vCPU, 16GB).
我计划配置AWS- auto scaling GitLab runner和Spot实例,这样所有的项目都可以在AWS上运行。
微服务运行器将有t3。微作为现场实例,作为前端将有t3。Gitlab Ci触发器的每个作业的xlarge spot实例。spot实例的生存时间为60分钟。
2个前端应用程序每天一起运行12次,每次3分钟。6个微服务每天一起运行10次,每次2分钟。
以下是我根据现有资源使用情况预测的成本,但到目前为止还没有由Gitlab或AWS产生。
Applications Execution Time [per Job/Day/Month] Jobs per Day SpotInsatnce Price Monthly
2 frontend 3 mins / 36 mins / 1080 mins 12 jobs t3.xlarge X 12 X 30 = $25
5 microservices 10 mins / 20 mins / 600 mins 2 jobs t3.micro X 10 X 30 = $3
而Gitlab只花4美元就能提供2000分钟的执行时间。在这里,使用AWS花了我大约25美元。
我的问题是,它是真的更好的自托管运行器与ec2自动伸缩与现场实例或它是更好的与gitlab共享运行器?
或者让我知道,如果我错过了什么,请告诉我同样的。
Thanks in advance
两者都不比另一个好,因为这取决于用户的意见和情况。
对于AWS来说,更高的成本是通过完全控制运行程序来平衡的,并且不必等待运行作业(共享运行程序并不总是发生,但这是一种可能性)。共享跑步者的成本低,不需要知识和时间来维护它们。