- About
- Prerequisites
- Configure
- Test Procedure En
- Tes Procedure Ja
- Expect En
- Expect Ja
- How to check interviewee passed the test En
- How to check interviewee passed the test Ja
- Step to check passed
- Expect state
- Author and intructors
We can't know the candidate without testing them
This project is built as Proof of Concept. Aim to create a test environment that checks whether SRE candidates meet the basic requirements of the cloud. In a test environment where there are some design flaws (on purpose), the candidate needs to fix the bugs in order for the system to run stably.
このプロジェクトは、Proof of Concept として構築されています。 SRE候補がクラウドの基本要件を満たしているかどうかをチェックするテスト環境の作成を目指します。 (意図的に)設計上の欠陥があるテスト環境では、システムを安定して実行するために、候補者はバグを修正する必要があります。
- Docker
- Kubernets
- Terraform
- AWS basic
We split the terraform code into 2 parts: code for base state and code for scenario 1. When interviewee complete the test, only resources related to test scenario are deleted and code for base state is preserved
- Install
git clone https://github.com/moneyforward-hoai-nam-dao/PoC-SRE-interview-platform.git
-
MUST run terraform code in base folder BEFORE run terraform code in scenario 1 !
-
Follow the instruction in base folder and scenario folder
- Interviewer apply terraform to start this scenario.
- Interviewer will receive output from terraform which is the IAM key and IAM password.
- Interviewer send Interviewee the IAM key and IAM password and AWS account login url.
- Interviewee can login to AWS console.
- Interviewee can login into EKS and apply manifests.
- Interviewer can check if problem is solved.
- Interviewer can run terraform to reset to base state.
- 審査官 は、このシナリオを開始するためにテラフォームを適用します。
- 審査官 は、IAMキーとIAMパスワードであるterraformからの出力を受け取ります。
- 審査官 はインタビュイーにIAMキーとIAMパスワードおよびAWSアカウントのログインURLを送信します。
- 候補者 は AWSコンソールにログインできます。
- 候補者 は EKSにログインして、マニフェストを適用できます。
- 審査官 は、問題が解決したかどうかを確認できます。
- 審査官 は、テラフォームを実行して基本状態にリセットできます。
- Interviewee can check the log in CloudWatch to see the metrics
- Interviewee can check the active status of the pod in K8S
- Interviewee can check Policy, Security Group, Node port, ALB, etc
- Interviewee will then apply the changes to make the system work properly
- 候補者 は CloudWatchのログをチェックして、メトリクスを確認できます
- 候補者 は K8Sでポッドのアクティブステータスを確認できます
- 候補者 は、ポリシー、セキュリティグループ、ノードポート、ALBなどを確認できます。
- 候補者 は、システムが正しく機能するように変更を適用します
- No pods died
- The number of successful requests in 10s must be greater than X(X>10)
- ポッドは死にませんでした
- 10秒間に成功したリクエストの数は、X(X> 10)より大きくなければなりません。
- AWS configure
Type your AWS_ACCESS_KEY and AWS_SECRET_KEY
- Update kubeconfig
aws eks update-kubeconfig --region ap-southeast-1 --name pbl-04-2022-cluster
- Get all pods in go-server namespace
kubectl get pods --namespace="go-server"
-
Check pods status and number of pods. if node have X(eg: X >= 3) pods above and all pods are running => OK Interviewee can scale vertically(not encourage this solution)
-
Check security group of ALB (allow ingress on port 80)
-
Check CloudWatch to see number success request per 10s greater than threshold(eg: X >= 10) => OK
- CloudWatch image
- Desgin normal state
Many thanks to yuyuvn who gave the idea and design of the system