Roo Clineで「一行プロンプト+@」しただけで、約15分でKubernetes上で動くテトリスゲームが無からできました
Roo Cline × Azure OpenAIで「一行の指示」から完成まで
皆様こんにちは。
アクセンチュア株式会社の佐藤です。世の中に佐藤は多いので、気軽にさゆって呼んでください
自分はKubernetesとAzureが得意というか、もう色んな感情を通り越して"好き"の領域にまで至っているわけなのですが、年末にGoogle Cloud Codeから「KubernetesをCode Assistがサポートするようになった!」みたいなニュースがありました。
確かにkubernetesの構成ファイルであるyamlは生成できるが、単体ずつであり、めっちゃKubernetes側でエラー出る、といった具合でした。(佐藤がうまく使えてないだけかも)
結局、インフラ側のバグが多く、Kubernetesに詳しくないと原因に対処できないんですよね。
何も知らない人がアーキを1から作れちゃう、エラーが出ても勝手に解決してくれる。
そんな生成AIサービスないかな、と思った矢先です
最近、VSCode拡張機能のRoo Clineがすごいと、社内の方々から聞いて試してみたのところ
あまりのバケモン具合に,年明け早々心胆を寒からしめました。
社内のすごい方が書いたよりClineの詳しい記事はこちら
私は「ローカルのminikubeで動作するテトリスのゲームを作成したいです」、と一行プロンプトを入力しただけで、何のファイルもない何もない状態から「minikube上で動作するテトリス」ゲームをデプロイまでできてしまいました。
↓プレイ画面 ちゃんと動くし、行が揃ったら消える。
前提
利用API:Azure Open AI(GPT-4o)
最初はDeepSeek使っていましたが、レスポンスが遅く変更しました。
Auto Approve:有効→要は勝手にAIがコマンドやファイル生成を承認無しで自動化するモードです、勝手にどんどん動くので、お金も勝手に課金されていきます。基本的に非推奨です
ローカルで起動したもの:Docker Desktop,VS Code, Minikube
はじめに:ほんとうに一行でスタート!
本当にコードを1行も書いていません。
「ローカルのminikubeで動作するテトリスのゲームを作成したいです」
とRooClineのコンソールに打ち込んだだけ。
勝手にコマンドプロンプトを入力し、結果を取得、その結果をもとに次の工程を推測そのループを行い以下のことをほぼ自動でやってくれました
コード生成
↓
minikube起動
↓
Dockerビルド
↓
minikubeにデプロイ
↓
PodがRunningになるか確認
↓
Runningになっていなかったらデバッグして調査(これ10回くらいトライ&エラーしてた)
↓
RunningになっていたらOK
↓(ここで追加プロンプト「ゲーム画面に操作説明ボタンを追加してほしい」)
コード修正
↓
Dockerビルド
↓
minikubeに再デプロイ
↓
PodがRunningになるか確認
↓
RunningになっていたらOK
↓実際のVS Code画面
勝手にディレクトリが作られhtmlが生成されcssが生成されていく
あれよあれよという間に、以下のようなファイル達が生成された。
※今回特に何もフォルダ構造などプロンプトしていないので、同じ階層に生成された。
deployment.yaml →KuberneteのPod(コンテナーをホストする単位)を定義するyaml
service.yaml →Kuberneteのロードバランサー(的なもの)を定義するyaml
Dockerfile
index.html
script.js
style.css
特筆すべきは、deployment.yaml service.yaml ですね
アプリケーションのソースコードなどの生成は割といろんなLLMサービスが行えられると思うのですが、
kubernetsアーキをAIが考えて、それを最終的にエラーなく構築したのは感動です。
(Kubernetes構成としては最低限ですけどね、プロンプトでカスタマイズはできそう)
apiVersion: apps/v1
kind: Deployment
metadata:
name: tetris-deployment
labels:
app: tetris
spec:
replicas: 1
selector:
matchLabels:
app: tetris
template:
metadata:
labels:
app: tetris
spec:
containers:
- name: tetris
image: minikube/tetris:latest
imagePullPolicy: Never
ports:
- containerPort: 80
apiVersion: v1
kind: Service
metadata:
name: tetris-service
spec:
selector:
app: tetris
ports:
- protocol: TCP
port: 80
targetPort: 80
type: NodePort
ざっとこんな構成になります。
なぜKubernetes上で動かしたのか
今回はKubernetesの上でアプリを動かすために、minikubeを使いましたけども、
「なんでKubernetesなんですか?」って思った方が結構いるんじゃないかと。
それは単純に私がkubernetesのことが好きだからというのもありますが、
一番の理由は構成、エラーデバッグなど複雑で難しいからです。
冒頭でも記載した通り、Gooogle Cloud Codeで同じことをやろうとしたんですが、、なかなかうまく扱いきれず。。。
そこでこっちで試してみたかった、という経緯です。
テトリスゲームを動かすうえで必要なマニフェストやDockerfileなど、コンテナ化やデプロイのための複雑なファイル構成が要求されます。
しかしRooClineはコマンドラインの履歴やVSCodeのディレクトリ構造を自動で読み取り適切にKubernetesリソースをセットアップしてくれました。
Kubernetesは結構,デプロイはエラーなくできたけど、なんかコンテナーリポジトリとPod間の連携がうまくいかず、ImagePullでエラーになっていて実はPodが立ち上がってなかった!! みたいな、水面下のエラーがめっちゃあります。
冒頭のフローにも記載してますが、
「PodがRunningになるかまで確認」→「Runningになっていなかったらデバッグして調査」
といったことを行い、Podのエラーにも今回対応できたの驚きました。
当然そこ以外のコマンドプロンプトなどで途中でエラーが発生しても、エラー文を読み取り自分でデバッグしてくれます。
↓コマンドラインでエラーが出ていますが、そのエラーをキャッチしてデバッグします。
ぶっちゃけエラーが発生すればその都度その都度LLMにコピペして投げればいい話なんですけど、、
すべて自動でやってくれるのは、スピード感とか、お手軽さはありますね。
これまで手作業で書いていたYAMLファイルやDockerビルドの苦労は何だったのか。。。
改修もプロンプトだけでOK
最初期の段階では、ゲーム画面に操作説明やスタートボタンといったUI要素が無く
(これは完全に最初のプロンプトが悪いんですが、、)
「ゲーム画面に操作説明ボタンを追加してほしい」といった具合にプロンプトで追加指示すれば、現状のディレクトリを読み込んで、改修個所を推測してコードを修正し、再ビルド→デプロイまでやってくれました、セルフCI/CDです。
「一行プロンプト+@」 とタイトルに書いたのはそのためです。
15分ほどでできちゃった
作業開始から終了まで録画してましたが、作業にかかった合計時間は約15分でした。
Dockerのビルドやkubectlコマンドの実行、デバッグ結果のフィードバックなど、すべてRooClineがVSCode上の「対話」で吸収し、Azure OpenAIと連携して自動的にこなしてくれます。
まとめ:将来的には「やりたいこと」を伝えるだけになるかも?
- 一行の指示 だけで環境構築からある程度のテトリス完成まで進む自動化性能
- Kubernetesを扱う複雑な構成でも、アーキ検討からファイル生成やデバッグがすべて自動
- プロンプトで要望を伝えるだけでUIの改善や機能追加をサクサク反映
- わずか15分で動くものが完成する圧倒的スピード
すごいってより、、自動実行モードにしていると
自分の理解を超えてAIが先行して進むシーンがあり、色んな意味で怖いです。
実業務においてはまだまだ導入の壁はあると思いますが、AI開発補助とかPoC的な環境なら猛威を奮えられそうですね、だって環境構築あたりも自動でできちゃうので、、
VS Codeのコマンドラインでできちゃうことは何でもできますってそんな感じです、
理論上AzureだのAWSだのクラウド環境に、VS CodeのCLI上から指示を出すこともできるってわけですよね
利用料金が怖いけど、気が向いたら自分のAzureでアーキとか作れるのかやってみようかな
うまく使わないと完璧にブラックボックス化してしまうので、今後こういったテクノロジーとどのように向き合っていくのかが考えさせられますね。
ブラックボックス化してもAIが100%管理するようになれば問題ないか。。
以上、「一行の指示」でminikube上にテトリスを作ってしまったRoo Cline体験のご紹介でした。
Discussion