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.
Social media¶