YAPC::Fukuoka 2017 HAKATA に参加しましたー #yapcjapan

お久しぶりです

というわけで、 3 月の楽しかった大阪 YAPC から早 4 ヶ月。 YAPC::Fukuoka 2017 HAKATA に参加してきました。

涼しくゆったりとした LINE 福岡の会場で、色々なお話を聞くことができ、勉強になりました! Test2 はぜひ会社で導入目指してみたいところです。

次の YAPC は 2018 年 3 月 3 日に沖縄で開催とのことなので、楽しみです!

日本酒日記 (本編?)

今回は、 YAPC 前日に福岡入りして翌日に帰るゆったりプランでした。
やっぱ、福岡来たら日本酒堪能せにゃーちゅうことで、色々堪能しちゃいました。
YAPC 大阪のときもベロベロでしたが、今回もベロベロでしたん。最高です!

中洲西にある、福蔵というお店 (福岡のお酒を堪能できるお店) f:id:munepom:20170706001548j:plain

庭のうぐいす 純米吟醸 うすにごり f:id:munepom:20170706001537j:plain

若波 純米吟醸 TYPE-FY2 (福岡夢酵母 2 号) f:id:munepom:20170706001526j:plain

三井の寿 愛醸 美田 山廃純米 愛山 f:id:munepom:20170706001515j:plain

山の壽
左: 雄町 右: 山田錦
左: 27BY 右: 28BY (27BY のがどちらも奥深い味わい) f:id:munepom:20170706001505j:plain

繁桝 中汲み 純米大吟醸 生々 f:id:munepom:20170706001454j:plain

黒兜 夢一献 純米吟醸 f:id:munepom:20170706001442j:plain

h 槽口直汲み 純米吟醸 f:id:munepom:20170706001431j:plain

Docker コンテナから疎通確認するたった1つの楽な方法

なんか煽りっぽいタイトルで書いてみます

  • Docker コンテナ内で、 host 側のポートチェックしたいとき、ありますよね?
  • でも、 nc コマンド入れてないから使えない。。。
  • perl は CentOS7 からデフォルトでインストールされなくなったし。。。

そんな時、 bash の /dev/tcp 使ってみては?

echo -n > /dev/tcp/$host/$port

でチェックできますよー。 ポートが開いてるかどうかのチェックぐらいなら、 echo -n で十分なのでは?と思っています。

例:

echo -n > /dev/tcp/munepom.hatenablog.com/80

ウェッブアプリのちょっとしたパフォーマンスチューニングの方法

Web アプリケーションのパフォーマンス測定やってると

  • 大量リクエストで負荷がかかった際に、リクエストを処理できないこと、ありませんか?

そんなときは

  • netstat や ss コマンドなどでコネクションの状態を見ながら、カーネルパラメータなどを調整すると良いと思います。

とりあえずいじるなら

  • net.core.somaxconn の値を調整してみると、いいことあるかもしれません。
  • sysctl -w net.core.somaxconn=65535 のように設定すると、一時的に設定を反映できます。
  • 再起動しても設定を維持するなら、別の方法で、、、 (調べると出てくると思います)

Docker コンテナ側でも設定するなら

  • --sysctl net.core.somaxconn=65535 のように、オプションで渡せます。
  • docker-compose なら、 sysctls 項目を設定すると良いですね。 (swarm だと、またやり方変わってくるかもです)

ではでは

  • 素敵なパフォーマンスチューニングライフを!
  • ちなみに、パフォーマンス計測には ab や gatling を使うのが好きです。
    • AWS の t2.micro インスタンスなどを利用して、クライアントを別環境にしておくのが理想的ですね。個人でやるには、ちょっとハードルがあるかもしれません。

Docker 版 Nginx で timezone 指定にハマらない簡単な方法

Docker 版 Nginx

  • https://hub.docker.com/_/nginx/
  • ウェブサーバーのデプロイ、超楽になったご時世ですよね。
    • (envsubst のやり方だけが気持ち悪いと思っていますが…)

Alpine Linux イイヨイイヨー

  • 私は、軽量なイメージが好きなので、使えそうなら Alpine Linux 版を使います。

んが、 timezone を楽に指定できない。。。

  • docker-compose.yml の environment で、 TZ=Asia/Tokyo 指定したい場面、ありますよね。
  • Alpine Linux がベースのイメージだと (nginx:x.y.z-alpine) 、環境変数に TZ を指定して起動しても、 timezone 指定できません。
  • Issue には上がっているようですが、現状、 Dockerfile 書いて頑張るしか道はないようで。
  • ※ 2017 年 3 月 13 日段階の情報です。
