MCCC Support

Introduction

We want to find the best way to support the Midwest species selector tool. Based on my initial investigation it’s currently hosted on one digital ocean droplet that contains the following tools

  1. MCCC row crop tool Vue.js application

  2. MCCC row crop tool PHP API

  3. MCCC MySQL data entry tool Vue.js application

  4. MCCC MySQL data entry tool PHP API

  5. MCCC vegetable tool Vue.js application (on the develop version)

  6. MCCC vegetable tool PHP API (on the develop version)

  7. MCCC WordPress site

  8. MySQL database that stores data for all of the above

Challenges with supporting the current build

  1. Because there are so many projects all hosted on one server, it is very easy to cause downtime for one or more of the tools. When I started looking at how the cover crop row tool is architected, it caused an outage for the MCCC WordPress site even though those tools should be logically independent.

  2. No one on our team has any Vue.js experience.

  3. No one on our team has substantial PHP experience.

  4. Any bug fixes are likely going to cause downtime for one or more of the above tools.

Possible solutions

  1. Rebuild the tool using the stack that our team is familiar with. This will increase the initial time needed but will greatly improve the speed of future bug fixes and maintenance. There would be some styling differences because it will be in a different language.

  2. Make a copy of the current server (this will cause guaranteed downtime, but the timing can be controlled) and then divorce out the tools listed above into their own servers so that they aren’t comingled. This will allow development of one tool to be independent of the others. The danger of this solution is that the server may not start up cleanly after making a copy. This may prolong the downtime for one or more of the above tools.

  3. Make changes to the live server without divorcing out the tools. This is the most dangerous solution because at any time a change to one tool could cause an outage to one or more of the others.

Timelines for Possible Solutions

  1. Approximately 4-6 weeks to have a rebuild demo ready.

  2. Assuming no hiccups with making an copy of the server, it should take around 2 weeks to put the tools above on their own servers, it’s hard to give an estimate for bug fixes without being able to look at the server. I’m assuming that the Priority 1 - Emergency issues could be resolved in

Questions for Juliet

  1. How are deployments on the tool handled? I didn’t see git repositories, how is new code pulled?

  2.