DeltaHF
Well-known member
What development/staging/production workflow do you use to maintain your site?
I am looking to update and modernize my workflow as I move my community to XF 2.2 and I'm curious to see what others are doing. Is there is a recommended best practice? My site is far too large (400+ GB, including databases and attachments) for a "cowboy coding" workflow any more, and I am struggling to understand how I can maintain consistency between different environments.
This feels like a bit of a blind spot to me: it's something we all do or need to do, but I don't see people talking about it much. Local development environments get most of the attention, but managing a production workflow for a real site is more complex (hence the reason I am posting this thread here and not in the development forum).
I'm currently planning the following workflow for my site with WordPress and XF 2.2:
I am looking to update and modernize my workflow as I move my community to XF 2.2 and I'm curious to see what others are doing. Is there is a recommended best practice? My site is far too large (400+ GB, including databases and attachments) for a "cowboy coding" workflow any more, and I am struggling to understand how I can maintain consistency between different environments.
This feels like a bit of a blind spot to me: it's something we all do or need to do, but I don't see people talking about it much. Local development environments get most of the attention, but managing a production workflow for a real site is more complex (hence the reason I am posting this thread here and not in the development forum).
I'm currently planning the following workflow for my site with WordPress and XF 2.2:
- Set up a testing server which I can run my own VMs on (I will be using a Synology DS920+).
- Get a working copy of my site on a VM (I use @eva2000's Centminmod).
- Delete a significant amount of data from my forums on this VM. This allows me to keep a subset of real users and content while making the size of the data more manageable.
- Clone / snapshot this reduced-size "staging" VM as needed to test updates, plugins, custom development, etc.
- Edit and manage the files remotely using VS Code Remote Extension via SSH.
- Push changes from the staging VM to my live production server via Git.