Investigating, analysing, evaluating the options and implementing the best solution in each case.
Firstly, we carried out an analysis. Our objective was to learn about the current platform and its behaviour. We analysed:
- Data transfer metrics:
- Volume of data transfer to the Internet.
- Percentage of traffic of logged on and anonymous user.
- Hardware resource metrics: CPU, RAM, IOPS, iowait,etc.
- Size of the hardware.
- Database metrics:
- Requests per second.
- Write / read operations (percentage of select, update, insert and delete queries.
- Average execution time for requests.
- Concurrent requests per second.
- Workflow deployed.
- Infrastructure diagram with role description of each component.
After learning about both the infrastructure and the different websites to migrate including the deployment methodology, the next thing we took on was the creation of the new infrastructure in Amazon, where we adapted all its services to Drupal (both Drupal6 and Drupal7). AWS was chosen as a cloud infrastructure provider to ensure high availability and quality performance.
We used cache layers to lighten the load of web servers and database; high availability (redundancy of all services) to avoid possible system crashes; AWS self-scaling to horizontal growth; and CDN (Akamai in our case) to download all the multimedia content and their services.
Once the process of creating the infrastructure and migration of contents (source code, files, database, configuration files ...) was finished, we had to orchestrate the deployment and upload of new improvements to the different environments.
To achieve this, we created a new workflow, based on GitFlow and continuous integration: Git, Drush and Jenkins were the basic tools on which we relied.
It's been a great experience working with La Drupalera. They have a great in depth knowledge of all the necessary technologies to bring out projects up live, always on time and with a great collaborative attitude.