Application migration from on-premise to the Cloud
The objective for this team project is to create and run a pilot migration of a company’s web application to AWS.
Our project follows the assumption that this application is currently being used by hundreds of customers every day and it is based on WordPress - LAMP stack (Linux, Apache, MySQL and PHP). The company’s CEO is worried that a traffic peak may bring down the website and decided to migrate to the cloud.
- VCS → Github
- Infra as Code → Terraform
- Containerization → Docker / Docker-compose
- Build-automation utility → Make
- Relational Database → Amazon Aurora (MySQL)
- Container orchestrator → ECS
- Host and images manager → ECR
- Cloud file storage → EFS
- Git
- Docker Compose
- Make
- CLI
Firstly, clone or download this Repository:
GitHub - devopsacademyau/2020-feb-project1-group2
After cloning it, please ensure you are in the terraform directory:
cd terraform
Execute the command:
make all
(Make utility will use the Makefile, which contains the targets and instructions on how to run a series of commands)
Initialize the AWS Component, that is to pass your credentials to terraform. You will be asked for your Secret key via the AWSCLI Container:
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]:
Default output format [None]—-\
Then finally,
make destroy
To destroy or permanently delete the resources. The destroy action cannot be reversed.
Alternatively, if you prefer to see the execution of each step separately, you can do so by typing each of these commands followed by Enter.
make init
make _awsinit
make build
make plan
make apply
- Matt Garces
- Denise Horstmann
- Adriana Cavalcanti
- Marcio de Faria
- Finding time to work on this project and continue with our daily routines and jobs was a major road block.
- The majority of our resources were built and we were able to run Wordpress app as expected. However, there were a few issues regarding CI/CD Workflow. After moving the tfstate file to S3 and testing, it was working fine on Matt's side. CI/CD Workflow from GH Action was deploying the solution upon new merges to master.But when other members of the team tried to test "make all" the issues started to appear: invalid AWS Credentials, tfstate being locked to certain users. We need to revist how to pass credentials.
- Apply Blue-Green deployment to reduce downtime. This seems the safest strategy and popular for production workloads.
- Complete the CI/CD requirement part of the project.