5秒で結論: キャパを超えるのはかなり自然である。Excelは主に「手元で表を扱う道具」だが、GitHubやCloudflareに入ると、突然「設計図管理」「自動組立」「サーバー」「データベース」「配信網」「障害復旧」まで別レイヤーが一気に登場する。知識不足というより、ゲーム開始直後に中ボスを飛ばして最終ダンジョンへ入っている。
1. Excelの次にGitHubが来ると思ったら、なぜか物流センターまで出てきた
表計算しか触ってこなかった人がWeb開発に入ると、最初の感想はだいたいこれである。
サイト作るだけじゃなかったの?
HTMLくらいならまだ分かる。
ところが少し進むと、
- Git
- GitHub
- repository
- branch
- commit
- build
- deploy
- Worker
- D1
- KV
- DNS
- CDN
- CI/CD
が一斉に出てくる。
RPGで最初の村を出たら、スライムではなく「分散システム概論」が立っている。
しかも本人は「Webページを出したかっただけ」である。
この混乱には理由がある。Excelは基本的に一つのアプリの中で作業が完結しやすい。一方、Webサービスは「作る」「保存する」「変換する」「動かす」「配る」「記録する」が別々の仕組みに分かれている。
2. 本当に起きているのは「難しい」のではなく「レイヤーを飛ばしている」
一般的な学習順は、必ずしも一つではない。
ただ、Web開発では概念上、
- ファイルを書く
- Gitで変更履歴を持つ
- GitHubで共有・保管する
- ビルドする
- サーバーへ配置する
- APIを動かす
- DBをつなぐ
- 自動化する
- 障害時の再実行を考える
のように層が増えていく。
ところが実際の個人開発では、AIやテンプレートのおかげで1〜3を十分に理解する前に、いきなり7〜9まで到達できる。
便利である。
同時に、脳には優しくない。
「GitHubって保存場所だよね?」と理解した翌日に「Workers Buildsのroot設定が」「D1 bindingが」「KVはeventual consistencyで」と言われる。
昨日まで冷蔵庫を使っていた人に、今日は食品工場のHACCPと物流WMSを説明しているようなものである。
3. GitHubは何者か――基本は「設計図倉庫+履歴書」
GitHubの中心は、ソースコードや文章などをGitリポジトリとして管理することだ。
たとえばWebサイトなら、
- 記事
- HTML
- CSS
- JavaScript
- 設定ファイル
- テスト
- スクリプト
などが置かれる。
そして「誰が、いつ、何を変えたか」をcommitとして残せる。
だから一番雑に言えば、
GitHub = 設計図倉庫+変更履歴
である。
もちろんGitHub Pagesなら静的サイトを公開できるし、GitHub Actionsならビルド・テスト・デプロイも自動化できる。
ここがややこしい。
GitHubは「倉庫だけ」ではない。
倉庫に小型工場まで付いている。
ただし、それでもGitHubの本業は「コードと変更の管理」の側にある。
4. Cloudflareは何者か――急に工場・店・配送・警備まで全部やり出す
Cloudflare側へ行くと役割が一気に増える。
ざっくり、
- Webサイトを配る
- Workerでサーバー処理を動かす
- Buildする
- Deployする
- D1でSQLデータを持つ
- KVで高速なキー値データを持つ
- CDNで世界中へ配る
- DNSでドメインを案内する
- セキュリティ機能を置く
- Workflowsで複数工程を持続実行する
ということができる。
もう「サーバー会社」と呼ぶだけでは足りない。
工場+店舗+倉庫+配送センター+警備室
である。
しかも同じ敷地にDBまである。
そのため、GitHubとCloudflareを初めて並べて見ると「どっちもサイトを出せるし、自動化もできるし、何が違うんだ」となる。
正しい。
少しかぶっている。
でも中心業務が違う。
5. Buildとは何か――設計図を完成品にする工程
Buildは、初心者にとって特に意味不明な単語である。
日本語にすると「組み立て」が近い。
GitHubに置いてあるのは、そのままでは完成サイトではないことが多い。
たとえばAstroなどのフレームワークでは、
記事、部品、設定、プログラム
を材料として、
HTML、CSS、JavaScriptなどの配信用ファイル
へ変換する。
これがBuild。
Cloudflare Workers Buildsでは、GitHubなどのGitリポジトリに変更がpushされると、設定されたBuild commandを実行し、その後Deploy commandでCloudflareへ配置できる。
つまり、
GitHub = プラモデルの箱
Build = 組み立て
Deploy = 完成品を店頭に置く
である。
Buildログが長いのは、工場の製造記録を全部見せられているからだ。
「依存関係を入れた」「テストした」「この工程で失敗した」まで出る。
サイトを見たいだけなのに、製造ラインのPLCログを渡される。
6. D1とKV――どっちもデータなのに、なぜ二つある
D1はCloudflareのサーバーレスSQLデータベースで、SQLite系のSQLセマンティクスを使う。
イメージは正式な台帳。
| ID | user | plan | count |
|---|---|---|---|
| 1 | A | free | 3 |
| 2 | B | pro | 57 |
のように、行と列を持ち、条件検索や関係を扱える。
一方、KVはKey-Value。
- site_mode → normal
- feature_x → true
- user_123_theme → dark
のような、巨大な辞書に近い。
一個のキーから値を高速に読むのが得意で、世界中へキャッシュされる。
ただしKVはeventual consistency、つまり更新が全拠点へ即時に完全同期するとは限らない。Cloudflareの説明では、別の場所では古い値が最大60秒以上見えることもある。
したがって、
D1 = 正式な台帳
KV = よく見る付箋・辞書
と考えると分かりやすい。
「全部データだから一個にしてくれ」と思うが、世界はそんなに親切ではない。
7. GitHubとCloudflare、どっちが自走するのか
これも役割で違う。
GitHub Actionsは、イベントに応じてビルド、テスト、デプロイなどのジョブを実行できる。
つまり、
「pushされたら検査して公開」
のような自動化に強い。
Cloudflareはさらに、Workersで24時間APIとして動作し、Workflowsでは複数ステップの状態を保存しながら、失敗時の自動retry、待機、再開まで扱える。
だから比喩でいうと、
GitHub = 設計・修理・変更管理に強いエンジニア
Cloudflare = 決めた工程を止まらず回す自動工場
に近い。
コードの問題を発見して直す文脈ではGitHub側が自然。
「この処理を最後まで運べ」「途中失敗したら再試行しろ」ではCloudflare側が自然。
どちらが上ではなく、職種が違う。
8. みんなこれはいつ学ぶのか――全員が学校で習っているわけではない
ここは安心してよい。
GitHubは情報系の授業、研究室、ソフトウェア開発の仕事などで触る人が多い。
一方Cloudflare、AWS、GCP、DB、CI/CDのような領域は、Webサービスを公開・運用する必要が出た段階で初めて触る人も多い。
非エンジニアなら、一生Cloudflare Workersを触らなくても普通に生活できる。
経済・営業・人事・会計などの仕事で、Excelが主役のまま何年も進むことも珍しくない。
つまり、
「みんな知っているのに自分だけ知らなかった」ではない。
そもそも別の専門職の道具箱を開けている。
経済学の講義で「限界効用」をやっていた人が、数年後に「KVの整合性モデル」で殴られている。
カリキュラムにない。
9. 結論――全部覚える必要はない。「誰の仕事か」が分かればかなり勝ち
最初に覚えるべきなのは細かいコマンドではない。
この地図で十分である。
| 名前 | 一言 |
|---|---|
| GitHub | 設計図と履歴 |
| Build | 設計図から完成品を作る |
| Deploy | 完成品を本番へ置く |
| Cloudflare Workers | サーバー処理 |
| D1 | SQLの正式台帳 |
| KV | 高速な辞書・設定置き場 |
| GitHub Actions | GitHub側の自動作業 |
| Cloudflare Workflows | 状態を持つ長い自動工程 |
これだけ分かれば、エラーが出たときに、
「これはGitHubの問題か?」
「Buildの問題か?」
「Workerの問題か?」
「DBの問題か?」
を分けられる。
それだけで世界はだいぶ静かになる。
キャパを超えた原因は、理解力が足りないからではない。
Excelという一部屋の道具から、いきなりWebサービスというショッピングモールの設備管理室へ入ったからである。
照明だけ直したかった。
なぜか今、変電設備と防火シャッターの説明を受けている。
参考資料
- GitHub Docs, What is GitHub Pages? https://docs.github.com/en/pages/getting-started-with-github-pages/what-is-github-pages
- GitHub Docs, Understanding GitHub Actions https://docs.github.com/en/actions/get-started/understand-github-actions
- Cloudflare Docs, Workers Builds https://developers.cloudflare.com/workers/ci-cd/builds/
- Cloudflare Docs, Workers Builds Configuration https://developers.cloudflare.com/workers/ci-cd/builds/configuration/
- Cloudflare Docs, D1 https://developers.cloudflare.com/d1/
- Cloudflare Docs, How KV works https://developers.cloudflare.com/kv/concepts/how-kv-works/
- Cloudflare Docs, Workflows https://developers.cloudflare.com/workflows/
