はじめに
CNCF主催の認定試験 Certified Argo Project Associate (CAPA) を受験し合格したので、受験記を記載します。同認定試験の受験を考えている方の参考になれば幸いです。
免責事項(Disclamer)
- 本投稿は受験当時の情報となります。受験を検討する際は最新の情報の確認をお願いします。
- 本投稿は個人の所感です。
- 所属する企業や団体は関係ありません。
- 情報の利用は自己責任でお願いします。
試験概要
- Argoプロジェクトの関連プロダクト(ArgoCD, ArgoRollouts, ArgoWorkflows, ArgoEvents)についての認定試験です。
- 受験日:2024/10/31
- 試験形式
- オンライン試験
- 1回再受験可能
- 多肢選択式
- 試験時間90分
- 試験言語は英語のみ提供
- 100点満点中75点以上で合格
カリキュラム全体の理解
- CNCFのこのページが参考になりました。
ArgoCD
ArgoCDとは
- レポジトリ上にあるマニフェストを必ず正しい情報源(Single Source of Truth)と見なし、実環境をレポジトリのマニフェストに合わせるGitOpsを実現するツールです。
- 例えば、実環境を手動で変更した場合、ArgoCDによりマニフェストに従う形に自動で修正されます。
- これにより「今サーバの状態がどうなっているか誰もわからない!(秘伝のタレ問題)」という状態を防げ、いつでもレポジトリを見れば今の構成を知ることができます。
勉強方法
- 案件で使っていて概要は知っているところからのスタートです。
- 上記CNCFのページで紹介されているリンクを辿り、知らない部分を少しずつ理解を進めました。
- ArgoCDでのKustomizeの使い方はこのページがわかりやすかったです。
- カリキュラムに書かれていないが本番で聞かれたこと
- ignoreDifferences(差分を無視させる)設定は聞かれるので、書き方など理解しておくとよいです
- ApplicationSetリソースについても聞かれました
ArgoRollouts
ArgoRolloutsとは
- ブルーグリーンデプロイ、カナリアリリースを実現するツールです。
- 通常のk8sリソースであるDeploymentを少し拡張した、kind: Applicationというカスタムリソースで定義します。
- ブルーグリーンデプロイを構成すると、activeService(稼働系)とpreviewService(確認系)のReplicasetがデプロイされます。このPreviewで動作を確認し、動作が問題なければPreviewをActiveに昇格させることでリリースを行います。
- カナリアリリースを構成すると、stableService(稼働系)とcanaryService(カナリア系)のReplicasetがデプロイされます。このstableとcanaryに指定した割合(例 90:10等)で本番トラフィックを割り当てて、徐々に切り替えリリースを行うイメージです。
勉強方法
- 案件で使っていて概要は知っているところからのスタートです。
- 上記CNCFのページで紹介されているリンクを辿り、知らない部分を少しずつ理解を進めました。
- 以下は知らなかったので、案件の際に役立ちそうでした!
- ApplicationリソースからDeployment等のリソースを参照させ、Pod定義は通常の通りDeployment、ブルーグリーンやカナリアに関する記述だけをApplicationリソースに書くことができる
- 昇格の判定にAnalysisTemplateを使える
- 例:Prometheusから取得したHTTPリクエストの成功率が95%以上の場合のみ、カナリアリリースのステップを進める
- カリキュラムに書かれていないが本番で聞かれたこと
- カナリアデプロイで分析判定が失敗した場合、ブルーグリーンデプロイの昇格前分析で判定失敗した場合、ブルーグリーンデプロイの昇格後分析で判定失敗した場合、それぞれの挙動を把握しておくとよいです
ArgoWorkflows
ArgoWorkflowsとは
- kubernetesで動くワークフロー実行エンジンです。CICDも実装できます。
- AWSでいうとCode Pipelineのイメージでしょうか。
勉強方法
- 上記CNCFのページで紹介されているリンクを辿り、少しずつ理解を進めました。
- カリキュラムに書かれていないが本番で聞かれたこと
- Workflowへのパラメータの渡し方(マニフェストでの渡し方、ファイルでの渡し方)
ArgoEvents
ArgoEventsとは
- 例えばS3へのファイル配置をトリガーとして別の領域にファイルをコピーするなど、イベントドリブンにアクションを実行するためのツールです。
- 実行するアクションは基本的にはkubernetesで実行するJob(kind: Job)となるユースケースが多いようです。
勉強方法
- 上記CNCFのページで紹介されているリンクを辿り、少しずつ理解を進めました。
- 概要理解にこちらのページが役立ちました。
- ArgoEventは基本的にコンポーネントの役割の理解までしか聞かれなかったので、そこを重点理解しておくとよいです。ArgoEventは全体の中では出題の比重低め。