Terraform Github Actions Docker Node.js AWS EC2 AWS S3 AWS ECR
. Get access id, secret id from AWS . Develop a simple nodejs app . Write Dockerfile for Hello World Application . Generate SSH keys for connecting to EC2 instance . Create a S3 bucket for storing Terraform State file . Write Terraform Scripts for provisioning EC2 instance . Write Github Actions workflow: Set environment variables . Setup backend for S3 bucket with terraform init . Pass tf variables with Terraform plan . Run terraform apply . Set EC2 instance public ip as job output . Authenticate ECR . Set ec2 public ip as environment variable for later use . Build, tag and push docker image to Amazon ECR . Connect to EC2 using ssh and deploy docker container
Manheim's Release Engineering team develops tools, libraries, documentation, and processes to allow seventy development teams to do their jobs faster and more efficiently, reliably, and securely. Each of the teams is autonomous and has full control over the choice of languages and tools that they use. When they choose ours, it's because we provided the most compelling solution. When we do our jobs well, our products are also adopted by some of the hundreds of Cox Automotive development teams outside of the Manheim business unit.
We don't do whiteboarding or programming exercises in our interviews. Our interviews are a conversation about you, about us and our company, about your experience, and about how well we think you'd be a fit for us and vice-versa. This project is intended as a way for you to show us your technical skills in a self-paced, low-pressure environment. It is intended to take no more than a few hours to complete. After a few hours, if you have not completed the challenge, wrap up your work and deliver it to us with your plan so we understand your vision for how you’d complete the project if you had the time.
Before you start: If you’ve created some code that shows your experience and capabilities, feel free to submit that instead of completing this challenge. Our intent is to see your coding ability and style to see if you’re qualified for the job.
A new development team is tasked with creating a web based visualization tool. You are tasked with writing code to deploy the application that will eventually be added to a pipeline, but the application is not done yet, so you’ll use “hello world” as a placeholder. Anyone on the team must be able to maintain and execute the deployment code.
- Display the text “hello world” in a browser
- Create the deploy code that will be used in the pipeline for a single environment
- Make it generic so it can be deployed to multiple environments [dev & prod initially, but eventually others]
- Must be capable of completely tearing down deployed environments
- Use language[s] you prefer
- Use the cloud provider, tools, and technologies you prefer
- Use git to store your code. fork this repository or clone it
- Deliver the code to us via fork link or gzipped tar ball including the .git directory so we can see all commits
- Use a free tier of your cloud provider so we can run your code, aws preferred
- Instructions should be complete and clear
- Don’t reinvent the wheel
- Commit often and don't squash commits
- Don’t spend more than a few hours on the challenge. If some requirements could not be completed, let us know why.