Skip to content

System for automated setup of Centrallix environments #32

@sheesania

Description

@sheesania

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions