🤖

Cloud Code + Skaffold:ローカルで爆速開発ループを回してみた

に公開

はじめに

GKE や Cloud Run 上にアプリを素早くデプロイ&検証したい。
Cloud Native な開発に興味あるけど、環境構築が面倒など課題になるケースもあります。

そんな方にオススメなのが「Cloud Code + Skaffold」です!

本記事では、ローカルでの開発コード変更を即反映できる開発ループを、
Cloud Code(VS Code 拡張)と Skaffold を組み合わせて実現する方法を紹介します。

Skaffoldとは

Skaffold は Google が開発している OSS で、Kubernetes 向けの開発サイクルを効率化します。

主な機能は以下の通り:

  • ソースコードの変更を検知
  • 自動でビルド、Dockerイメージ作成、デプロイ
  • ローカル/リモートどちらでもOK

Cloud Codeとは

Cloud Code は VS Code や IntelliJ 用の Google 提供の拡張機能です。

以下のことが簡単にできます:

  • GKE クラスタや Cloud Run へのデプロイ
  • Skaffold 設定の GUI 補助
  • Kubernetes リソースの管理やログ確認

開発環境の準備

必要なツール

  • Docker
  • kubectl
  • Skaffold
  • VS Code
  • Cloud Code 拡張機能

プロジェクト作成とSkaffold導入

app/
├── main.go
├── Dockerfile
├── k8s/
│ └── deployment.yaml
├── skaffold.yaml

main.go
package main

import (
    "fmt"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello from Cloud Code + Skaffold!")
}

func main() {
    http.HandleFunc("/", handler)
    fmt.Println("Server listening on port 8080")
    http.ListenAndServe(":8080", nil)
}
dockerfile
FROM golang:1.20-alpine
WORKDIR /app
COPY . .
RUN go build -o app .
CMD ["./app"]
k8s/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: my-app
          image: my-app
          ports:
            - containerPort: 8080
skaffold.yaml
apiVersion: skaffold/v4beta6
kind: Config
metadata:
  name: my-app
build:
  artifacts:
    - image: my-app
      context: .
      docker:
        dockerfile: Dockerfile
deploy:
  kubectl:
    manifests:
      - k8s/deployment.yaml
portForward:
  - resourceType: deployment
    resourceName: my-app
    port: 8080
    localPort: 8080

Skaffoldで開発ループを回してみる

bash
skaffold dev

これで:

  • ソースコードを変更
  • 自動でビルド
  • Kubernetes に再デプロイ
  • ポートフォワーディングで localhost:8080 にアクセス可能

確認

bash
curl http://localhost:8080
#=> Hello from Cloud Code + Skaffold!

おわりに

Cloud Code + Skaffold を使えば、コード変更 → 自動デプロイ → 確認の流れが圧倒的に速くなります。
特に、Kubernetes 初学者でも GUI 操作 + Skaffold による自動化で、
クラウドネイティブ開発の世界にスムーズに入れるのが魅力です。
ぜひ使ってみてください

Discussion