Methos アーキテクチャ #2 (Docker on Mesos)

こんにちは。@jedipunkz です。 Mesos アーキテクチャについて2つめの記事です。 http://jedipunkz.github.io/blog/2013/09/28/mesos-architecture-number-1/ 上記の前回の記事で Mesos 自体のアーキテクチャについて触れましたが、今回は Mesos + Marathon + Docker の構成について理解したことを書いていこうと思います。 mesos クラスタは 幾つかの mesos masters と沢山の mesos slaves から成っており、 mesos slaves の上では docker を操作する executor が稼働している。marathon は mesos master の上で稼働する mesos framework である。init や upstart の様な存在 であることが言え、REST API を持ち container の動作を制御する。marathon には ruby の client 等も存在する。下記がそれ。 https://github.com/mesosphere/marathon_client 構成 +-----------------+ | docker registry | index.docker.io (もしくは local registry) +-----------------+ | +----------------+ | | +--------------+ +--------------+ | mesos master | | mesos master | +--------------+ +--------------+ | | |----------------+-----------------------------------| +--------------+ +--------------+ +--------------+ | mesos slave | | mesos slave | ... | mesos slave | +--------------+ +--------------+ +--------------+ | | | +--------------+ +--------------+ +--------------+ | mesos slave | | mesos slave | ... | mesos slave | +--------------+ +--------------+ +--------------+ . . . . . . . . . +--------------+ +--------------+ +--------------+ | mesos slave | | mesos slave | ... | mesos slave | +--------------+ +--------------+ +--------------+ オファから docker が稼働するまでの流れ 上記の構成の図を見ながら理解していきましょう。 ...

DevOps Day Tokyo 2013 参加レポート

こんにちは。@jedipunkz です。 DevOps Day Tokyo 2013 に参加してきました。たくさんの刺激を受けたのでレポート書 いておきます。 開催日 : 2013年09月28日 場所 : 東京六本木ミッドタウン Yahoo! Japan さま URL : http://www.devopsdays.org/events/2013-tokyo/ Making Operation Visible Nick Galbreath (@ngalbreath) さん DevOps の拠点 Etsy に努めた経緯のある DevOps リーダ Galbreath さん。DevOps の 概略から何が必要でありどう行動に起こせばよいか説明してくださいました。 Making operations visible - devopsdays tokyo 2013 from Nick Galbreath こちら、Galbreath さんの当日の資料。 DevOps が実行出来ない理由 Tool が足りない 社風の影響 見えないモノが価値がないと事業から考えられている 出来る事は、価値があるモノの社内への説明と、Tool を使った可視化。データの可視 化が重要。Ops の人は結構「データをどこそこの部署に見せても理解してもらえない」 だとか「データを閲覧させると万が一の時にシステムが破損する」等と考えがち。が、 ビジネス寄りの人にとって重要なグラフが含まれていたり、アカウント担当の人に役立 つものも含まれている。ましてシステムが破損することなど決して無い。 ...

Mesos アーキテクチャ #1

こんにちは。@jedipunkz です。 今回はクラスタマネージャである Mesos について書こうと思います。 Mesos は Apache Software Foundation によって管理されるソフトウェアで分散アプリ ケーションをクラスタ化することが出来るマネージャです。Twitter が採用しているこ とで有名だそうで、開発にも積極的に参加しているそうです。 http://mesos.apache.org/ @riywo さんが既に Mesos + Marathon + Zookeper + Docker な構成を組む手順をブロ グで紹介されていますので是非試してみると面白いと思います。 http://tech.riywo.com/blog/2013/09/27/mesos-introduction-1/ 私は理解した Mesos のアーキテクチャについて少し書いていきたいと思います。 全体の構造 +-----------+ | zookeeper | | quorum | +-----------+ | +----------------+----------------+ | | | +--------------+ +--------------+ +--------------+ | mesos-master | | mesos-master | | mesos-master | | active | | hot standby | | hot standby | +--------------+ +--------------+ +--------------+ ... | +----------------+----------------+ | | | +--------------+ +--------------+ +--------------+ | mesos-slave | | mesos-slave | | mesos-slave | | executor | | executor | | executor | | +----++----+ | | +----++----+ | | +----++----+ | | |task||task| | | |task||task| | | |task||task| | | +----++----+ | | +----++----+ | | +----++----+ | +--------------+ +--------------+ +--------------+ ... 基本的に few masters + many slaves の構成です。task は slaves の上で走ります。 master はオファーによりアプリケーション(フレームワーク)に対して CPU, メモリの リソースをシェア出来ます。リソースは slave ID, resource1: amount1, resource2, amount2, … といった配列を含みます。master はポリシに従いそれぞれ のフレームワークに対してリソースをどれだけ提供するか決定します。プラグイン形式 で様々なポリシを取り込む仕組みになっています。 ...

