- Whenever we make a change that improves performance we want to be able to test the same change on the other sites
- Each site should have exactly the same content structure
- We want to automate the synchronization process as much as possible
Background
There are 4 sites in the performance analysis:- oik-plugins.com – the original site, hosted by Tentahost, Turbo+
- oik-plugins.uk – WP Engine, Personal
- oik-plugins.biz – SiteGround, GrowBig
- oik-plugins.net – SiteGround, GoGeek
Requirements
We want to be able to syndicate the content to multiple sites.Proposed method
The method we want to use to keep the content synchronized for each performance test involves two other sites:- qw/oikcom – a locally hosted clone of the .com site – the source, master site
- oik-plugins.co.uk – the first target site
- Content changes will be developed and tested in qw/oikcom
- When ready a set of changes will be pushed to oik-plugins.co.uk
- These changes will be functionally tested
- oik-plugins.co.uk will then push the content to the 4 other sites
- We will then run performance testing and analysis
- Repeat as necessary
About the contents
Here we use the term node to refer to a single item of content. A node can be of any post type.- There are multiple post types and taxonomies
- There are many hundreds of nodes
- The content contains complex relationships between nodes.
This information is stored formally and informally;
- formally – post meta data in fields holding post ID(s), post parent, featured image
- informally – in free form in the post content, excerpts and other post meta fields
- Content may be created in any sequence then modified such that the complex relationships between nodes appear to create cyclical dependencies
- Not all post types should be cloned
- Not all post meta data should be cloned
- Some nodes are created semi-automatically
Proposed solution
The proposed solution is to develop oik-clone to satisfy the proposed method and the content requirements.- Many of the Technical requirements for oik-clone link directly to the proposed method for keeping the changes synchronized
- oik-clone v0.7 is the minimum version required to clone the content and its overall structure
- oik-clone v0.8 is the minimum version required to clone the informal relationships and to ensure matching results for front-end queries
- Additional requirements will be raised based on our experience of using the solution
- These may include non-functional requirements and nice-to-haves
Current restrictions
- It is not possible to satisfy the Proposed method with the current solution
- Forward cloning creates significant challenges in determining the correct target ID
- Therefore the cloning has to be driven from a single source
- Content changes will be developed and tested in qw/oikcom
- When ready a set of changes will be pushed to oik-plugins.co.uk
- These changes will be functionally tested
- When OK push the content to the 4 other sites
- We will then run performance testing and analysis
- Repeat as necessary