Keeping cluster updated

alt=
DannyA
@dannya
9 years ago
584 posts
As I build out my cluster, I am now starting to think about how to keep it updated; especially during beta when updates are frequent.

I realize for a single server setup, Jamroom's marketplace works pretty well. It can see which modules are installed and licenses, you get notifications if there is an update, and you simply log in and do and update (pull) from the marketplace via the ACP.

When working with multiple servers, this was not ideal. I was running dev, qa, and prod environments. Since I was using git (actually bitbucket) to manage different branches, I set up webhooks to a script on each server that pulled from the appropriate branch (dev-->dev, qa-->qa, prod-->prod). This works great during development, however it presents a problem for making jr core updates. If I use the marketplace update, my the server gets updated and I have to manually log into each server and commit the code and push it to the repo. The better solution is to manually push the code to the repo, and then all the servers can be updated automatically.

Now with the deployment of the new cloud servers, there is a new challenge: not all the servers get the same modules. i.e., there are many modules on the main jamroom app server that don't get deployed to all servers. This makes it even more difficult to update multiple servers.

I am looking for possible solutions for PUSHING updates to the jamroom servers. However, each server must receive a different set of modules.

Any ideas?

Also, Is there any way to set up you own marketplace so you can have the server update your custom skins and modules as well?
updated by @dannya: 03/22/15 07:44:54PM
brian
@brian
9 years ago
10,148 posts
I actually have a cloud module in development (Cloud Admin) that is designed to help with this. Basically as you add servers to your cluster, you add the new servers in to the Cloud Admin module servers tool. It will then allow you to "see" your cluster at a glance, and has some health checks, etc. It also will allow you to run a marketplace update for any server in your cluster - this allows you to (for example) update just one of your front end servers, monitor it, and if it looks good then you can update the rest - without leaving the module.

It's something that is being worked on so hopefully I can finish that up soon - I've had some other higher priority work come in that I've been working on in regards to hosting.

As for setting up your own marketplace, we might be able to do that - basically we would setup your account like a 3rd party developer, and you would create a new private channel that you would configure on each server. Then, when you have a new update (say a skin update or whatever), you would upload the new skin to the system here, and in turn each server that is subscribed to your private channel would "see" the update and the update could be run for it.

Hope this helps!


--
Brian Johnson
Founder and Lead Developer - Jamroom
https://www.jamroom.net
alt=
DannyA
@dannya
9 years ago
584 posts
Sounds like the combination of those two tools would be ideal. But the first one especially. I'll remind you in a few months :)
updated by @dannya: 02/18/15 01:42:10PM
SteveX
SteveX
@ultrajam
9 years ago
2,584 posts
Just mentioning as it feels relevant, I really like the marketplace channels.

I'm using that this week (on a single server, so probably not entirely relevant) where I don't have ftp or ssh access. Not 100% convenient workflow on what is essentially a dev server, but so far it is working very well :)

Best thing for this situation is that I can show someone how to keep the jamroom up to date with both standard and custom modules and skins from a simple marketplace interface, and they don't need to know about the server/ftp/version control.

Marketplace is very cool Brian :)


--
¯\_(ツ)_/¯ Education, learning resources, TEL, AR/VR/MR, CC licensed content, panoramas, interactive narrative, sectional modules (like jrDocs), lunch at Uni of Bristol. Get in touch if you share my current interests or can suggest better :)

updated by @ultrajam: 02/18/15 03:06:34PM
alt=
DannyA
@dannya
9 years ago
584 posts
I like the channels as well. I just need to be able to create my own channel for my own modules.

The cloud admin sounds like it would help trigger the update across multiple servers.

The only other thing that I could ask for would be a web hook so I could execute a s script on the server (git update) once the update was complete.


Another question though, Aren't the channels the equivalent of git branches? Why is the code not hosted in git? There are already thousands of tools to deploy via git....
brian
@brian
9 years ago
10,148 posts
DannyA:
Another question though, Aren't the channels the equivalent of git branches? Why is the code not hosted in git? There are already thousands of tools to deploy via git....

The channels are not Git branches - they are more like distribution channels. They tie in to the licensing back end here on Jamroom.net and ensure users have the proper access to the channels, versions, etc.


--
Brian Johnson
Founder and Lead Developer - Jamroom
https://www.jamroom.net
brian
@brian
9 years ago
10,148 posts
SteveX:
Just mentioning as it feels relevant, I really like the marketplace channels.

Thanks Steve - I agree, I use them as well and find them really convenient!


--
Brian Johnson
Founder and Lead Developer - Jamroom
https://www.jamroom.net

updated by @brian: 02/20/15 08:45:03AM

Tags