カラクリサイクル

『輝かしい青春』なんて無かった人の雑記

サーバの環境構築のテストはCoreOSのVMを使うといい感じだと思う

概要: と思う理由を簡素に書く


1. CoreOSとDockerに関する簡単な説明

1.1 Dockerとは?

Dockerとは:

  1. Docker社(元dotCloud社)が開発しているオープンソースの軽量Linuxコンテナ管理ソフトウェア
  2. 技術的にはLXCとaufsを組み合わせて、Go言語で実装してる
  3. VMと違い、Linuxの軽量コンテナを使うので、イメージの作成と破棄が超簡単
  4. つまり、使い捨て(CI ServerとかDevOpsのテストとか)にはもってこいの環境
  5. あと最近徐々にDockerエコシステムみたいなのが出来てきてて、Dockerを使うPaaSとかが出始めてるもよう

1.2 CoreOSとは?

CoreOSとは:

  1. 分散サーバ環境の構築を目的として開発されているLinux
  2. 中身としてはLinux kernel + systemd + docker + dockerを使うためのutilitiesみたいな感じ。ちなみにGentooベース
  3. 基本的にCoreOSはシステムはRead-only。ソフトウェア追加できない。あとアップデートが自動。
  4. それとAlphaな間はChaos Monkeyによってたまに自動再起動したりする
  5. あと色々と分散環境で使いやすいようにソフトウェアが追加されてるものの、開発中なのですべてがそろっている訳ではない

2. 何故サーバ環境構築のテストをCoreOS(Docker)を使うと良いと思うか

  1. CoreOSのシステムはパッケージ追加とか出来ないので、システムを汚す心配がない
  2. また、開発環境はDockerに押し込めるので、いじり倒しておかしくなっても、リセットするのが簡単
  3. またDockerfileを使えば、コンテナのBootstrapが容易にでき、いつでも前と同じ環境を容易できる
  4. あとVMと違ってコンテナなので、起動とかちょっぱや。
  5. ちなみにCoreOS VMの起動 / 終了もちょっぱや。一瞬でVMが起動する

3. CoreOSを使う上で考慮すべき点

  1. まだ開発途上。不具合が有っても泣かない
  2. Chaos Monkeyがたまに暴れる。そして再起動
  3. CoreOSを基盤とした大規模分散環境構築インフラ実装とかはまだ無い
  4. 本番環境で使うとか行ったら勇者扱いされる
  5. 日本語のドキュメントなんて無い。あとEnglishなBlog Entryとかもあんまりない

4. CoreOSとDockerを使った開発の流れとTips

4.1 大体の流れ

  1. CoreOSのVMを立ち上げる
  2. ローカルの開発環境でDockerfileと関連ファイルを用意する
  3. rsync使ってCoreOSのVMに開発ファイルを流し込む
  4. CoreOSVMにログインして$ docker build .
  5. 上手に焼けました〜♪

4.2 開発中のTips

  1. デーモンを動かすときはフォアグランド動作させるべし
  2. そうじゃないとDockerのコンテナが終了する
  3. 動作テストとかするときは、Bashを実行してコンテナにログインしてから手動でデーモン起動とかするとデバッグが楽
  4. あとDockerのコンテナはLinux コマンド感覚で使えたりする
  5. 基本的に、CoreOS VMにファイル流し込むときは、rsync使った方が柔軟にファイルを流し込める。scpはびみょい
  6. ちなみにCoreOSのLive ISOとか作りたい方は、こちらの記事をどうぞ
  7. CoreOSのLive ISO作るbash scriptを書きました

5. というわけで以上

もうそろそろ寝る時間なのですが、 なんとなく書きたかったので書いてみました。

僕は、個人的にはCoreOSは推しです。 なんというか、未来のサーバはこういう感じになってるんだろうなー、 というのを感じる。

まあそういう事で。僕は寝ます。おやすみ〜。