vmignot / devops-test-ruby

Technical test for DevOps position at Aircall.io

Home Page:https://aircall.io/jobs#SystemAdministrator

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Aircall.io - DevOps technical test

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 jobs@aircall.io

Summary

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!

Instructions

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.

Technical stack

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

Configuration

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

Deployment

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=${ENV} RAILS_ENV=${ENV} rake db:create

Database initialization:

  • RACK_ENV=${ENV} RAILS_ENV=${ENV} rake db:migrate

Web server initialization:

  • RACK_ENV=${ENV} RAILS_ENV=${ENV} bundle exec puma

About

Technical test for DevOps position at Aircall.io

https://aircall.io/jobs#SystemAdministrator


Languages

Language:Ruby 79.5%Language:HTML 12.7%Language:CSS 3.8%Language:HCL 2.0%Language:JavaScript 1.3%Language:CoffeeScript 0.4%Language:Shell 0.2%