An open API service indexing awesome lists of open source software.

https://github.com/quipper/devops-test

Test for the SRE team
https://github.com/quipper/devops-test

Last synced: about 1 year ago
JSON representation

Test for the SRE team

Awesome Lists containing this project

README

          

# Quipper DevOps テスト

## 課題 1: プログラミング

### 制約

- 課題を達成するために、最低1つ以上のコードを書いてください。
- プログラミング言語は何を使っても構いません。
- 課題の中で、最低1つ以上の SQL または SQL-like なクエリを利用できるデータベースを利用してください。
- 例: PostgreSQL, MySQL, sqlite3, InfluxDB など
- あなたが思う現実世界の問題について考慮してください
- 例: パフォーマンス, メンテナンス性等
- Docker または docker-compose によるセットアップ手順・実行手順を用意し、提出物に明記してください。
- プログラミング言語、およびデータベースを Docker 上で実行させるようにしてください。これはレビュアーがテストを容易に行うためです。
- レビュアーは通常 Docker for Mac を用いて実行します。
- その環境で正常に動作しない場合、確認させてもらう場合があります。

### 課題内容

- `logs` フォルダに含まれる5個のログファイルをパースし、データベースにデータを格納してください。
- 各ファイルは日別のログデータを持ち、gzip で圧縮されています
- ログファイルのフォーマットは LTSV です
- 使用したデータベースに対して、以下の結果を返す SQL を書いてください。
- 各`uri`ごとのの日毎のアクセス数

### 課題提出方法

1. このリポジトリを clone し、作業用にブランチを作成し、ソースコードなど必要なファイルを追加してコミットしてください
2. 以下の内容を含む `how-to-run.md` というファイルを Markdown 形式で作成し、コミットしてください
- 利用したプログラミング言語名
- 利用したデータベース名
- 作成したプログラムの実行方法
- どのような側面について考慮し、または妥協したのか
2. 作業が終了後、`./archive.sh` を実行すると、git の HEAD が `quipper-devops-test.zip` という名前でアーカイブされます
3. 作成したアーカイブファイルを応募時に添付、もしくはメールでお送りください。

## 課題 2: システム設計

面接の場で、下記のシステムについてあなたが考えた設計案をプレゼンしてください。
説明する資料を作成し、当日面接官に資料の url を共有してください。資料の事前提出は不要です。面接はオンラインで行われます。
システムの設計にあたって、制約はありません。

### 非同期ジョブシステム

- 複数の Web アプリケーションから共通で使える非同期ジョブの基盤を提供する
- 対象となるのは時間がかかる処理。例えば、動画のエンコーディングや大量のサムネイルの作成など。
- 非同期ジョブが失敗した場合は、自動的に5回リトライする
- 5回失敗した非同期ジョブはシステム管理者にエラー通知する
- 非同期ジョブが終了したら、成否に関わらず結果をユーザに通知したい。
- これは可能か?どのような制約をつければ実現できるか?