りまりまだんの本拠地

プリキュアを応援しつつ、技術的なこととかを色々かくぞ

技術書典3 告知

りまりま団員のもふもふです。
技術書典3で頒布予定の本をめでたく入稿いたしましたので告知させて頂きます。
スペースはう09ですよ!端っこのほうなのだ!

とりあえずのお品書きリストはこちら!ででん!

f:id:MofuMofu:20171017185350p:plain

りまりま団(う09)お品書き

りまりま団のサークルページにも同様のことが書いてありますが、各本について簡単に紹介しますよ。 techbookfest.org

データを加工する技術 (¥1000)

私はfluentdとLogstashを比較する章を書いております。
何かと比較されがちな両者ですが、簡単にでも触ってみると結構個性があるなと感じました。
あと、LogstashのGrok filterをいかに書くか具体例と共に語っているゲスト原稿もありますよ。
Logstashのfilterは設定例があまりないから、参考にしてみたらいいんじゃないでしょうか。

もふもふちゃん日記(¥300)

締め切り5日前から作り始めて、締め切り20分前に入稿した本です。
もふもふちゃんが技術書典2で同人誌を作成するときにおこった事件や、
同人誌が商業化された様子なんかが書いてあります。
まあ簡単にいうと、もふもふちゃんがいかに締め切り前だらけているかわかるということです。
「同人誌、ぼくにも書けるのかな…」とか思ってるあなた。
もふもふちゃんの堕落ぶりを見ると自信が出ることまちがいなし!ですよ。

ログと情報をレッツ・ラ・まぜまぜ! ~ELK Stack で作るBI環境~(¥300)

技術書典2で頒布した本です。こちらは在庫がほとんどございません。
Elastic Stackは5.2系です。最新版ではありません。ってことでお安めの値段設定です。
さらにいうと、インプレスR&Dさんから商業化されていますのでご注意ください。当日ブースあるらしいよ。
(そっちはバージョン5.4で、Elastic本家の査読つきですよ)

部数について

技術書典2、雨なのにめっちゃ人がいたんですよ…。入るのに1時間待ちだったとか。
苦労して会場入りしたら欲しい本売り切れだったとか、超悲しくないですか?
ってことで、新刊は部数多めに準備しております。
他のサークルさんをみてからのんびり来たらいいんじゃないかな。

在庫?そんなのクロネコでまとめて送るからいいんだよ!
ねこのにゃおにゃおと一緒にまってるよおー

ElasticsearchのURLを指定する

/etc/elasticsearch/elasticsearch.ymlでElasticsearchのIPを指定する方法を記載する。
というのもデフォルトではlocalhost:9200で通信するためである。

バックアップの取得

elasticsearch.ymlを編集する前にバックアップを取得する。

$ sudo cp -apr /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.org

$ sudo ls -al /etc/elasticsearch/
total 32
drwxr-x---  3 root elasticsearch 4096 May 21 07:29 .
drwxr-xr-x 78 root root          4096 May 21 07:02 ..
-rw-rw----  1 root elasticsearch 2854 Apr 28 17:45 elasticsearch.yml
-rw-rw----  1 root elasticsearch 2854 Apr 28 17:45 elasticsearch.yml.org
-rw-rw----  1 root elasticsearch 3117 Apr 28 17:45 jvm.options
-rw-rw----  1 root elasticsearch 4456 Apr 28 17:45 log4j2.properties
drwxr-x---  2 root elasticsearch 4096 Apr 28 17:45 scripts

elasticsearch.ymlの編集

network.hostはIPアドレスを指定し、port部分でポート指定を行う。
ここを間違えると永遠にConnection refusedになるので注意。
elasticsearch.ymlを編集する前はElasticsearchサービスを止めておいた方が良い。

$ sudo vim /etc/elasticsearch/elasticsearch.yml
# 56行目に55目の内容をコピーし、自ホストのIPアドレスに変更する
55 #network.host: 192.168.0.1
56 network.host: 10.0.1.51

動作確認

サービス再起動後、curlコマンドで指定したIP・ポートに到達するか確認する。
ここでエラーがある場合、ネットワーク関連の何らかで設定が間違っているので再度見直しを行う。

