Information for: DEVELOPERS   PARTNERS   SUPPORT

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 (such as BLT) that can assist you:

Setting up development processes

  Summary Description
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
Install BLT Install the most recent release of BLT
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)
Install and configure Acquia BLT Configure Acquia BLT configured for local and Site Factory environments, including Drush aliases and testing platform updates
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

  Summary Description
Configure continuous integration Set up continuous integration using a tool such as TravisCI or Pipelines
Automate deployments Configure end-to-end automation with Acquia BLT, 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

  Summary Description
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

  Summary Description
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 and Acquia BLT tasks

User roles, permissions, and accounts

  Summary Description
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

  Summary Description
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
Manage committable and non-committable packages separately Create a separate package.json file that stores committable libraries in a separate folder from the non-committable build tools libraries, for downloading when the Acquia BLT front-end task runs
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

  Summary Description
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

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

Social media

  Summary Description
Create social media integrations Identify social media platforms to integrate with and select the appropriate icons for display

Forms

  Summary Description
Install dependencies for forms Install and configure modules, such as Webform

Security

  Summary Description
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

Performance

  Summary Description
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.