我一直在學習如何使用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