Drupal Blue/Green deployments with AWS ECS
Drupal deployments are hard. You have to make sure your code is deployed, composer dependencies are pulled, schema updates are performed and caches cleared, all with keeping the website up and responsive for the users, add the fact that you host on multiple servers and you have active users online updating some content 24/7 and it gets even more interesting. What if anything goes wrong and you want to rollback, do you have to deploy again and have your users wait?
The answer is No. Blue/Green deployments are the solution to this problem, but how do we do that with Drupal?
I’m going to cover blue/green deployments in Drupal when managing your own infrastructure with Docker on AWS ECS and discuss different scenarios and challenges with those.
- Drupal deployment problem and Blue/Green deployment overview in Drupal deployments perspective
- Infrastructure setup using Terraform
- CI/CD Pipeline using Jenkins Pipelines and Blue Ocean plugin
- Managing state. Stateful vs Stateless applications deployment challenges and solutions
- Cluster and service auto-scaling as demand grows
- Secrets management
After this session you should be able to answer the following questions:
What is Blue/Green deployment and why do I need it?
How to do Blue/Green deployments with Drupal hosted on AWS ECS
How to prepare your Docker drupal stack for blue/green
How to architect your Drupal website to have minimum impact on user data loss during deployments and/or rollbacks.
How to use tools like Jenkins Pipelines to implement Blue/Green CI/CD pipeline
How to use Terraform to manage your infrastructure with code