$ curl -XGET http://10.0.1.52:9200
{
  "name" : "kchQuTP",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "osGyfX3LRK6z1-AqH1hJrQ",
  "version" : {
    "number" : "5.4.0",
    "build_hash" : "780f8c4",
    "build_date" : "2017-04-28T17:43:27.229Z",
    "build_snapshot" : false,
    "lucene_version" : "6.5.0"
  },
  "tagline" : "You Know, for Search"
}

Amazon Linuxを日本時間に変更

Amazon LinuxはデフォルトだとUTC時間を使用する設定となっている。
このままだとログのタイムスタンプなどで不都合が出るため、JST時間に変更する。

etc/sysconfig/clockで時間指定

元の設定はUTCになっているので、Asia/Tokyoにロケールを変更してUTCを無効化する。

# ZONE="UTC"
# UTC=true

ZONE="Asia/Tokyo"
UTC=false

/etc/localtimeに/usr/share/zoneinfo/Japanを上書き

Amazon Linuxファイルにはデフォルトで日本時間用の設定ファイルが準備されているので、タイムゾーンの変更を行う。

$ sudo  cp /usr/share/zoneinfo/Japan /etc/localtime

crondサービスの再起動

crondサービスを再起動し、JST表示になれば日本時間に変更されている

$ sudo /etc/init.d/crond restart
Stopping crond:                                            [  OK  ]
Starting crond:                                            [  OK  ]

# 時刻の確認
$ date
Sun May 21 17:04:37 JST 2017

Amazon Linux にElasticsearch5.4をインストール

Amazon LinuxにElasticsearchのインストールをする手順を記載する。

Java1.8.0のインストール

Elasticsearchの起動にはJava(OpenJDK 1.8.0_73以上)が必要なので、インストールする

Javaのインストール

# バージョンの確認
$ java -version
java version "1.7.0_131"
OpenJDK Runtime Environment (amzn-2.6.9.0.71.amzn1-x86_64 u131-b00)
OpenJDK 64-Bit Server VM (build 24.131-b00, mixed mode)
$

# OpenJDK 1.8.0のインストール
$ sudo yum install java-1.8.0-openjdk-devel
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main                                                                                                                                                            | 2.1 kB  00:00:00     
amzn-updates                                                                                                                                                         | 2.3 kB  00:00:00     
Resolving Dependencies
--> Running transaction check
---> Package java-1.8.0-openjdk-devel.x86_64 1:1.8.0.131-2.b11.30.amzn1 will be installed
--> Processing Dependency: java-1.8.0-openjdk = 1:1.8.0.131-2.b11.30.amzn1 for package: 1:java-1.8.0-openjdk-devel-1.8.0.131-2.b11.30.amzn1.x86_64
--> Processing Dependency: libawt_xawt.so(SUNWprivate_1.1)(64bit) for package: 1:java-1.8.0-openjdk-devel-1.8.0.131-2.b11.30.amzn1.x86_64
--> Processing Dependency: libawt_xawt.so()(64bit) for package: 1:java-1.8.0-openjdk-devel-1.8.0.131-2.b11.30.amzn1.x86_64
--> Running transaction check
---> Package java-1.8.0-openjdk.x86_64 1:1.8.0.131-2.b11.30.amzn1 will be installed
--> Processing Dependency: java-1.8.0-openjdk-headless = 1:1.8.0.131-2.b11.30.amzn1 for package: 1:java-1.8.0-openjdk-1.8.0.131-2.b11.30.amzn1.x86_64
--> Running transaction check
---> Package java-1.8.0-openjdk-headless.x86_64 1:1.8.0.131-2.b11.30.amzn1 will be installed
amzn-main/latest/filelists_db                                                                                                                                        | 5.1 MB  00:00:00     
amzn-updates/latest/filelists_db                                                                                                                                     | 1.0 MB  00:00:00     
--> Processing Dependency: copy-jdk-configs >= 1.1-3 for package: 1:java-1.8.0-openjdk-headless-1.8.0.131-2.b11.30.amzn1.x86_64
--> Processing Dependency: lksctp-tools(x86-64) for package: 1:java-1.8.0-openjdk-headless-1.8.0.131-2.b11.30.amzn1.x86_64
--> Running transaction check
---> Package copy-jdk-configs.noarch 0:1.2-1.2.amzn1 will be installed
---> Package lksctp-tools.x86_64 0:1.0.10-7.7.amzn1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

