Dockerこの牛尾さんの記事からまだ1年半くらいしか経ってないのに、もうほんとに色々と変化の流れが速すぎて、僕はもう少し枯れたところでどんぐり拾いみたいなのするのが好きなのに、どうしてこうなった感。qiita.com僕のこの記事自体ももう来年には古くなってるんだろうな。あ、なので、2016年10月現在の情報ですので注意してくださいー。Microservicesの素振り環境Microservicesって仕事でいきなり「やってみたい!」って言って導入できるようなもんじゃないなって思って。技術力も運用力も組織力も、色んなもののレベルが高くないとひどく失敗してしまいそうだなって。いっても、結構色んな問題を解決してくれる一面もありそうだから、まずはどんなものなのか、技術的に少し体験しておきたい。Service牛尾サンの記事みたいにVagrantを複数upしようとすると、逆に僕の貧弱なMBAが瞬殺されてしまうので、どこかで動かしたい。Serviceというものを見つけたのでそれを使ってみることにした。触ったことのない状況で、Azureのポータルを開いて、全然分かんなくて、そっと閉じたあの日からもう2ヶ月。最近ほんのちょっとだけ慣れてきた。Swarmバージョンがあって、なんとなくDC/OSを選んだ。DC/OSの今の僕の認識はこんな感じ。複数のマシンを1つのリソースのようにして捉えることができて、その上でコンテナを動かすことができる感じ。詳しく見るとこうなってる。512MB使うタスクを実行させてほしいんだけど!」って言えて。Mesosがどっかでそのタスクを実行してくれる。そのMesosの上にDC/OSがかぶさってる。DC/OSはMesosを便利に使えるように色々気の利くことをしてくれてるみたい。Mesosを直接使ったことがないから、どれがDC/OSの機能なのかよく分かってない。そのDC/OS上で「サービス」というものをワンクリックで起動できる。Marathonもそのサービスの1つで、最初から動いてる。他にも、Chronosとか、Kafkaとかもあるんだけど、動かしたことない。そうそう、Mesos自体はタスクを実行する機能を持ってるんだけど、Webアプリみたいに長く動き続けたり複数インスタンスをコントロールしたりするのにはちょっと不便なので、Marathonというフレームワークが使われる。Marathonはコンテナベースでアプリケーションを実行できて、Docker以外にもたぶん実行できるみたいなんだけど、やってないから知らない。知らないことばかりだけど、簡単な図にするとこんな感じ。んーやっぱ違うかな(おいMesosにはMasterとAgentがあって、Masterが色々とコントロールしてる。Agentは各サーバーに入れて、使えるCPUやメモリなどの情報をMasterに伝える。Master、DC/OS、Marathonが入ってる感じする。Serviceで提供されているDC/OSはこんな感じになってる。public用のVM群(スケールセットというみたい)とprivate用のスケールセットに分かれてる。インターネットからは、public用のスケールセットに対して、デフォルトで80,443,8080のポートでアクセスができる。管理者はSSHトンネルを使ってMasterノードにアクセスする。環境構築てことで、環境構築をしてみよう。