Site Factory

Checklist for migrating your sites to Site Factory

As you prepare to migrate your websites into Site Factory, Acquia has identified a common list of tasks to consider as part of your initial sprint (Sprint 0) planning. Although the activities described on this page are not a complete list, the following task groupings can help you to identify the work that is necessary for a successful launch, and also identify the tools that can assist you:

Setting up development processes



Code repository creation and access

Create a private GitHub repository to serve as the canonical repository, and provide push and pull access as needed

Grant developer access to environment

Provide the technical team with all needed tool and account access

Define configuration management strategy

Identify a configuration management strategy definition, which may include features, CMI, config split, custom modules, and scripts

Implement configuration management framework

Technical implementation of configuration management strategy

Define deployment and release strategy

Define deployment and release workflow and communication plans

Implement deployment strategy

Technical implementation of deployment and release automation

Configure local development environment and virtual machines

Configure a standard local development environment and virtual machines (VMs)

Define development workflow

Define a code workflow, including git flow, a branching strategy, and code review process definitions

Document developer onboarding and configuration

Document the development team’s configuration, local environments, development processes, and tool installation

Configure Site Factory environment

Initial deployment of base profile to Site Factory

Define environment access and governance

Define roles and responsibilities on all technical environments, including the Site Factory Management Console, Site Factory code repository, and GitHub repository

Platform infrastructure and workflow management



Configure continuous integration

Set up continuous integration using a tool such as TravisCI or Pipelines

Automate deployments

Configure end-to-end automation with Pipelines, TravisCI, and GitHub

Install platform configuration management helper modules

Identify and develop needed configuration management tools

Set up automated testing

Set up a base Behat and PHPunit configuration for local and continuous integration testing

Platform base architecture



Create master website profile

Create the initial master profile

Configure master profile

Install modules needed by all websites on your platform

Follow security and performance best practices

Install and enable security-related modules (such as Shield, Security Kit, and Fast 404), and configure environment-specific overrides for local and non-production environments

Create testing modules for development and QA

Create any needed modules for environment-specific testing and quality assurance

Create configuration management directory

Create writable directories for importing configuration values, as described in Configuration management directory

Define demo content strategy

Determine requirements and evaluate solutions to deploy dependent content bundled with configuration, facilitate automated testing, and demonstrate platform functionality

Develop modules for demo content

Develop modules to provide demo content, and integrate the modules into builds and deployments

Define platform overrides strategy

Determine the strategy for configuration management overrides; evaluate solutions available in contributed modules and custom development, and evaluate the risk of technical debt

Configure roles and permissions in configuration management

Configure the roles and permissions to be managed by configuration management; modify features and other configuration accordingly

Develop platform override solutions

Create custom modules to provide default configuration that builders of individual websites may override, and configure the modules to override the default configuration of contributed modules when necessary

Platform administration



Define Site Factory site groups

Define and create Site Factory site groups and site collections based on your website rollout strategy

Create new platform website

Perform the technical tasks needed to create an initial Site Factory website using the master profile

Deploy platform updates

Identify technical strategies and perform tasks for platform updates, such as configuring Site Factory hooks

User roles, permissions, and accounts



Create platform administration roles

Create platform user roles for Platform administrator, Site Builder, Content Administrator, Content Editor, Anonymous User, and Authenticated User

Create website administrator roles

Create website roles for Site Administrator, Content Administrator, Content Editor, Anonymous User, and Authenticated User

Create user accounts on the Site Factory Management Console

Define and assign roles to users in the Site Factory Management Console

Create platform user accounts

Create platform user accounts

Create Drupal website users

Create Drupal website accounts

Configure user profile management

Enable users to change their account passwords and email addresses

Test example features and content in new website

Confirm example features and content display properly in a new website

Global and base theming



Define platform base theme

Select and implement a base theme, such as Bootstrap

Create custom platform sub-theme

Create a default sub-theme for the platform to extend the base theme

Define and configure a platform administration theme

Select, configure, and implement the theme to be used in the Drupal administration area of websites on your platform

Configure front-end build tools for continuous integration

Configure tools for continuous integration, such as Yarn or Gulp

Define global theme regions

Determine and identify all the global theme regions implied in the wireframes

Define themed layout of pages

Define the essential layout for all pages on the website with minimal theming

Provide theme assets

Provide assets used in wireframing necessary for theme development, such as logos, images, icon fonts, color palettes, and fonts

Theme base HTML elements

Define the styling for base text, base headings, list types, and tables

Identify external libraries for base theme

Identify and implement external libraries for features in your base theme, such as Responsive Menus or Modernizr

Configure platform libraries

Configure platform libraries in the build and deployment process

Create page layout grid with 12-column layout

Develop the 12-column grid for basic page layouts to match the wireframes

Define a style guide

Identify tools for developing and managing a style guide, and implement a default style guide

Establish browser breakpoints

Identify browser breakpoints to ensure optimum display for the devices that your theming is intended to support, while remaining cost-effective to maintain

Identify fonts and assets for global theme

Add required fonts and assets to the style guide and default theme

Style major blocks

Create default and mobile styling for the major blocks, such as the main menu navigation block and menu links block

Style the footer and its blocks

Create default regions and theme blocks in the footer, including footer menus

Configure Browsersync for browser testing

Configure Browsersync, including Gulp tasks and any needed modifications to your build and deployment process

Global components



Theme header contents

Theme common header contents, such as the main menu, logo, and contact information

Theme form elements

Theme common form elements, such as buttons, text areas, and check boxes

Editorial and content workflows



Develop content moderation workflows

Develop content moderation workflows, including the ability to save drafts and send content for approval before publication

Social media



Create social media integrations

Identify social media platforms to integrate with and select the appropriate icons for display




Install dependencies for forms

Install and configure modules, such as Webform




Verify the security of anonymous user data

Ensure there is no collection of anonymous user or session information

Implement and enforce SSL

Enforce SSL both on Site Factory and all external services that integrate with it




Identify CDN strategy

Determine your content delivery network (CDN) strategy, and migrate assets to it

Configure Varnish® management

Configure cache tags and reactive purging of Varnish to improve the display of recent content while preserving website performance

Enforce CSS and JavaScript best practices

Ensure that CSS files are aggregated and JavaScript files are minified

Enforce Drupal caching best practices

Configure Drupal’s core caching capabilities

Configure Memcache

Determine if Memcache is appropriate for your platform, and configure cache bins if so

Implement performance and scalability improvements

Perform page load and performance benchmarking, and implement needed improvements

Test traffic using a load test environment

Use load test environments to create an isolated deployment of the production environment infrastructure.

Next steps

After reviewing this checklist, see Executing a migration into Site Factory.