============================================================================================================================================================================================
 Package                                               Arch                             Version                                                Repository                              Size
============================================================================================================================================================================================
Installing:
 java-1.8.0-openjdk-devel                              x86_64                           1:1.8.0.131-2.b11.30.amzn1                             amzn-updates                            12 M
Installing for dependencies:
 copy-jdk-configs                                      noarch                           1.2-1.2.amzn1                                          amzn-main                               13 k
 java-1.8.0-openjdk                                    x86_64                           1:1.8.0.131-2.b11.30.amzn1                             amzn-updates                           236 k
 java-1.8.0-openjdk-headless                           x86_64                           1:1.8.0.131-2.b11.30.amzn1                             amzn-updates                            39 M
 lksctp-tools                                          x86_64                           1.0.10-7.7.amzn1                                       amzn-main                               89 k

Transaction Summary
============================================================================================================================================================================================
Install  1 Package (+4 Dependent packages)

Total download size: 51 M
Installed size: 143 M
Is this ok [y/d/N]: y
Downloading packages:
(1/5): copy-jdk-configs-1.2-1.2.amzn1.noarch.rpm                                                                                                                     |  13 kB  00:00:00     
(2/5): java-1.8.0-openjdk-1.8.0.131-2.b11.30.amzn1.x86_64.rpm                                                                                                        | 236 kB  00:00:00     
(3/5): lksctp-tools-1.0.10-7.7.amzn1.x86_64.rpm                                                                                                                      |  89 kB  00:00:00     
(4/5): java-1.8.0-openjdk-devel-1.8.0.131-2.b11.30.amzn1.x86_64.rpm                                                                                                  |  12 MB  00:00:01     
(5/5): java-1.8.0-openjdk-headless-1.8.0.131-2.b11.30.amzn1.x86_64.rpm                                                                                               |  39 MB  00:00:02     
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                        16 MB/s |  51 MB  00:00:03     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : copy-jdk-configs-1.2-1.2.amzn1.noarch                                                                                                                                    1/5
  Installing : lksctp-tools-1.0.10-7.7.amzn1.x86_64                                                                                                                                     2/5
  Installing : 1:java-1.8.0-openjdk-headless-1.8.0.131-2.b11.30.amzn1.x86_64                                                                                                            3/5
  Installing : 1:java-1.8.0-openjdk-1.8.0.131-2.b11.30.amzn1.x86_64                                                                                                                     4/5
  Installing : 1:java-1.8.0-openjdk-devel-1.8.0.131-2.b11.30.amzn1.x86_64                                                                                                               5/5
  Verifying  : lksctp-tools-1.0.10-7.7.amzn1.x86_64                                                                                                                                     1/5
  Verifying  : 1:java-1.8.0-openjdk-headless-1.8.0.131-2.b11.30.amzn1.x86_64                                                                                                            2/5
  Verifying  : 1:java-1.8.0-openjdk-1.8.0.131-2.b11.30.amzn1.x86_64                                                                                                                     3/5
  Verifying  : 1:java-1.8.0-openjdk-devel-1.8.0.131-2.b11.30.amzn1.x86_64                                                                                                               4/5
  Verifying  : copy-jdk-configs-1.2-1.2.amzn1.noarch                                                                                                                                    5/5

Installed:
  java-1.8.0-openjdk-devel.x86_64 1:1.8.0.131-2.b11.30.amzn1                                                                                                                                

Dependency Installed:
  copy-jdk-configs.noarch 0:1.2-1.2.amzn1           java-1.8.0-openjdk.x86_64 1:1.8.0.131-2.b11.30.amzn1           java-1.8.0-openjdk-headless.x86_64 1:1.8.0.131-2.b11.30.amzn1          
  lksctp-tools.x86_64 0:1.0.10-7.7.amzn1           

