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
| 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 |
| □ | 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
| 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 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 |
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 |
| □ | 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 |
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.