[Repost] Topcoder MM Processor | Automate deployments to Amazon S3

Key Information

Register
Submit
Competition Timeline

Timezone:Etc/UTC

Registration

Starts

Jun 11, 2019

07:06

Ends

Jun 15, 2019

07:09

Submission

Starts

Jun 11, 2019

07:16

Ends

Jun 15, 2019

07:12

Review

Starts

Jun 15, 2019

07:12

Ends

Jun 17, 2019

05:55

Appeals

Starts

Jun 17, 2019

05:55

Ends

Jun 18, 2019

05:56

Winners Announced

Jun 18, 2019

06:29

Challenge Overview

Based on the feedback received in the earlier contest, we have changed the specification and relaxed certain restrictions. Looking forward to your participation

 

Challenge Objectives

  • Set up an automated deployment process for deployment Topcoder’s Marathon Match specific processor. For now, deploy the source code to Amazon S3 only

  • Implement an AWS based automated deployment pipeline

 

Project Background

  • When Topcoder runs contests in the Marathon Match track, they involve a “processor” that takes care of executing the submissions uploaded by participants and creates a review for them based on the score received.

  • This process is currently carried out manually. The Copilot or PM for that contest set up the processor (fine tune the configurations specific for that contest), launch the processor, monitor the deployment and execution of the submissions etc.

  • This contest aims to automate this process

 

Technology Stack

  • Nodejs version 10

  • Amazon Web Services

 

Code access

We will share the processor source code in the contest forum. NO changes are expected to the processor source code, beside addition of new files necessary for automating the deployment.

 

Individual requirements

Setup CI / CD Runner to build a Dockerfile and update the configuration in the app (Major Requirement)

  • We will share a document in the contest forum that describes this requirement in detail

  • Following is a summary:

    • Using gitlab runner, build a docker image

    • The build is then pushed to dockerhub

    • Finally, we update a file in the repository with the image name

 

Deploy the source code from Gitlab to Amazon S3 (Major Requirement)

  • Once the first requirement is met, you will need to upload the source code to S3

  • We will share a document in the contest forum that describes this requirement in detail

 

Note that this isn't the final step. There are additional steps involved, which we will take up in subsequent contests.

 

Deployment guide and validation document

A well written deployment guide is essential for the success of your solution. Reviewers should be able to deploy your solution by following the deployment guide alone. Assume the end user is familiar with command line interface and can navigate through the AWS interface - your deployment steps need to be detailed. Images to guide the user are optional, but highly recommended. You can provide a markdown file or a Word document too.

 

Important Notes

  • The task to upload the source code to S3 should only happen if the pipeline, containing the lint check succeeds.

  • Do not use a docker based deployment since we are dealing with an app that itself processes Dockerfiles. We want to avoid a docker inside docker scenario.

  • The cloudformation template, if any, needs to set up the IAM roles / groups as needed.

  • Use the us-east-1 region for all AWS resources.

  • Reduce the number of manual steps needed to deploy.

 

A Note on the Review

  • We will be using the Subjective scorecard for this contest

  • Your score will be based on:

    • How easy it is to follow your deployment guide

    • How easy it is to deploy your solution

    • How much automated your solution is. We are looking for a solution with the least effort involved at our end to set it up.

  • You will get a passing score only if your solution can be used immediately (and meets the requirements) without requiring any major changes. Reviewers, note that getting a score more than or equal to 50 is a passing score. Your solution should be worth the prize money.



Final Submission Guidelines

Since you are not making any changes to the source code, you do not have to upload it. Instead, zip only those files needed to make this work along with your deployment guide. Your deployment guide and describe where to place these files in the source code (at the ROOT folder, under a specific folder etc).Upload your zip file to Topcoder.

 
 

ELIGIBLE EVENTS:

Topcoder Open 2019

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30093178