GithubHelp home page GithubHelp logo

devops-challenge's Introduction

Welcome to the DevOps challenge

Prerequisites

Instructions

Your codeName = thedoctor - Use it throughout the task.
We've found a data leak in our company, but before we're deleting our resources, we need you to extract the information and deliver it.
You're assigned with the creation of a device that will be used as a POC to transfer highly sensitive data.
With the language of your choice follow these instructions in the next 72 hours to stop the leak:

  1. Clone this project, change its name and restructure it as you see fit, create your own GitHub repo with the code
  2. Write an application that will extract the secret string from a DynamoDB table in our account
  3. The secret_code lies in a DynamoDB table devops-challenge where code_name = #{codeName}
  4. The keys that will provide access to the account have been provided separatly
  5. Create a docker container that will publish secret_code to http://127.0.0.1:5000/secret
  6. Create a Travis CI account, and add a .travis.yml that will build, test and deploy your code and container/s
  7. The Travis process should publish the contianer to your own docker hub account
  8. A link to the container on docker hub should be published as container to /health (See requirement #2)
  9. A link to the GitHub project should be published as project to /health (See requirement #2)
  10. Once completed, reply to the challenge email:
Subject: Task complete - #{codeName}
Content: Name:      <YOUR_NAME>
         Project:   <LINK TO GITHUB PROJECT>

Bonus - This is not a must

To wrap up the project, prepare a environment.template file, that would contain a CloudFormation YAML.
The template should create an environment ready to deploy your application to AWS.
You may choose any AWS service you see fit for the deployment.
When using the template in CloudFormation, the user should be able to fill in parameters required (e.g vpc-id, instance-type etc).


The result should

  1. Return { secret_code: <CODE> } to http://127.0.0.1:5000/secret
  2. Return { status: healthy, container: <LINK_TO_HUB>, project: github.com/omerxx/ecscale } to http://127.0.0.1:5000/health
  3. Running docker-compose up should get everything up and running
  4. Contain a minimal test suit
  5. Be tested and built in Travis on push to master branch
  6. Contain a well documented code, and a SUMMARY.md file explaining each step of the development process
  7. Contain a TROUBLE.md describing difficulties along the way and their solutions
  8. Contain a INSTRCUTIONS.md explaining a cloning user how to use the repo - running, testing etc.
  9. Be published as a GitHub project under your account e.g github.com/<GitHub_User>/<Challange_Project>

Guidance (These are only for general assitance and are not a must):

  1. Use informative commit messages
  2. Think security: Avoid exposing secrets in any way (Tip: use .env file for the composeing, and .gitignore it)
  3. Different routers in Ruby, Python, Go and Node
  4. Structure the project in a maintainable logic way, you may use /example
  5. Use the example/screenshots/ for a general idea of the outcome

devops-challenge's People

Contributors

omerxx avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.