Kubernetesで高い開発者体験を作るには? ヤフーの開発環境の構築方法に学ぶ
【9-B-3】Kubernetesとカスタムコントローラーを活用したプラットフォーム開発・運用の勘所
カスタムコントローラーの開発で注意すべきポイントは?
より使いやすい開発環境の実現に有効なカスタムコントローラーだが、実際にどう開発すればいいのか。早川氏は、同社で実践している開発の流れを紹介した。
大まかな流れは、設計、コントローラーの実装およびテスト、リリースの3段階だ。設計で試行錯誤してからひとつずつ実装、テスト、リリースして、設計にフィードバックするサイクルを回していると早川氏は言う。
設計では、主に次の3つを行っているという。
- コントローラーとカスタムリソースの構成を決める
- カスタムリソースの仕様を決める
- コントローラーごとに詳しい挙動を整理
1つは、作りたい機能を実現できるよう、コントローラーとカスタムリソースをどのような単位で作るか、さまざまなパターンを図で書き出して考える。「1つのコントローラーに機能を詰め込みすぎると、メンテナンスが大変になったり挙動が不安定になったりするので、その点を意識して試行錯誤している」(早川氏)
2つめは、どのような情報をカスタムリソースで記述するのかなど、manifestを書きながらカスタムリソースの仕様を考える。そして3つめは、コントローラーそれぞれの挙動を詳細に書き出して整理する。たとえば前述の権限設定するカスタムコントローラーの場合は、Namespaceリソースが新規作成されたというイベントに対して、AthenzPolicyClaimリソースをこのような値で作成するといったように、イベントごとの動作をリストアップするのだ。「この情報はそのままテストケースとしても使える」(早川氏)
コントローラーの仕様を決めるときのポイントとして、挙動を多く設定しすぎるとコントローラーの役割が増えすぎて、テストを書くのが大変になると指摘。増えすぎるようであれば、挙動を複数のコントローラーに分けるといった工夫をしたいと述べた。
設計が確定したら、次はコントローラーの実装だ。ここでのポイントは、コントローラーを1つずつ実装することだ。「きちんと設計されていれば、コントローラーの挙動は互いに独立しており、自分の担当するReconciliation Loopを回すだけで良い状態になっているはずだ」(早川氏)
コントローラー単位で開発すると、スクラム開発にうまくはまるというメリットもあると早川氏は明かす。「意味のある小さな単位でリリースし、早めにフィードバックを得て改善するという流れが作りやすく、複数チームでの分担もしやすい。スプリント単位でコントローラー作成するのがお勧めだ」。
同社では、さまざまな場所でアプリケーション実行基盤についての発表を積極的に展開している。気になる人はぜひチェックしてほしいと早川氏は述べて、講演を終えた。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- Developers Summit 2023 セッションレポート連載記事一覧
- この記事の著者
-
谷崎 朋子(タニザキ トモコ)
エンタープライズIT向け雑誌の編集を経てフリーランスに。IT系ニュースサイトを中心に記事を執筆。セキュリティ、DevOpsあたりが最近は多めですが、基本は雑食。テクノロジーを楽しいエクスペリエンスに変えるような話が好きです。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
丸毛 透(マルモ トオル)
インタビュー(人物)、ポートレート、商品撮影、料理写真をWeb雑誌中心に活動。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営する開発者のための情報メディアです。日々の開発に取り組むエンジニアやテクノロジーを学びたい方に向けて、プログラミングやAI活用、開発ツール、エンジニアの学びとキャリアに関する記事をお届けしています。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
提供:ヤフー株式会社
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア
