We are looking for someone to set up a Drupal development/staging/testing/production environment and to provide ongoing system maintenance on a part-time basis.
We want to create a development/testing/staging/deployment process that automates as many of the steps as possible to increase our efficiency. Preference is to be given for someone who has set up similar Drupal environments designed for fast performance.
The initial task is to set up two VPS servers: (1) development/staging/testing environment; (2) production environment. Server environments should be identical.
We did some research on Drupal development environment best practices and have created the following list of tasks to be completed. We can provide reference step-by-step guides we located. As you are the expert, we will also look to you for feedback and suggestions for follow-up projects/tasks.
In your response, please provide your estimated amount of time to complete the following tasks on an hourly basis:
1. Install software (see list below)
2. Set up source code repository (Git) to work with Redmine
3. Set up Hudson as CI Server and point staging environment to CI.
4. Set up automatic build scripts using Capistrano to build an instance from staging server version to onboard new developers.
5. Set up common Drupal database using MongoDB to be shared across all sandboxes
6. Create profile instance of Drupal with selected modules on Git and test it.
7. Set up an automated process to push the database BACK from the production server to the staging/testing/dev server, so that the developers can keep their copies of the database as close to production as possible.
8. Provide 1 to 2 hours Skype videoconference meeting to help us understand how to do the folllowing so we can create a step-by-step guide: (a) how a developer is to be onboarded and get code; (b) run Drupal SimpleTest to perform unit testing; (c) install rsync to sync files; (d) commit process; (e) deployment process.
9. Develop post-commit hook that ties each commit to update development instance. Prohibit commits from any non-sandboxed copy of code.
10. Set up 5 developer user accounts
11. Use Makefile and build following ready-to-go commands:
Make myseql – connect to the database
Make backup – make a copy of the database
Make backup partial – make a partial copy of the database, omitting accesslog data and other unnecessary information
Make restore – restore the database from the backup
Make dev-restore restore the database from the backup and enable all the development modules
Make clearcache – restore the database from the backup
Make tags – restore the database from the backup
Make doc – restore the database from the backup
Make test – run all my project-specific tests
Software to be installed:
Issue Tracking, Wiki, Forum (Redmine) – TECH VERSION
Source Code Repository (Git)
Host Git Repositories (Gitosis)
Git Permissions (Gitolite)
Continuous Build/Integration (Hudson)
Functional Testing (Selenium)
Deployment Scripts (Capistrano)
CMS (Drupal Mercury version with modules: drush, coder and simpletest)
DB (MongoDB) and related Drupal module
Image Resizing (aurigma)
(Other software you recommend)