我一直在学习如何使用Docker来设置开发环境,但是,我很好奇这些想法是如何转化为生产堆栈的。举个例子,我有一个使用MySQL,Redis和Nginx的Laravel(Php)应用程序。了解生产中的Docker
因此,在生产中,比方说,我通常会在AWS上的负载均衡器后面有两个应用程序ec2实例。当使用Docker设置类似的生产环境时...
1)因为我会使用RDS和Elasticache,所以不需要容器。所以基本上,id只需要PHP-Fpm和Nginx的容器? 2)为了获得高可用性,ELB后面仍然会有2个(或至少多于1个)ec2实例。所以我想每个实例都会运行上述容器(PHP和Nginx)。但是,这听起来和我以前的VM设置没有什么不同,每个服务器都运行它为服务应用程序提供的服务。这是否准确? 3)使用虚拟机时,我通常会将代码烘焙到AMI中,然后将这些AMI添加到启动配置和Auto Scaling组中,并且该组将根据需要启动实例。因此,为了部署,我会拆除旧的ec2实例并启动新的实例。使用Docker,由于这些容器将在ec2实例上运行,我是否还需要启动/拆卸虚拟机,还是只更换容器并保持虚拟机运行?
感谢您的信息。因此,潜在的情况是,因为我的应用程序仅仅是一个基本的API,并且可能没有地方可以提供微服务,但是我可能没有从Docker中受益。 – djt
是的,如果它是一个简单的API,你可以暂时保留它。当它变得越来越复杂时,你可以开始dockerizing应用程序,然后通过chuck设备缓慢地chunk到微服务。 – Ashan