The following is a Kata, an exercise in coding, refactoring and test-first.
The goal is to solve the exercise in your own best way, showing us how you approch problems and your workflow. We may give more value to how you reached the solution with respect to the solution itself.
- Try not to read ahead.
- Do one task at a time. The trick is to learn to work incrementally.
- Commit your code on GitHub or any other SCM repository you prefer.
- Release your work under an OSI-approved open-source license of your choice.
- Disable Copylot and don't watch others solutions while trying to solve this kata, you'll make it harder for us to asses your skills.
The goal is to build different Docker images and run containers to implement a HTTP web service. Additionally the candidate will demonstrate their expertise in setting up a complex infrastructure using AWS Elastic Container Service (ECS)
Create a Docker image that implements a WEB server able to expose static HTML files. The HTML files will be opened through a browser after a container based on this image stars. The HTML pages will be included in the Docker image. Run a Docker container based on this image.
Modify the previous image so that the HTML contents are loaded at run time. Run two containers that use the same image but that expose two different index.html pages
Create a Docker image that implements a HTTP proxy server. Run a container based as on this image so that it will be possible to navigate on different HTTP pages, related to the two different containers started at step 2, changing the browser URL.
Modify the image implemented at step 3 so that the proxy server will be reachable through HTTPs protocol.
This exercise requires the design and implementation of an infrastructure based on AWS Elastic Container Service (ECS) that hosts a web server service. It would be preferable for the exercise to be done using Terraform but the candidate can use any tool
- Set up an ECS cluster with Fargate launch type, VPC, and subnets.
- Define ECS task definitions for the Web services.
- Configure an Application Load Balancer to route traffic to the ECS services.
- Implement auto-scaling policies for the ECS services.
- Create a CI/CD pipeline using Gitlab, Github or any other similar tool for automating deployments.
IMPORTANT: Provide a README for all step with instructions on how to build run and test the environment.
CODE SUBMISSION: Add the code to your own Github account and send us the link.