This test is a part of our hiring process at Aircall for DevOps positions. It should take you between 3 and 6 hours depending on your experience.
Feel free to apply! Drop us a line with your Linkedin/Github/Twitter/AnySocialProfileWhereYouAreActive at [email protected]
The purpose of the test is to reproduce one of our typical use case on the DevOps part of Aircall: deployment!
The story is the following:
Our backend team just developed a new service in order to make custom integrations for special customers. We need to deploy this service on one different virtual context for each customer, with a reproducible process.
It's 9AM in the office and first calls are coming in!
In this repository, you'll find a simple Rails project with one model. Your goal is to set up the web server using requirements below. The web server should be reachable from a public IP address.
Find below the technical requirements for your virtual context.
Ruby version:
- 2.3
Rails version:
- 4.2.1
System dependencies:
- ruby (with bundler)
- nodejs
- mysql
- nginx
- libxslt-dev libxml2-dev zlib1g-dev libmysqlclient-dev
Find below the files you might need to modify/use in order to configure the launch of the application.
- config/environment.yml
- config/database.yml
- config/puma/*.rb
- config/nginx/server.conf
Update 'production' to 'development' if you want to test locally
Find below the commands you need to launch in order to deploy this application.
App dependencies:
- bundle install
- RACK_ENV=production RAILS_ENV=production rake assets:precompile
Database creation:
- RACK_ENV=production RAILS_ENV=production rake db:create
Database initialization:
- RACK_ENV=production RAILS_ENV=production rake db:migrate
Web server initialization:
- RACK_ENV=production RAILS_ENV=production bundle exec puma