Chef で kibana + elasticsearch + fluentd デプロイしてみた

こんにちは。@jedipunkz です。 前回 kibana + elasticsearch + fluentd を構築する方法を載せたのだけど手動で構築 したので格好悪いなぁと思っていました。いうことで! Chef でデプロイする方法を調 べてみました。 意外と簡単に出来たし、スッキリした形でデプロイ出来たのでオススメです。 前提の環境は… Ubuntu 12.04 LTS precise Chef サーバ構成 入力するログは nginx (例) オールインワン構成 Cookbook が他の OS に対応しているか確認していないので Ubuntu を前提にしていま す。Chef サーバのデプロイや knife の設定は済んでいるものとして説明していきます。 例で nginx のログを入力します。なので nginx も Chef でデプロイします。ここは他 のものに置き換えてもらっても大丈夫です。手順を省略化するためオールインワン構成 で説明します。nginx, fluentd は複数のノードに配置することも手順を読み替えれば もちろん可能です。 Cookbook の準備 お決まり。Cookbooks の取得に Berkshelf を用いる。 % cd chef-repo % gem install berkshelf % ${EDITOR} Berksfile cookbook 'elasticsearch', git: 'https://github.com/elasticsearch/cookbook-elasticsearch.git' cookbook 'td-agent', git: 'https://github.com/treasure-data/chef-td-agent.git' cookbook 'kibana', git: 'https://github.com/realityforge/chef-kibana.git' cookbook 'nginx', git: 'https://github.com/opscode-cookbooks/nginx.git' Cookbooks を取得します。 ...

第14回 OpenStack 勉強会参加ログ

こんにちは。@jedipunkz です。 OpenStack 第14回勉強会 ハッカソンに参加してきました。その時の自分の作業ログを 記しておきます。自分の作業内容は ‘OpenStack + Docker 構築’ です。 場所 : CreationLine さま 日時 : 2013年9月8日(土) 当日の atnd。 http://atnd.org/events/42891 当日発表のあった内容 Ansible で OpenStack を実際に皆の前でデプロイ! Yoshiyama さん開発 LogCas お披露目 Havana の機能改善・機能追加内容確認 その他 Horizon の機能についてだったり openstack.jp の運用についてなど 自分が話を聞きながら黙々とやったことは OpenStack + Docker 構築 結果… NG 動かず。時間切れ。公式の wiki の手順がだいぶ変なので手順を修正しながら進めました。 公式の wiki はこちらにあります。 https://wiki.openstack.org/wiki/Docker その修正しながらメモった手順を下記に貼り付けておきます。 作業環境 ホスト : Ubuntu 12.04.3 Precise OpenStack バージョン : devstack (2013/09/08 master ブランチ) 構成 : オールインワン (with heat, ceilometer, neutron) 普通に動かすとエラーが出力される これは devstack (2013/09/08 時点) での不具合なので直ちに修正されるかも。 ...

Kibana3 + elasticsearch + fluentd を試した