# Alpine Linux ベース (TZ 指定なし)
$ docker run --name nginx_test -p 8080:80 nginx:1.10.3-alpine
172.17.0.1 - - [13/Mar/2017:13:36:59 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36" "-"

# Alpine Linux ベース (TZ 指定あり)
$ docker run --name nginx_test -p 8080:80 -e TZ=Asia/Tokyo nginx:1.10.3-alpine
172.17.0.1 - - [13/Mar/2017:13:38:16 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36" "-"

timezone を楽に指定したいなら

  • Alpine Linux ベースではない方のイメージ (Debian jessie ベース) を使って、環境変数 TZ を設定するのが一番簡単だと思います。
# Debian jessie ベース (TZ 指定なし)
$ docker run --name nginx_test -p 8080:80 nginx:1.10.3
172.17.0.1 - - [13/Mar/2017:13:34:35 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36" "-"

# Debian jessie ベース (TZ 指定あり)
$ docker run --name nginx_test -p 8080:80 -e TZ=Asia/Tokyo nginx:1.10.3
172.17.0.1 - - [13/Mar/2017:22:35:06 +0900] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36" "-"

一応、イメージサイズ比較のために、ペタッときます

$ docker images
REPOSITORY                     TAG                 IMAGE ID            CREATED             SIZE
nginx                          1.10.3-alpine       f94d6dd9b576        9 days ago          54 MB
nginx                          1.10.3              e526633b91df        12 days ago         181 MB
  • まあ、3.5 倍ほどイメージサイズ違いますね。。。

まとめ

  • Docker 版 Nginx で timezone を楽に指定したいなら、 Debian jessie ベースのイメージを使うとお手軽ですね。
  • Alpine Linux ベースのイメージを使いたいなら、 tzdata を入れる Dockerfile を自分で作って管理すると良いのでは?

monit の config が更新されない現象にハマらないために覚えておくべき、たった1つのこと

自戒を込めて書いとく!

  • monit conf の内容変えたら、 monit reload 忘れるなよ!
  • https://mmonit.com/monit/documentation/#reload に、ちゃんと書かれてますね。。。ドキュメントは読みましょうというお話でした。。。
reload
    Reinitialise a running Monit daemon, the daemon will reread its configuration, close and reopen log files.

YAPC::Kansai 2017 Osaka に行ってきました #yapcjapan

はじめに

  • YAPC (Yet Another Perl Conference) というカンファレンスに行ってきましたので、感想ブログ書きまーす!
  • YAPC に参加するのは、 2015 年の YAPC::Asia Tokyo 2015 に参加して以来 2 回目でして、今回は初めて一人で参加しました。
  • ぼっち参加でも楽しめるものでしたよー!

各日の感想

0 日目 (前夜祭)

  • 知らないエディタ 、設定の便利そうな管理方法など、知見が得られました。
  • 551 とたこやき美味しかったでーす!

1 日目 (まじめに楽しむ)

  • 聞きたいセッション満載で、身体が 2 つ欲しかったです。。。
  • 詳細メモはとりあえずマークダウンにして、自分のギッハブプライベート管理してるので、後日まとめられたらチラッと公開するかもです。
  • 最近は、 PSGI/Plack のあたりをおさわりしているので、 @xtetsuji さんのセッションが勉強になりました!
    • (FCGIStarman に変えたらパフォーマンスがー、、、というお悩みごとは、結局、気分リフレッシュしたらあっという間に解決しちゃいました。)
  • 懇親会では、いろんな方とお話楽しめて、おー、 YAPC 楽しいやん!ええやん!という気分にますますなりました。
  • スタッフの皆様、ありがとうございました!!!
  • 試される大地特典も用意していただき、ありがとうございましたー。 f:id:munepom:20170307030913j:plain

2 日目 (本編)

日本酒飲みたーい!

  • 浅野日本酒店さんで有料試飲ができそうだと調べがついたので、梅田店へ行き、たくさん飲んでしまいました。 f:id:munepom:20170307025300j:plainf:id:munepom:20170307025309j:plainf:id:munepom:20170307025314j:plainf:id:munepom:20170307025320j:plainf:id:munepom:20170307025327j:plainf:id:munepom:20170307025335j:plainf:id:munepom:20170307025352j:plainf:id:munepom:20170307025400j:plainf:id:munepom:20170307025406j:plain
  • 45 ml * 17 = 765 ml
    • あれ、4 合瓶 1 本分以上飲んでたの。。。お安いので、ついつい飲んでしまいました。
  • 富久錦さんの純青、宗玄、みむろ杉が特に美味しかった気がします!
  • 普段は新政をよく飲んでるのですが、違うお酒を覚えるのも良いもんですねー。
  • 純青と、妻が飲むであろう甘酒を買って帰りました。開けるのが楽しみです。

  • あ、モンシェール堂ヶ島本店で限定のココスマイルもお忘れなく☆ (食べかけで失礼。。。) f:id:munepom:20170307031312j:plain

x 日目

  • 次は、 2017/07/01 (土) に、 LINE Fukuoka 株式会社にて開催されるようですね!行けるよう、スケジュール調整したい。。。
  • 福岡といえば、喜多屋さんの蒼田という日本酒が好きです。
  • それでは、またー!

演奏会のお知らせ−!

アンサンブル・カストール 第四回 演奏会

12/11 (日) は、久々に演奏会本番です。
Ensemble Castor(アンサンブル・カストール)
という、東京都内を中心に活動するアマチュアの木管アンサンブル団体に、なぜかコントラバス弾きとして参加しまっす!
演奏会 - Ensemble Castor ~木管アンサンブル~
ぜひぜひ!