0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人でもここまでできる!AI coding toolと一緒にKubernetesコスト最適化ツール「kost」を開発した話

0
Posted at

個人でもここまでできる!AI coding toolと一緒にKubernetesコスト最適化ツール「kost」を開発した話

はじめに

「OSSを開発してみたいけど、個人だと時間も人手もない...」
「設計から実装、テスト、リリースまで、全部一人でやるのは大変そう...」

そんな風に思ったことはありませんか?

私も以前はそうでした。でも、AI coding toolを使うことで、その常識が完全にひっくり返りました。設計・実装・テスト・リリースといったソフトウェア開発のすべての工程を、AIと一緒に効率的に進められる時代が来ています。

今回は、Kubernetesのリソース最適化ツール「kost (Kubernetes Optimization & Sizing Tool)」を実際にAI coding toolを活用して開発した体験をシェアします。

開発したOSS:kost とは

kostは、Kubernetesクラスタのコスト最適化を支援するCLIツールです。

主な機能

  • リソース設定の最適化推奨: Deployment の CPU/メモリ requests/limits を Prometheus メトリクスから分析
  • HPA設定の最適化: minReplicas/maxReplicas の適切な設定を推奨
  • AI駆動の説明: OpenAI/Claude APIを活用して、最適化の理由を自然言語で説明
  • 適用可能なYAMLパッチ生成: そのまま適用できる kubectl patch 用のファイルを生成
# 使い方はシンプル
kost scan --namespace prod --config config.yaml
kost suggest --namespace prod --config config.yaml
kost report --namespace prod --config config.yaml

詳細は GitHub リポジトリ をご覧ください。

AI coding toolで変わった開発体験

ここからが本題です。kostを開発する過程で、AI coding toolがどれほど強力だったかをフェーズごとに紹介します。

1. 設計フェーズ:アイデアから仕様へ

従来の課題

  • 機能仕様を書くのに時間がかかる
  • アーキテクチャ設計で悩む時間が長い
  • データモデルの設計が曖昧になりがち

AI coding toolでの体験

「Kubernetesのリソース最適化ツールを作りたい」

このシンプルな要望から、AIは:

  • 必要な技術スタックの提案(Prometheus、Kubernetes client-go)
  • データモデルの設計案
  • CLIインターフェースの構造
  • セキュリティ考慮事項のチェックリスト

数分でドラフトしてくれました。

特に助かったのは、「この設計だと、こういう問題が起きる可能性がある」といったアンチパターンの指摘もしてくれる点。一人で開発していると見落としがちな視点を補ってくれます。

2. 実装フェーズ:コーディングの高速化

従来の課題

  • Goの標準ライブラリやKubernetesクライアントのAPIドキュメントを行ったり来たり
  • ボイラープレートコードを書くのが面倒
  • エッジケースの処理を忘れがち

AI coding toolでの体験

例えば、Prometheusからメトリクスを取得する部分。

「PrometheusのAPIからPod CPU使用率をP95で集計したい」

と伝えると、AIは:

  • Prometheus APIクライアントの初期化コード
  • 適切なPromQLクエリの生成
  • エラーハンドリング
  • レート制限への対応

まで含めた実装を提案。しかも、Goの慣習に従った命名エラーメッセージの書き方もちゃんとしているので、そのまま採用できることが多いです。

特に驚いたのは、コードレビューのような指摘もしてくれること。

// 私が書いた最初のコード
func getMetrics(url string) (*Result, error) {
    resp, _ := http.Get(url)  // エラー無視してた!
    // ...
}
「エラーハンドリングが不足しています。http.Getのエラーをチェックすべきです」

一人開発でもペアプログラミングしているような感覚でした。

3. テストフェーズ:品質担保の効率化

従来の課題

  • テストケースの網羅性が不安
  • モックの作成が面倒
  • エッジケースのテストを書き忘れる

AI coding toolでの体験

「この関数のテストを書いて」と依頼すると:

  • 正常系のテストケース
  • エラーケースのバリエーション
  • 境界値テスト
  • テーブル駆動テストの構造

を自動生成。

さらに、「このテストカバレッジは十分か?」と聞くと、抜けているテストケースを指摘してくれるので、品質を担保しやすくなりました。

特に重宝したのは、セキュリティテストの観点。

「このコードにセキュリティ上の問題はないか?」

と聞くと、API keyのログ出力リスク、コマンドインジェクションの可能性、TLS証明書検証の重要性など、見落としがちな点を指摘してくれました。

4. リリースフェーズ:継続的なメンテナンス

従来の課題

  • GitHub Actionsの設定が面倒
  • リリースノートを書くのに時間がかかる
  • ドキュメント整備が後回しになる

AI coding toolでの体験

CI/CDパイプラインの構築も、AIに任せました。

「Go 1.25.5でCI/CDを構築して、Linuxバイナリをリリースしたい」

すると:

  • GitHub Actionsのワークフロー
  • GoReleaserの設定
  • マルチプラットフォームビルド
  • 脆弱性スキャンの統合

を含む完全な設定を提案。

README、CONTRIBUTING.md、セキュリティポリシーなどのドキュメントも、テンプレートから一緒に作成できました。

AI駆動開発で感じた3つの価値

1. 「考える時間」が増えた

コードを書く時間が減った分、「何を作るか」「どう作るべきか」を考える時間が増えました。AIが実装の細部を担当してくれるので、アーキテクチャやユーザー体験といった本質的な部分に集中できます。

2. 学びながら開発できる

AIが生成したコードを読むことで、GoのベストプラクティスKubernetesの仕様を自然に学べました。「なぜこの実装なのか?」と質問すると、背景も教えてくれるので、理解が深まります。

3. 完成させるハードルが下がった

一番大きな変化は、「個人でも最後までやり切れる」という自信がついたこと。

以前は「個人開発だと途中で挫折しそう...」と思っていましたが、AIがサポートしてくれることで、設計→実装→テスト→リリースの全工程を完走できました。

これからOSS開発を始める人へ

もし、あなたが「OSSを作ってみたいけど、ハードルが高そう...」と感じているなら、AI coding toolを使ってみることを強くおすすめします

はじめの一歩

  1. 小さなアイデアから始める:「こんなツールがあったら便利だな」という小さな不満を解決するツールから
  2. AIに質問しながら進める:わからないことは遠慮せずAIに聞く
  3. 完璧を求めない:まずは動くものを作り、後から改善していく

kostの開発で使ったツール

  • AI coding tool: Claude Code (設計・実装・テスト・レビューの全般)
  • LLM統合: OpenAI API / Anthropic Claude API(kostの機能として)
  • CI/CD: GitHub Actions
  • テスト環境: minikube + Prometheus

まとめ:AIと一緒に楽しむ個人開発ライフ

AI coding toolは、個人開発者にとっての強力な相棒です。

  • 設計で迷ったら相談相手に
  • 実装で詰まったらペアプログラマーに
  • テストで不安ならレビュアーに
  • ドキュメントが面倒なら編集者に

AIがいることで、「一人でも全部できる」という感覚を味わえます。そして何より、開発そのものが楽しい

kostの開発を通じて、私は「個人でもOSSを作れる」という確信を得ました。みなさんも、ぜひAI coding toolと一緒に、素敵な個人開発ライフを楽しんでください。

あなたのアイデアが、誰かの課題を解決するOSSになる日を楽しみにしています!


参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?