こんにちは。@jedipunkz です。 {% img /pix/kibana3.png %} 前回の記事で Kibana + elasticsearch + fluentd を試しましたが、ツイッターで @nora96o さんに “Kibana3 使うと、幸せになれますよ!” と教えてもらいました。早 速試してみましたので、メモしておきます。 前回の記事。 http://jedipunkz.github.io/blog/2013/09/07/kibana-plus-elasticsearch-plus-fluentd/ 前半の手順は前回と同様ですが、念のため書いておきます。 前提の環境 OS : Ubuntu 12.04 Precise (同じ方法で 13.04 Raring でも出来ました) 必要なパッケージのインストール 下記のパッケージを事前にインストールします。 % sudo apt-get install git-core build-essential ruby1.9.3 openjdk-7-jdk 手順を省くために Ruby はパッケージで入れました。また Java は他の物を利用しても 構いません。Ruby は fluentd が、Java は elasticsearch が必要とします。 elasticsearch のインストール 下記のサイトより elasticsearch をダウンロードします。 http://www.elasticsearch.org/download/ 現時点 (2013/09/08) で最新のバージョンは 0.90.3 でした。 % wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.3.deb % sudo dpkg -i elasticsearch-0.90.3.deb % sudo service elasticsearch start fluentd のインストール fluentd を下記の通りインストールします。 ...

Kibana + ElasticSearch + fluentd を試してみた

こんにちは。@jedipunkz です。 自動化の流れを検討する中でログ解析も忘れてはいけないということで ElasticSearch を使いたいなぁとぼんやり考えていて Logstash とか Kibana とかいうキーワードも目 に止まるようになってきました。 ElasticSaerch は API で情報を検索出来たりするので自動化にもってこい。バックエ ンドに Logstash を使って… と思ってたのですが最近よく聞くようになった fluentd をそろそろ真面目に使いたい!ということで、今回は Kibana + ElasticSearch + fluentd の組み合わせでログ解析システムを組む方法をメモしておきます。 参考にさせて頂いた URL http://memocra.blogspot.jp/2013/04/kibanakibanaelasticsearchfluentd.html 前提の環境 OS : Ubuntu 12.04 Precise (同じ方法で 13.04 Raring でも出来ました) 必要なパッケージインストール 下記のパッケージを事前にインストールします。 % sudo apt-get install git-core build-essential ruby1.9.3 openjdk-7-jdk 手順を省くために Ruby はパッケージで入れました。また Java は他の物を利用しても 構いません。Ruby は Kibana, fluentd が、Java は ElasticSearch が必要とします。 ElasticSearch のインストール 下記のサイトより ElasticSearch をダウンロードします。 http://www.elasticsearch.org/download/ 現時点 (2013/09/07) で最新のバージョンは 0.90.3 でした。 ...

Hurricane Electric + Vyatta で宅内 IPv6 化

こんにちは。@jedipunkz です。 自宅の IPv6 化、したいなぁとぼんやり考えていたのですが、Hurricane Electric Internet Services を見つけました。IPv4 の固定グローバル IP を持っていれば誰で も IPv6 のトンネルサービスを無料で受けられるサービスです。 1つのユーザで5アカウントまで取得でき (5 エンドポイント)、1アカウントで /64 の アドレスがもらえます。また申請さえすれば (クリックするだけ) /48 も1アカウント 毎にもらえます。つまり /48 x 5 + /64 x 5 … でか! 私の宅内は Vyatta で PPPOE してるのですが、各種 OS (Debian, NetBSD…) や機器 (Cisco, JunOS..)のコンフィギュレーションを自動生成してくれるので、接続するだけ であればそれをターミナルに貼り付けるだけ!です。 サービス URL Hurricane Electric は下記の URL です。アカウントもここで作成出来ます。 http://tunnelbroker.net IPv6 接続性を確保する方法 Vyatta が IPv6 のアドレスを持ち接続性を確保するだけであれば、上に記したように コピペで出来ます。上記の URL でアカウントを作成しログインします。左メニューの “Create Regular Tunnel” を押して、自分の情報 (IPv4 のエンドポイントアドレス等) を入力します。その後、取得した IPv6 のレンジのリンクをクリックし上記メニュー “Example Configuration” を選択します。プルダウンメニューが現れるので、自宅の OS や機器に合った名前を選択します。 ...