Complete!
$

バージョンの変更

デフォルトからJavaがインストールされていた場合、明示的に使用するJavaのバージョンを変更する必要がある。alternativesコマンドを使用してJavaのバージョンを指定する。

# Javaのバージョンを変更する
$ sudo alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
   2           /usr/lib/jvm/jre-1.8.0-openjdk.x86_64/bin/java

Enter to keep the current selection[+], or type selection number: 2
# 再度バージョンを確認
$ java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)
$


# PATHが通っているか確認
$ echo $JAVA_HOME
/usr/lib/jvm/jre

rpmパッケージからインストール

CentOS5ではパッケージからのインストールはできないが、Amazon LinuxはCentOS6系のため、パッケージからのインストールが可能となる。

PGP鍵の登録

Elasticsearchのパッケージは暗号化されているため、PGP鍵の登録が必要となる。

$ sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
$
$ sudo touch /etc/yum.repos.d/elasticsearch.repo

elasticsearch.repoの追記

yumコマンドでインストールするため、リポジトリ登録をする。/etc/repos.d配下にelasticsearch.repoを作成し、こちらに記載されているリポジトリ内容を登録する。

$ vim elasticsearch.repo

# 以下を追記
[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

$ sudo cat /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Elasticsearchのインストール

yumコマンドを使ってインストールする。バージョン指定しない場合、最新版が落ちてくる。多分バージョン指定もできるはず。

$ sudo yum install elasticsearch
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main                                                                                                                                                            | 2.1 kB  00:00:00     
amzn-updates                                                                                                                                                         | 2.3 kB  00:00:00     
elasticsearch-5.x                                                                                                                                                    | 1.3 kB  00:00:00     
elasticsearch-5.x/primary                                                                                                                                            |  54 kB  00:00:00     
elasticsearch-5.x                                                                                                                                                                   134/134
14 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package elasticsearch.noarch 0:5.4.0-1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

============================================================================================================================================================================================
 Package                                        Arch                                    Version                                    Repository                                          Size
============================================================================================================================================================================================
Installing:
 elasticsearch                                  noarch                                  5.4.0-1                                    elasticsearch-5.x                                   32 M

Transaction Summary
============================================================================================================================================================================================
Install  1 Package

Total download size: 32 M
Installed size: 35 M
Is this ok [y/d/N]: y
Downloading packages:
elasticsearch-5.4.0.rpm                                                                                                                                              |  32 MB  00:00:08     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Creating elasticsearch group... OK
Creating elasticsearch user... OK
  Installing : elasticsearch-5.4.0-1.noarch                                                                                                                                             1/1
### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using chkconfig
 sudo chkconfig --add elasticsearch
### You can start elasticsearch service by executing
 sudo service elasticsearch start
  Verifying  : elasticsearch-5.4.0-1.noarch                                                                                                                                             1/1

Installed:
  elasticsearch.noarch 0:5.4.0-1                                                                                                                                                            

Complete!
$

Elasticsearchの起動

起動コマンドの確認

ps -p 1でどの起動用コマンドを使うべきか確認する。 CMD欄にinitと表示されていればserviceコマンド、systemctlと表示されていればsystemctlコマンドを使用する。

ちなみにこのコマンドで調べる理由としては、PID1はLinux起動後、1番最初に起動するプロセスであり、他プロセスは全てPID1(initプログラムなど)から起動されるためである。つまり、他のプロセスの起動・停止方法はPID1のプログラムと同じ起動・停止方法になるので、サービス起動のコマンドを確認する手段として利用することができる。1

$ ps -p 1
  PID TTY          TIME CMD
    1 ?        00:00:00 init

この場合はserviceコマンドで起動することになる。ちなみにOSのバージョンによって起動コマンドはほぼ固定なので、そちらから確認しても良い。(でもコマンドで確認した方が早いと思う)

起動・停止

$ sudo service elasticsearch status
elasticsearch is stopped
$
$ sudo service elasticsearch start
elasticsearch is started

エラーなくサービス起動できれば、インストールは完了している。 問題がある場合、コマンドプロンプトにエラー出力される。

サービス登録

サービス登録はchkconfigコマンドを利用してできる。

$ sudo chkconfig --add elasticsearch
$ sudo chkconfig --list |grep elasticsearch
elasticsearch   0:off   1:off   2:on    3:on    4:on    5:on    6:off

macでssh接続のめも

いつもはWindowsのTeratermを使っていたので、macでssh接続するときのめも

鍵を使わない場合

Linuxコマンドと変わらない。

ssh ユーザー名@接続先IPアドレス

キーペアを使ってsshする場合

秘密鍵の配置

~/.sshフォルダ下に秘密鍵を配置する。

$~ mofumofu$ cp /ダウンロードした秘密鍵のパス/秘密鍵.pem ~/.ssh/
$~ mofumofu$ ls -al ~/.ssh/
total 16
drwx------   4 mofumofu  staff   136  5  3 11:59 .
drwxr-xr-x+ 49 mofumofu  staff  1666  5  3 11:21 ..
-rw-r--r--@  1 mofumofu  staff  1692  5  3 11:59 秘密鍵.pem
-rw-r--r--   1 mofumofu  staff   396 10  3  2015 known_hosts
$~ mofumofu$

アクセス権を変更

AWSの場合、秘密鍵に対して外部からアクセスできないようにする必要があるため、秘密鍵のアクセス権を400に変更する。

$~ mofumofu$ sudo chmod 400 ~/.ssh/
$~ mofumofu$ ls -al ~/.ssh/

root以外はアクセスできないようになっているので、sudoで権限を確認する

$~ mofumofu$ sudo ls -al ~/.ssh
total 16
dr--------   4 mofumofu  staff   136  5  3 11:59 .
drwxr-xr-x+ 49 mofumofu  staff  1666  5  3 11:21 ..
-rw-r--r--@  1 mofumofu  staff  1692  5  3 11:59 秘密鍵.pem
-rw-r--r--   1 mofumofu  staff   396 10  3  2015 known_hosts

ssh接続する

秘密鍵は絶対パスで指定する。

sudo ssh -i "秘密鍵のフルパス" ユーザ名@IPアドレス

$~ mofumofu$ sudo  ssh -i "/Users/mofumofu/.ssh/秘密鍵.pem" ec2-user@IPアドレス
Password:
The authenticity of host 'IPアドレス (IPアドレス)' can't be established.
ECDSA key fingerprint is XXXXX/XXXXXXXXXXX.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'IPアドレス' (ECDSA) to the list of known hosts.

       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2017.03-release-notes/
[ec2-user@プライベートIP ~]$

macのchmodはLinuxとオプションが違うので少し戸惑いますね…。

第19回elasticsearch勉強会に行きました

www.meetup.com

こちらの勉強会に参加したときのメモです。
Elastic{ON}のFBをメインにしつつ、Elstic Stackの新機能紹介の会でした。

話聞きながらメモ取ってたので、間違ってるところがあれば教えてもらえると助かります。

大谷さんの話

Elastic{ON}の特徴

  • Ask me anythingコーナーがメイン
    Elastic Stackの開発者が1箇所に集まっているので、自由に質問することができます。 リストを持参して質問している人もいたとか。

  • カンファレンスのご飯が美味しい
    会場の向かいに駐車場があり、ケータリングがやってくるので好きなものを食べられコーナーです。いいなあ。
    これに関しては企業ブログとかTwitterのハッシュタグで追いかけていただくといいと思います。

  • Cause Awards
    Elastic Stackを用いて社会貢献しているプロジェクトを紹介するコーナーがkeynote内にありました。 犯罪防止への取り組み方法などを紹介していたようです。

新機能の紹介

センサーの可視化

はじめにセンサーデータをKibanaで可視化したユースケースの紹介動画を見せていただきました。
バレエダンサーの体につけたセンサーデータをKibanaグラフでリアルタイムに可視化したのが売りらしい。あまり用途がよくわからなかったけどなんかすごかったです。

コミュニティ数

コミュニティ数は世界に8500ほどあるようです。
ダウンロード数もそこそこ。日本からのダウンロード数もそこそこ。

決してダウンロード数を聞き逃したとかいうわけではない

UPDATE情報

KibanaとBeatsの機能拡張をメインにしつつ、ElasticsearchとLogstashもちょこちょこUPDATEがあるよ、という印象を受けました。 日本だと"検索エンジンとしてのElasticsearch"利用が多い感あるのでどのくらい受けるのかは未知数だなと思いました。

range型の登場

データを保存するときにrangeも保存することで、データの検索時に重複しているのかなどを考慮する必要がなくなります。
「何時から何時まで」みたいなデータを取得するときに便利です。

TileMapサービスの拡張

X-Pack(無償版もあるで)を入れるとズームレベルを10まで上げることができます。
X-Packは無償版もあるんですね。有償版だけかと思ってた。

Beatsの拡張

BeatsはGo言語で書かれている軽量パッケージです。まだあまり使っている人は少なそうですね。
新登場のHeartbeatとファイル取り込みができるFilebeatの機能拡張について紹介がありました。

  • Heartbeat
    pingを打ってサーバなどの死活監視ができます。
  • Filebeat Modules
    よくあるファイル種別(Apacheのaccess.logとか)であれば、Modulesの設定をするだけでファイルデータを自動でパース・KibanaのDashboardも自動で生成できる機能が追加となるようです。

Elasticsearch ingest

elasticsearchのindex内にデータを格納する前に処理を追記できる機能。
こちらを利用することで、Filebeat Modulesの機能を実現している。

KibanaグラフのVisual Builder

KibanaやTimelionのビジュアル(グラフ)を簡単に描くことができる機能を提供している。

機械学習への参入

データの波形を元に正常系を学習し、もし基準値から外れた場合は異常検知してくれるツールです。 Elastic Stack5.4からの登場だそうで。
30日間無料なので試してみるのは面白そうです。

Elastic Cloud Enterprise

Elastic Stackの基盤を提供するサービスです。AWSと似ていますね。
大規模クラスター運用したい、とか

今後の構想

Elasticsearchに対してSQL検索できる

待ってましたあ! Elasticsearchに対してSQLのクエリを投げて検索できるようになります。標準SQLのみの対応予定だそうです。いいことだ。
ついでに悪しきwhere句でのテーブル結合も未対応にしといてくれるといいなあ。 まずはSelect文を中心に開発を行うようです。Elasticsearchの中にSQLを解釈するエンジンを組み込む予定なので、JDBC接続とはちょっと違うようです。
まだ開発中ですが、X-Packに組み込まれる予定だそう。

Kibana Canvas

Kibanaの画面上でインフォグラフィック的なグラフを作成することができるようになります。公式の動画とか見た方が雰囲気わかると思います。
データ分析をした結果をプレゼンテーションするときにPowerPointなどにグラフを描くのではなく、Kibana上でElasticsearch内のデータを表示しながら話をすることができるようになるかもしれません。

これはElastic{ON}当日にハッシュタグに張り付いて見てたんですが、めっちゃ驚きましたねー。ブログ記事もちらほら見かけましたが、Elastic{ON}のYouTubeが1番イメージ掴みやすいと思います。

大谷さんがハッピーになるようにみんなYouTubeを見るんだ。

そのた

Elastic Stack5.3の情報とか先々の情報とかも紹介いただきました。

  • 将来Elastic Stack5系から6系にUPDATEする場合、ポーリングによるUPDATEを可能とする予定なんだそうです。サービス停止しなくていいのは嬉しい。
  • 日本語化
    ymlファイルなどに日本語で表示したい箇所の設定を記載し、テンプレートすることでKibanaの日本語表示を行うことができるようにする機能を実装予定だそうです。エンドユーザー向けにはいいかも。
  • Logstash設定のVisualize化
    Logstash設定をKibanaから行うことで、設定の記載を簡素化することができるようにする機能が登場予定だそうです。

全体的に新機能はBeatsとKibana UIの活用をメインとしているような感じに見えました。

LTコーナー

実際にカンファレンス参加された方の感想をLTとして紹介頂きました。

前原さんの話

Elasticsearch勉強会ですが、AndroidのTシャツを着用しての登場でした。なんでAndroid?
Elastic {ON}に参加したときの感想がメインだったと思います。

  • スポンサーに競合企業が多い
    確かに日本だとあまりない習慣ですよね。
  • ディスカッション多し
    みんなずっとディスカッションしてたそうです。技術的なことで議論できる人が近くにいるのはいいよなー。

白井さんの話

営業観点から見たElastic Stackのおすすめ新機能をランキング形式で紹介されていました。 実際は第3位からの発表でしたが、こんな感じのランキングでした。

  1. 機械学習
  2. Kibana Canvas
  3. Logstash設定のGUI化

自動検知は確かに便利そうですよね。

感想とか

会場のせいもあると思いますが、めっちゃ講義感ある勉強会でした。
ふつーの勉強会ってこういう感じなんですかね?

『WANTEDLY TECHBOOK 2』を読みました

めっちゃ表紙がキラッキラでした。会社ももっと輝くといいですね(適当なフォロー)。

本の情報(敬称略)

  • サークル名:Wantedly執筆部
  • ページ数:80p

f:id:MofuMofu:20170422165435j:plain:w300

とにかくキラッキラだと言いたい。光の反射率半端ない(褒めている)。

概要

ビジネス用SNSサービスWantedlyで有名なWantedly株式会社のエンジニアさんがWantedlyのバックエンドで使われている技術について語った本です。なんだかめっちゃくどいですね。1

GithubDockerに関する内容が半分以上を占めていました。あとはWantedly Peopleで使われている機械学習データの使用ポイントや学習方法について言及されている章もありました。

Docker部分はコンテナ利用の思想・開発環境としてDockerを使用する際のメンテの勘所・kubernetesを利用したアプリケーション実行環境の構築・アプリケーションデプロイなどがメインでした。

最初kubernetesがなんのことがわからなかったので自分でちょっと調べました。Dockerなどコンテナ技術をグルーピングし、管理・監視・ネットワーク系設定の管理ができるOSSなんだそうです。ちなみに開発元は天下のGoogle先生です。今はいろんな会社も開発に参画しているようです。今後主流になりそう。

Githubの部分はissueの切り方・会議記録をissueで管理するなど、開発者のコミュニケーションの場としていかにGithubを有効に使うためのTipsが記載されていました。

issueやタスクの進捗はチェックボックスを用いて細かく管理するなど、みんなに優しく開発を進めるためのTipsが多く、参考になりました。

感想

自分の周りはSVN管理が主体なんで、やっぱりGithub便利だよなあーと思いました

というのはさておき、まずはエンジニア全体のレベルが高いという印象を受けました。GithubやDockerなど、最近(なのか?)の技術ベースかつ、機能に合わせて最適な技術を選択・運用している時点でエンジニアのレベルの高さを感じます。

サービス構築のための技術選定で自社の得意なものしか扱わない、むしろ自社フレームワークOnlyとかあるあるですが、この本を読む限りWantedlyはそうでもないのかなと思いました。

印象的だった部分

Wantedlyの開発ルールみたいなのが第1章で紹介されてて、全部めっちゃ面白いなと思ったのですが、特にこのルールが気になりました。

ログをファイル出力ではなく、STDOUTにしましょう

本番環境もSTDOUTになってるんだろうか。ただし、その前で開発/本番(環境)一致がポリシーと紹介されていたので可能性は高いと思います。
障害発生時のトラブルシュートするときとかどうするのか気になりました。自分がDockerを本格的に使ったことがないので勘所がないだけなのか。

でも、ただ無意味にログファイルを垂れ流しておいてリソースを圧迫するくらいであれば潔くそんなものは持たないという考えもありかなと思いました。

本の内容以外で

やっぱりWeb系企業だとGithubとDockerとかバリバリ使っていく感じなんですね。エンタープライズ企業でDockerメインのところってどのくらいあるんでしょう。

バージョン管理とかもSVNとGit、どちらが多く使われているのか統計を取ってみたら面白そうです。さすがに今はGitメインなんじゃないかと思っていますが…。


  1. 企業HPなので一応URLリンクは貼りません。ただのチキンですが。興味があればGoogle先生から辿っていただくのがよろしいかと思います。