tagbase / tagbase-server

tagbase-server is a data management web service for working with eTUFF and nc-eTAG files.
https://oiip.jpl.nasa.gov/doc/OIIP_Deliverable7.4_TagbasePostgreSQLeTUFF_UserGuide.pdf
Apache License 2.0
7 stars 2 forks source link

Decide and implement configuration tool for deploying into different cloud environments #149

Open renato2099 opened 1 year ago

renato2099 commented 1 year ago

There are three different candidate tools for deploying code bases into cloud environments: (1) Chef, (2) Ansible and (3) Puppet We should do a quick evaluation on their functionalities and implement the necessary scripts to deploy tagbase-server into our target cloud environment.

lewismc commented 1 year ago

Hi @renato2099 I also came across capistrano which looks light weight and is open source as opposed to the other Chef, Puppet or Ansible. One catch is that we need to have Ruby installed and that config is managed via Rake tasks. This is the same as with Homebrew and I have experienced developing and publishing packages on that platform. This is to say we wouldn't be starting from scratch.

lewismc commented 1 year ago

After a bit more research I discovered that the thoughtful capistrano devs split out the SSH-part of Capistrano into a separate project called SSHKit. Here's a real simple [blog post] to give an idea of what we could do with it.

renato2099 commented 1 year ago

I think we still need two different tools, both Ansible + Capistrano because Ansible will help us configure new servers (not allocate them which terraform would), but to setup different packages, cmd line tools, etc. Let's say for example we would like to setup a DEV server where we can try out different things with Ansible we just point to the new server and configure it to be in the state we need.

Now with capistrano we can manage app deployment (with ansible we could but it'd be awkward and not we don't get all features we need). With capistrano we can deploy to different deployment staging servers for example:

cap production deploy BRANCH=master

or even rollbacks https://capistranorb.com/documentation/getting-started/rollbacks/ So we should have both , now in which order it'd depend on our needs. I think right now it is better to set up capistrano for deployments , and we can keep the Ansible script I developed for a later time when we decide to have a DEV server. Wdyt?

lewismc commented 1 year ago

Wdyt?

Yes, makes sense to me.

renato2099 commented 1 year ago

I put up the configuration script for setting up a new server in PR https://github.com/tagbase/tagbase-server/pull/155 one other thing we should think about is to get a dev server to try stuff out