BeHealth Solutions

We (I was on the team at Lightcastle Consulting) were brought on to take over the development efforts on a Rails project that was core to the business' service offering.

BeHealth Solutions

We (I was on the team at Lightcastle Consulting) were brought on to take over the development efforts on a Rails project that was core to the business' service offering.

Design Criteria

They had a number of issues that were hampering the development effort. The test coverage was limited and the deployment procedure, while documented, took in excess of 12 hours to complete and, even when carefully followed, did not result in a functioning system. The system was putting a massive 8-core server with tons of ram to very heavy use to handle just a few simultaneous users and they had plans to move to AWS where such a machine would have been prohibitively expensive.

More importantly, the several installations of their platform were simply copies of older, existing installations that were modified as needed to fit their client's needs. As such, bugfixes were backported to older codebases far less frequently than features so they were often rediscovering fixes for issues that had already been dealt with in other, similar code.

Implementation

Our most significant contributions were an automated deployment system and a twenty-fold reduction in the resources required to run the SHUTi system.

Hilights

I used Ansible and Capistrano to tame the broken 12-hour installation procedure into a system that required just a single command and a few minutes to stand up a new server. By adding a simple "theming" mechanism to the automated deployment system, I wrangled the several related codebases into one, substantially reducing the development efforts needed to maintain their different system types.

Once the release pipeline was moving more quickly, we identified and removed bottlenecks until we were able to meet performance expectations on a modest and inexpensive AWS instance.