Mup 1.5 Plan - Load balancing and zero downtime deploys
See original GitHub issueMup 1.5 will add support for load balancing and zero downtime deploys. It will use Docker Swarm and the reverse proxy to implement this. Mup 1.5 does add an experimental swarm integration, but it is not required for load balancing or zero downtime deploys.
- Docker plugin
- Setup docker swarm. Done in mup 1.4
- Show swarm status in
mup docker status
. Done in mup 1.4 - Discover and fix edge cases
- Document restrictions. In this initial release, mup will only support one app using swarm per server. Other apps can be deployed to the same servers as long as they do not use swarm. Also, it will only support deploying apps when
Prepare Bundle
is enabled due to how services rollback versions. It will be recommended to use servers with at least 1gb ram with Docker Swarm. - Recover when quorum is lost
- Show error when servers in config are part of several clusters
- Show error when servers are part of a cluster, but mup doesn’t have access to a manager in that cluster
- Decide how to handle nodes and managers that are not in the list of servers in the config
- Command to destroy the swarm cluster. Done in mup 1.4
- Meteor plugin
- Use specific numbers for an app’s image tag instead of
previous
andcurrent
to support how services roll back failed deployments - Deploy app as a swarm service
- Explore possibilities of validating deployment
- Use specific numbers for an app’s image tag instead of
- Plugin API
- Review swarm api’s that have already been added
- Document api’s
- ~Give user more control if desired over what servers are managers~
- Add general tasks any plugin can use:
- Create service
- Update service
- createOrUpdateService
- Wait until service is ready
- Decide how to handle a service that encounters an error starting since it repeatedly retries
- Allow plugin or Meteor Up to look at output to offer suggestions for fixing errors
- Mongo (optional)
- Deploy mongo as a service with an overlay network to support the app running on multiple servers
- Proxy
- ~Add support to
nginx-proxy
for docker swarm, or run docker flow, dockercloud haproxy, or traefik between nginx-proxy and the app~ - Run container on proxy’s servers for each service using the proxy (needed for the reverse proxy to know about the service)
- Create container to generate upstream blocks for services
- Create fork of nginx-proxy that supports custom upstream blocks
- Connect apps to same overlay network as proxy
- Only run the proxy on manager nodes
- ~Show what servers to use in the dns records~
- Graceful shutdown
- ~Add support to
- Default docker image
- Check compatibility between
meteorhacks:meteord
andzodern/meteor
- Consider changing the default docker image to
zodern/meteor
- Check compatibility between
Issue Analytics
- State:
- Created 6 years ago
- Reactions:30
- Comments:23 (13 by maintainers)
Top Results From Across the Web
Mup 1.5 - Load balancing, zero downtime deploys, and ...
Zero downtime deploys when deploying to two or more servers and load balancing is enabled; Supports using a private docker registry for much ......
Read more >Meteor Up 1.5 - zodern
When load balancing is enabled and the app is deployed to at least two servers, there will be zero downtime when deploying. Mup...
Read more >Documentation - Meteor Up
Load Balancing Mup is able to load balance your app across multiple servers with sticky sessions. Set proxy. loadBalancing to true in...
Read more >meteor-up/Lobby - Gitter
hello all tgt, can i ask for some question on mup deploy on catalina os not ... we can start and stop the...
Read more >Zero Downtime Deployment Using Blue-Green Methodology
3. Creation of Target Groups and Load Balancer: · Go to the “EC2” service, search for the “Load balancers” option and open it....
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
I have done some work the past couple months on this, mostly investigating the different options for using Docker swarm with the nginx-proxy container and starting work on a solution for it. I will be working part time on Mup next month.
The second beta is now available. Most of the changes have been around bug fixes and adding missing aspects of swarm support, and general improvements (many implemented by @rolljee). Zero downtime deploys mostly works now. I’ve updated https://github.com/zodern/meteor-up/pull/976#issue-200468540 with the current status.
What is left: https://github.com/zodern/meteor-up/projects/4 The biggest tasks remaining are informing the user and show logs from failed tasks when a deploy fails, and improving rolling deploys to support apps that are slow to start.