zodern / meteor-up

Production Quality Meteor Deployment to Anywhere
http://meteor-up.com/
MIT License
1.27k stars 281 forks source link

Mup 1.5 Plan - Load balancing and zero downtime deploys #893

Closed zodern closed 4 years ago

zodern commented 6 years ago

Mup 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.

stefanve commented 6 years ago

Is there any timeline for this?

zodern commented 6 years ago

I first would like to finish more of the tasks in the 1.4 project. I might also try to reduce problems with ECONNRESET. After that I will start working on 1.5.

Anyone is welcome to start working on these changes. If you have questions you can ask on gitter or create a new issue.

pagesrichie commented 6 years ago

Just wanted to clarify - I was looking through the meteor up documentation and noticed there were options in the json file for multiple servers, so I automatically assumed load balancing would come with it. So that option is there for uploading to them one by one, however load balancing is not a part of mup yet and is in the pipeline for mup 1.5, correct?

zodern commented 6 years ago

That is correct.

pagesrichie commented 6 years ago

Is this a good article to resolve the load balancing issue: http://joshowens.me/building-your-own-meteor-galaxy-hosting-setup/ , or setting up load balancing droplet on Digital Ocean as well?

zodern commented 6 years ago

Either option would work.

pagesrichie commented 6 years ago

Thanks. Looking forward to your solution for mup 1.5! When do you expect it to be finished (load balancing part especially)?

On Sat, Apr 7, 2018 at 11:06 AM, zodern notifications@github.com wrote:

Either options would work.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/zodern/meteor-up/issues/893#issuecomment-379488258, or mute the thread https://github.com/notifications/unsubscribe-auth/Ab4qvM6T6MWqYkXpLsRXFrPvGFOnsbucks5tmQAbgaJpZM4SPorK .

-- Richie Pages Web developer/founder/writer

LazerJesus commented 6 years ago

any progress toward zero downtime deploys?

zodern commented 6 years ago

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.

LazerJesus commented 6 years ago

thank you. thats a really great feature!

zodern commented 6 years ago

A beta for mup 1.5 is now available. Learn more in #976.

WayneUong commented 6 years ago

@zodern you meant https://github.com/zodern/meteor-up/pull/975 ?

zodern commented 6 years ago

Thanks @WayneUong. It's now #976 since I had used the wrong branch in the pull request.

CJjumper commented 6 years ago

Hi @zodern congrats on the amazing work you have been doing, can we have an update on this list? What the things have changed since April? Would be amazing to track your progress as you go.

zodern commented 5 years ago

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.

rolljee commented 5 years ago

Looking forward to test that !

zodern commented 4 years ago

Mup 1.5 is almost ready. It is fairly stable, and I am using it in production for a couple of projects. I've updated the status at https://github.com/zodern/meteor-up/pull/976. There have been a few new improvements to performance (an new option that makes Prepare Bundle faster, and using a private docker registry for faster deploys to multiple servers), and a simpler load balancing implementation that doesn't use Docker Swarm.

Swarm is almost complete, but there are two issues left. I am not sure if they will be fixed before Mup 1.5 is released:

pagesrichie commented 4 years ago

Looking forward to this!! Thanks for the update!

On Mon, Feb 24, 2020 at 10:42 PM zodern notifications@github.com wrote:

Mup 1.5 is almost ready. It is fairly stable, and I am using it in production for a couple of projects. I've updated the status at #976 https://github.com/zodern/meteor-up/pull/976. There have been a few new improvements to performance (an new option that makes Prepare Bundle faster, and using a private docker registry for faster deploys to multiple servers), and a simpler load balancing implementation that doesn't use Docker Swarm.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/zodern/meteor-up/issues/893?email_source=notifications&email_token=AG7CVPG47QNKG22LYFOGLIDRESHUBA5CNFSM4ER6RLFKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEM2OBMA#issuecomment-590667952, or unsubscribe https://github.com/notifications/unsubscribe-auth/AG7CVPBW6WGQ5323ZIXQN3DRESHUBANCNFSM4ER6RLFA .

-- Richie Pages Web developer/founder/writer

zodern commented 4 years ago

Beta 8 is now available. I did thorough testing of load balancing and running multiple apps on a server to make sure there is no unnecessary downtime, and beta 8 has all of the issues I found fixed.

zodern commented 4 years ago

Beta 9 was published today to add debugging of apps in production. Run mup meteor debug, and you can use your local node debugging tools to debug your app in production.

zodern commented 4 years ago

Beta 10 was published today to fix mup meteor debug. Also, all new situations since 1.4.x where mup does not properly clean up disk usage should be fixed, except for the swarm integration.

longyarnz commented 4 years ago

I don't know if this is the place to state this but mup 1.5 breaks mongo authentication. I tried migrating to 1.5 from 1.4.6. I get a mongo authentication error while running 1.5. I downgraded and the error vanished. I upgraded again and the error returned. I use an external mongo server with a replica set.

zodern commented 4 years ago

Beta 14 is now available, with all new bugs that I know of fixed. This should be the last beta. I plan to release the stable version next week.

Try it with npm i -g mup@next.

pisacode commented 5 months ago

@zodern how do should we set the domain setting for load balancing, right now we use digital ocean load balancer to point the domain to multiple droplet ips and also we set the proxy.loadBalancing true . However the docs never mentions setting up a digital ocean load balancer or any sort of that?

If setting proxy.loadBalancing true is enough how can we point the domain to two different servers?

Thank you for the amazing package.

zodern commented 5 months ago

Hi @pisacode. if you are using a Digital Ocean load balancer, you probably don't need to use Meteor Up's load balancer. It might be helpful to better understand what you are trying to do, or why you want to use both load balancers (I know some companies do for various reasons).