Last night was the live episode of challenge 3 and the semi final for the competition where it goes down to the final 3 contestants. This weeks challenge was a really good one and great chance for me to get hands on. The challenge was to expand our design to another site but only use GA products and ideally open source, that rules out VMware on AWS I had from my previous sites. We also needed to look an automated process of deploying the application on another site.
Feedback from the previous challenges was that I needed to go down to the physical design and show some meat on the bones so I spent most of my time on that and only included a few logical design decisions. I stuck with Terraform for the automation around the infrastructure and stuck with Docker for the container image, i did introduce Jenkins to provide a CI /CD pipeline into the application deployment. I also changed the database from DynamoDB to Cassandra to move away from AWS and go open source.
I didnt just want to make up the physical design so I started writing a Terrafom script to deploy the infrastructure on AWS and this is where the fun really started for me as this all new to me. First the infrastructure was deployed then I got a basic test Docker application to demo that which was a basic web page that said “Hello-World”. Im still looking to use Amazon ECS for the Docker image so I then thought it would be cool if I could use Terraform to deploy that as well.
So I extended the script to add an auto scaling ECS cluster using the AMI I had created, that worked fine initially but the container task didnt start. It was basically down to the role didnt have permissions to add container instances and I realised the task also needed to be configured for the cluster. I then extended the script with the correct roles and added the task to start the same Docker basic website. After some tweaking it worked and I had a cluster running with a publicly accessible website albeit very basic.
For me this was great as before this competition I had never looked at Terraform, ECS or Docker and now I had an automated deployment of it all. To see the script and some screen shots of the final outcome see my design below.
Following the judges review I made it to the final 3! Which is awesome and the other two finalist Chris Porter and Adam Post have done excellent work throughout the competition the final will be tough, the challenge is going to be intense. We have a little more time to work on it which helps but im looking forward to diving in and learning even more.