我对云计算和微服务比较陌生。我知道像 aws ec2 , ansible 和 docker swarm 等技术如何在云中配置和创建服务集群,但我不知道仍然了解如何为云环境配置软件(不同服务的连接参数,在部署之前知道IP时)。
我习惯使用Spring引导和hibernate与裸机环境和静态IP地址,我将服务地址编码为pom.xml中的属性,并根据此特定的配置文件将它们注入各种配置文件环境。最后,一切都在某处硬编码。
现在考虑一下这种情况,我将自动化从云配置环境的整个过程,并使用ansible脚本左右部署软件,服务和数据库。这个过程会给我带有随机IP的服务器实例。它将在一次运行中部署所有必要的基础架构组件。
现在,如果在编译时服务的位置未知,我怎么能配置软件(数据库连接等)?我应该使用DNS吗?如果我这样做,那么当我部署到不同的云时会发生什么?是否有一些更动态的方法可以在docker swarm上为云环境配置Spring应用程序,也许可以利用一些swarm在覆盖网络上管理的环境变量?
或者我想在我的脑海中想象一下太大的蛋糕,通过云平台和正确的工具,只需单击即可将整个基础架构部署到任何环境,从编译到功能,容错服务,没有任何硬编码,一切都自动化了吗?