tagomorisのメモ置き場 RSSフィード

2014-04-24

GCP ja night 27 いってきた&しゃべってきた #gcpja

ひさびさに自分がしゃべれる面白技術ネタがあるかな、と思えるいい機会だったので、いってきた。

gcp ja night #27 - connpass

appengine ja night だった頃(の、しかもだいぶ前)によく行ってたけど最近は長いことご無沙汰だったので、おひさしぶりです! な人がいっぱいいて面白かった。いっぽうぜんぜん知らない人も多くて、人が入れ替わっているんだなあと思うことしきり。

問題意識が最初にあって、それをどう解決するためにどういう技術を用いたか、ということが明確なセッションは聞いていてやっぱり面白い。いっぽう単にこれをこう使ってみようという話は、そうですか、という感じでどうもなー。事例について話すなら、どういう問題意識があるのかを聞きたいですね。

しかし、一番面白かったのが事例紹介の非公開セッションだというのはちょっと寂しい感じがする。こう、GAE/GCEを変な使いかたしてみたよ! みたいな技術セッションは最近あるんですかね。

他方、Fluentdの名前があらゆるところに出てきたりNorikraの話が出てきたり、世の中そのようなことになっておったのか、みたいな気分になったのでそれはそれでちょっと愉快だった。

しゃべってきた

で、最近Wootheeのプロジェクトサイトにデモをくっつけたときに裏側をGCE/GAEでホストしてるので、そいつのデプロイについての話をしてきた。

録画もあった。一番最後の方の7〜8分くらいが自分のしゃべった分。

https://www.youtube.com/watch?v=UmTS_BFYjFQ

レスポンスタイムとかは超適当に計ったので参考程度に。微妙に差があるように見えてしまうけど、実質的には言語間での差は無いといっていい程度です。ただし spinup ありのJavaを除く。

GCE asia-east1 のレスポンスタイム計測とか誰かとネタがかぶるかと思ってたけど、誰も出してなかったので安心した。割と笑いが取れたので満足しました。よかったよかった。

2014-04-10

GrowthForecastに --kibanize オプションつけた

要するにおまえらは黒っぽいグラフならいいんだろ?

ということで、そのような欲望を現実のものにするためのパッチを書いてpullreqを出しました。

https://github.com/kazeburo/GrowthForecast/pull/63

このグレートなパッチにより --kibanize オプションをつけて起動したGrowthForecastの画面がこのようになります。

色指定などは全面的にこちらから頂きました。グレートなエントリです。

rrdtoolは癒し - 桝原翔市的博客

※ なお全体的にやっつけのため、Twitter BootstrapがゴニョゴニョやっていてCSSで簡単に色指定を上書きできない場所などが白いまま残ってたりします。みんなで頑張って更に格好よくしよう!

2014-04-08

JVM Operation Casual Talks やった/話した

JVMの運用に困ることがあったので、これはみんなも困っているに違いないと思って声をかけてみたらすごい感じのイベントになりました。自分は大変よかったので満足です。

JVM Operation Casual Talks : ATND

イベントでの話の内容自体もよかったけど、ここしばらくで非常に有益blogエントリなどがいくつも出てきていて、このイベントがあるというのが彼ら/彼女らのきっかけになってたんだとしたら嬉しいなあ、という感じ。大いに参考にさせていただいております。ありがとうございます。

会場でも言いましたが、次回についてはやりたい人がやればいいと思います。イベント名について権利を申し立てる気はございません。自分も参加したいw

で、しゃべった

Norikraというミドルウェアについての顛末とやったことについて。まとめる機会があってよかった。

2014-03-18

SFTP disableなCentOS環境でansibleを使う

サーバがだいたい CentOS 5/6 でsshの設定においてSFTPがオフになっていると、ansibleを使おうとしたときにいきなりファイル転送ができなくてハマる。

まず第一に、RHEL6およびそれ以前において OpenSSH が ControlPersist オプションをサポートしていないため、ansibleは paramiko というライブラリを使おうとする。

When using Enterprise Linux 6 operating systems as the control machine (Red Hat Enterprise Linux and derivatives such as CentOS), however, the version of OpenSSH may be too old to support ControlPersist. On these operating systems, Ansible will fallback into using a high-quality Python implementation of OpenSSH called ‘paramiko’.

Getting Started — Ansible Documentation

ところでansibleを使うとき、sshdの設定でSFTPが無効になっているとこんなエラーが出る。

FAILED => failed to open a SFTP connection (Channel closed.)

これは調べると以下のような設定をしろという情報がさくさく見付かる。*1

[ssh_connection]
scp_if_ssh=True

のだが、これを作業用ディレクトリ ansible.cfg に書いても状況が変わらない。なぜだー、と思ったら、この paramiko はファイルの転送に必ずSFTPを使おうとするらしい。scp_if_sshを書いても見てくれない。

ということで通信に ssh を使うよう強制する必要がある。このとき先程の ControlPersist オプションが問題になる(ansibleがデフォルトでセットしている)ので、これを明示的に無効にしてやる必要がある。これは ssh_args に空の代入を行うことで実施する。

[defaults]
transport=ssh

[ssh_connection]
ssh_args=
scp_if_ssh=True

同等の設定を環境変数だけでやるには ANSIBLE_TRANSPORT=ssh ANSIBLE_SSH_ARGS="" ANSIBLE_SCP_IF_SSH=true を指定する。また ANSIBLE_TRANSPORT=ssh の指定は ansible -c ssh でも代用できる。

paramiko については @r_rudi さんに教えていただきました。ありがとうございます。

かいけつ!

*1:あるいは ANSIBLE_SCP_IF_SSH=True とかしてもいける。

2014-02-28

Ruby 2.1.1 + Fluentd 0.10.44 + Cool.io 1.2.1

Ruby 2.1が正式にリリースされてから試してなかったので、試した。ついでにGVLまわりの改善があったとかいうCool.io 1.2.1 も入れたり、Fluentdも新しくしてみたり*1

で、2日くらい経ったけど、良さそう。26日午後にこのサーバの全プロセスを切り替えた。

f:id:tagomoris:20140228115432p:image

f:id:tagomoris:20140228115431p:image

これはdeliverと読んでいる中継用のFluentdノード(8プロセス)だけど、他の役割のノード(exec_filter + webhdfs)でもやってみてて、そっちも問題ない。CPU使用率もメモリ使用率も前後でほとんど変化が見られなかった。

なお変更前の構成は Ruby 2.0.0-p195 + Fluentd 0.10.39 + Cool.io 1.1.1 でした。

安心して使える良いアップデートだと言えるのではないでしょうか。すばらしい。

なお Ruby 1.9.x をお使いの皆様(td-agentユーザを含む)につきましては、Ruby 2.0の時点で大幅に性能が上がっているはずなのでこちらをご覧下さい。Ruby 2.1も同じくらい速く安定しているということです。

ruby 2.0.0-p195 + fluentd v0.10.35 + msgpack v0.5.5 の組合せが素敵という話 - tagomorisのメモ置き場

*1Fluentdには性能的な変化は無かった……はず?