Coder Social home page Coder Social logo

cat-job-offer-exercise's Introduction

Ingram Micro Job Offer Exercise

The aim of this exercise is to see how easy you adapt to new tools, and at the same time give you an impression of the cool things we do at Ingram Micro.

The exercise is split up in two parts:

  • Minimum setup
  • "Show us what you got" setup

The minimum setup is what we expect you should be able to do after having read, learned and tinkered with the different tools. The "show us what you got" setup is optional and is something you can complete if you want to show off your skills and impress us.

Part 1: Minimum setup

We want you to create a Chef cookbook that is able to bring up a Prestashop Docker container on a Ubuntu 18.04 server.

To be able to do this we want you to leverage the following cookbook:

To complete this part, you will have to:

  • setup a correct environment for the development of chef cookbooks
  • create your chef cookbook

To help you get started, consider the following workflow in your cookbook:

  1. Install Docker in the machine with Chef-Docker cookbook resources mentioned earlier
  2. Download the Prestashop container using Chef-Docker resources
  3. Run the Prestashop container using Chef-Docker resources

Please bear in mind that 50% of the exercise is to set up correctly the environment. It is recommended that you do it in Linux as it will simplify quite a lot the process. Instead of giving you the process of how to install this environment, we will give you references to the tools involved and you are in charge of learning how to use them for the task. The reason is pretty simple: we want you to interact with the system and learn a little bit of system administration. So please install the following in this order.

Clone this repository and do all your work on it. Please commit periodically so we can follow you progress.

There is extensive information on these tools out there and how to use them. A big part of this exercise is to do that.

Tip: Use Kitchen (comes bundled with ChefDK) to execute your cookbook in a contained environment:

  1. kitchen create to create an ubuntu 18.04 virtual machine
  2. kitchen converge to run your chef cookbook in the virtual machine
  3. kitchen destroy to remove ubuntu 18.04 virtual machine

(optional) Part 2: "Show us what you got" setup

When writing many cookbooks, tests become a crucial part as they will allow you to detect problems in your cookbook early on and save time.

This part of the exercise consists in writing the following smoke tests for your cookbook:

  • check whether Docker daemon is running
  • check whether Prestashop container is running
  • check whether Prestashop is listening on port 80

To do this, you will need to rely on a framework specifically created to build integration tests: InSpec + Kitchen. Rely on the information you can find in below references.

Reference Documentation

  1. Chef Resources contains information of the Chef DSL
  2. Kitchen CI contains documentation of how to use kitchen and program a simple cookbook
  3. Docker Resources contains information of Docker Chef DSL
  4. Attached slides in the current repository
  5. Inspec contains information on how to write smoke tests

cat-job-offer-exercise's People

Contributors

juanferngran avatar

Watchers

James Cloos 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.