-
Notifications
You must be signed in to change notification settings - Fork 10
Description
Currently, the only way to set up a Centrallix instance (whether for development, automated testing, or production) is to manually create a VM, set up the environment, and install and configure Centrallix. This takes time and introduces opportunities for mistakes whenever an intern or volunteer onboards, a client wants an update or a brand-new installation, or a developer wants to write a new kind of automated test. (Consider for instance that folks at LightSys will re-use VMs left over from other volunteers instead of creating new ones, even though that can lead to all kinds of fun surprises - clearly starting up a fresh Centrallix environment is a pain.) This is also an obstacle to doing any kind of continuous integration / automatically running tests asynchronously on push, and to having confidence that tests passing in a dev environment also hold true for a real prod environment.
It would be a boon to LightSys if there were some way anyone could quickly, easily create a new environment with a specific configuration (dev or prod, specific DB servers available, etc) and then work in it, run tests on it, or deploy it. Moreover, if the same system and environments could be used both for development + testing and production, it would add a significant measure of confidence that unexpected issues won't crop up in production. Ideally this system could also be easily dropped into a CI service for extra (automated!) confidence.
One potential issue is that LightSys currently only uses VMs on site, and has run into capacity limits in the past because of that. Most automated setup/provisioning systems like this make use of cloud services so they can easily scale, or they at least have more extensive onsite server capacity. But also consider how far it might go to just make it easy for people to spin up at least an instance or two on their own machines.
More research needs to be done on the tooling for a system like this, but some promising avenues of exploration are container systems like Docker and IT automation tools like Ansible.