I have a multi-container application having 3-4 component (i.e. 3-4 containers), application has multiple deployment scenarios like
1. Deployment Hosted by us –
o As Microservices deployment using K8S orchestration tool
2. On-premise delivery – hosted by customers (not using any Orchestration Tool)
o Small customers – not ready to manage complex multi-node cluster using any orchestration tool
o They just want as multi-container application deployment - Micro-service characteristic not required
3. On-premise delivery – hosted by customers (using orchestration Tool)
o Big On-prem customers
o Customer well create and manage multi-node clusters for deployment
I am thinking to develop & package application as a docker-compose application using docker compose file (3+) (linking via networks, port mapping etc.)
My assumption is – same compose file & application can be used in all deployment scenarios. Due to following understanding for various scenarios:
As Compose file is compatible with Kubernetes and D-Swarm hence we can deploy same application & compose file on K8s or D-Swarm based clusters.
o Is my understanding is correct for production level deployment ?
For small customers, who don’t have advance Microservices features requirement like Auto-scaling etc., they will deploy composed application using docker stack on single host machine
o Can be same docker-compose file having network linking & config will work in D-Swarm, K8s and Docker Engine (not in Swarm mode)?
Can someone please put some thoughts on this.