Builder's Challenge · DevOps

Web Application Containerization & Deployment

A new web-based service demands deployment, necessitating accessibility to the broader internet. The service, encapsulated within a Docker container, integrates core logic for an API layer.

The deployment must gracefully handle a minimum of 1,000 concurrent users during launch, dynamically scale based on demand, maintain high availability amid server and network anomalies, and withstand deliberate DoS attacks. It should also accommodate periodic service updates with minimal downtime.

Your task

The challenge is threefold, plus observability

1

Design

Architect an infrastructure aligning with the service requirements. Utilize AWS or suitable alternatives for a production system. Clearly articulate assumptions and expectations regarding the service container in deployment diagrams.

2

Infrastructure as Code

Implement the architectural design using Infrastructure as Code principles. Employ Terraform or equivalent technology to codify your infrastructure.

3

Implementation

Bring the architectural design to fruition using your IaC solution. Create a Dockerfile for integration. Prepare a working solution to deploy the application in container orchestration.

4

Monitoring

Implement observability to ensure the deployed service is reliable and maintainable.

Evaluation criteria

How your submission is assessed

  • Elegance and simplicity. Demonstrate a sophisticated yet straightforward deployment strategy.
  • Code quality. Emphasize clean and maintainable code, ensuring its longevity and clarity.
  • Documentation and comments. Provide comprehensive design documentation and comments, serving as a guide for others.
  • Technology choices (flexible). You may use any tools you deem appropriate. For context, we prefer ECS, Kubernetes, Jenkins, and ALB ingress. Using these is not required; just explain your choices and rationale.
Submission

Submission guidelines

Follow these steps for a structured submission:

  1. Download the application files.
  2. Invite @AzizBelgouthi and @DennisGoldfinger to your repository and notify us upon completing the challenge.
  3. (Optional) Based on the application structure, are there any recommendations you'd give to the engineering team to improve the system?
We look forward to reviewing your orchestration of this deployment challenge.