ティーンエイジャーのサーバー物語
- Varunという10代の若者が、自分の部屋に2台のサーバーを置いている。
- 自分でコーディングしたさまざまなプロジェクトをサーバーでホスティングしており、それに対する情熱を持っている。
- 自身のホームラボの始まり、発展、そして未来について語る。
ホームサーバーの始まり
- 2020年のロックダウン期間中、13歳だったVarunはWeb開発に興味を持ち、HTMLの静的Webサイトを作り始めた。
- より複雑なアプリケーションを作るうちにバックエンドが必要になり、Replitを使ってWebアプリやスクリプトをホスティングした。
- さらに多くの制御性と信頼性を求めて、セルフホスティングの世界に飛び込んだ。
最初のサーバー
- eBayで購入したDell OptiPlexをサーバーとして使い始めた。
- アメリカからスイスへの配送中に問題が発生したが、最終的には解決した。
- サーバーOSとしてWindows 10 Proを使うことにした。
サーバーOSの移行
- Windows Updateによるダウンタイムや不便さを経験した後、2020年11月にUbuntu Serverへ移行した。
- Linuxに素早く適応し、nginx、MongoDB、複数のプロジェクトを運用した。
- Dockerを見つけ、サードパーティー製ソフトウェアのインストールと実行を簡素化した。
新しいサーバーの導入
- 既存サーバーの限界に達し、Dell PowerEdge R720XDを購入した。
- サーバーのサイズ、騒音、消費電力などの問題を一部解決した。
- Proxmoxを使って仮想マシンを運用し、Docker内ですべてを管理した。
Replit体験の復活
- Replitでの体験が恋しくなり、自分自身のReplitクローンを開発した。
Dock'n'RollというDockerベースのサービスを通じて、Webアプリをコーディングしリアルタイムでホスティングした。
- ExpressJSで構築されたコントロールパネル、Monaco Editor、Docker、Redis、OpenRestyなどを使ってプロジェクトを管理した。
結論
- Varunは大学進学と引っ越しを控えており、サーバーをどうするかはまだ不透明だ。
- セルフホスティングを通じて多くを学び、それによってプロジェクトを自由に運用できる力を得た。
GN⁺の意見
- Varunの物語は、技術への情熱と自己主導学習の重要性を示している。
- セルフホスティングを通じて実際のユーザーがいるプロジェクトを運用しながら得た経験は、ソフトウェアエンジニアリングへの深い理解をもたらす。
- この記事は、ティーンエイジャーたちに技術への好奇心を持って挑戦することを促し、失敗と成功を通じて学ぶ過程の価値を強調している。
1件のコメント
Hacker Newsのコメント
90年代にティーンエイジャーだった頃、最初のコンピュータを手に入れて、あらゆるコンピュータがサーバーになり得ると知って驚いた。高価なラックや特別なハードウェアは不要で、Winsock と TCP/IP さえあればよかった。ハードウェアよりも、Node ベースのアプリをインターネット上で公開することに注力してほしい。固定IPは必要なく、動的DNSの設定方法だけ知っていればよい。
iPad世代が育つにつれて、ファイルシステムすら知らない場合が増えている。デスクトップ後の世界が現実になりつつある。抽象化は便利だが、技術に関心を持つティーンエイジャーが減ってしまうのではないかと心配している。
16歳のときに『Teach Yourself C』の本とビデオカード、Sony Trinitron を買ったが、C言語の多次元配列とポインタに圧倒されて挫折し、ロックスターになろうと決めた。大学で Java の本を買って勉強を始めたことで、15年以上にわたる技術者としての歩みが始まった。ギターを弾くのも好きだが、技術者としてのほうが自分は上手くやれるとわかった。
16歳で小さなホームラボを持っている。クラウドサービスから離れ、1Gbpsのホームネットワークとともに廃棄されたハードウェアを入手して物理サーバーの管理を始めた。今は Proxmox を使って NAS や複数のサーバーを運用しており、Minecraft サーバー、個人プロジェクト、脆弱性スキャナ、Telegram ボット、友人向け VPS、Android および MacOS のビルド VM、ストレージ、ML プロジェクト、学校の CTF 大会向けインフラのホスティングなどをしている(イタリアでの話)。
高価なラックの代わりに Ikea のテーブルにサーバーを置いて使っているのを見て、Lack Rack を知っているか気になった。
高性能PCを自作し、BBSを運営していた経験が、ソフトウェア開発者になるうえで大いに役立った。近所の子どもにゲーミングPCを組んであげて、彼が技術に長けていくのを見守った。息子にはゲーミングノートPCを買い、娘にはデスクトップを組んであげて、技術を学べるようにしている。
サーバーは部屋ではなく地下室に置いていた。家庭用電話向けの PBX、ファイルサーバー、監視サーバーなどを運用し、PBX が毎朝数学の問題を出して起こしてくれた。技術や Linux に関するそうした経験を、つい忘れがちになる。
11歳で最初の「サーバー」を手に入れ、13歳で最初の仕事に就いたあと、eBay で「本物の」サーバーを買った。安いPCを買って実験する子どもたちが減ってしまうのではないかと心配している。
21歳のときに中古のラックマウントサーバーを見つけた。低賃金の仕事をしていたが、動画エンコードの実験のためにもっと強力なコンピュータが必要だった。Craigslist で安価なサーバーを見つけたことが、キャリアの方向性を決めるきっかけになった。
基本的なハードウェアやオペレーティングシステムの知識がますます失われつつあると感じる。PaaS の仕事をするときでさえ、こうした経験は非常に価値がある。