SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2023 セッションレポート(AD)

Kubernetesで高い開発者体験を作るには? ヤフーの開発環境の構築方法に学ぶ

【9-B-3】Kubernetesとカスタムコントローラーを活用したプラットフォーム開発・運用の勘所

  • X ポスト
  • このエントリーをはてなブックマークに追加

カスタムコントローラーの開発で注意すべきポイントは?

 より使いやすい開発環境の実現に有効なカスタムコントローラーだが、実際にどう開発すればいいのか。早川氏は、同社で実践している開発の流れを紹介した。

 大まかな流れは、設計、コントローラーの実装およびテスト、リリースの3段階だ。設計で試行錯誤してからひとつずつ実装、テスト、リリースして、設計にフィードバックするサイクルを回していると早川氏は言う。

カスタムコントローラーの開発の進め方
カスタムコントローラーの開発の進め方

 設計では、主に次の3つを行っているという。

  • コントローラーとカスタムリソースの構成を決める
  • カスタムリソースの仕様を決める
  • コントローラーごとに詳しい挙動を整理

 1つは、作りたい機能を実現できるよう、コントローラーとカスタムリソースをどのような単位で作るか、さまざまなパターンを図で書き出して考える。「1つのコントローラーに機能を詰め込みすぎると、メンテナンスが大変になったり挙動が不安定になったりするので、その点を意識して試行錯誤している」(早川氏)

 2つめは、どのような情報をカスタムリソースで記述するのかなど、manifestを書きながらカスタムリソースの仕様を考える。そして3つめは、コントローラーそれぞれの挙動を詳細に書き出して整理する。たとえば前述の権限設定するカスタムコントローラーの場合は、Namespaceリソースが新規作成されたというイベントに対して、AthenzPolicyClaimリソースをこのような値で作成するといったように、イベントごとの動作をリストアップするのだ。「この情報はそのままテストケースとしても使える」(早川氏)

 コントローラーの仕様を決めるときのポイントとして、挙動を多く設定しすぎるとコントローラーの役割が増えすぎて、テストを書くのが大変になると指摘。増えすぎるようであれば、挙動を複数のコントローラーに分けるといった工夫をしたいと述べた。

 設計が確定したら、次はコントローラーの実装だ。ここでのポイントは、コントローラーを1つずつ実装することだ。「きちんと設計されていれば、コントローラーの挙動は互いに独立しており、自分の担当するReconciliation Loopを回すだけで良い状態になっているはずだ」(早川氏)

 コントローラー単位で開発すると、スクラム開発にうまくはまるというメリットもあると早川氏は明かす。「意味のある小さな単位でリリースし、早めにフィードバックを得て改善するという流れが作りやすく、複数チームでの分担もしやすい。スプリント単位でコントローラー作成するのがお勧めだ」。

 同社では、さまざまな場所でアプリケーション実行基盤についての発表を積極的に展開している。気になる人はぜひチェックしてほしいと早川氏は述べて、講演を終えた。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Developers Summit 2023 セッションレポート連載記事一覧

もっと読む

この記事の著者

谷崎 朋子(タニザキ トモコ)

 エンタープライズIT向け雑誌の編集を経てフリーランスに。IT系ニュースサイトを中心に記事を執筆。セキュリティ、DevOpsあたりが最近は多めですが、基本は雑食。テクノロジーを楽しいエクスペリエンスに変えるような話が好きです。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

丸毛 透(マルモ トオル)

インタビュー(人物)、ポートレート、商品撮影、料理写真をWeb雑誌中心に活動。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

提供:ヤフー株式会社

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/17433 2023/04/10 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング