Dockerイメージで誰でも気軽にMroonga体験

134 views

Published on

2017/02/09 Groonga Meatup 2017

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
134
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Dockerイメージで誰でも気軽にMroonga体験

  1. 1. Dockerイメージで誰でも気軽に Mroonga体験 2017/02/09 yoku0825 Groonga Meatup 2017
  2. 2. \こんばんは/ yoku0825@GMOメディア株式会社 オラクれない- ポスグれない- マイエスキューエる- ⽣息域 Twitter: @yoku0825- Blog: ⽇々の覚書- MyNA ML: ⽇本MySQLユーザ会- MySQL Casualʼs Slack: MySQL Casual- 1/22
  3. 3. このトークのゴール Mroongaを使っている/使ってみたい⼈に より簡単に検証やテストができる環境として Dockerイメージを使ってみようかなと思ってもらう 2/22
  4. 4. 弊社はMroonga派です 全⽂検索、基本は検索も更新もMroonga 5年以上前(Mroonga 2.x)からのユーザーです- 最近、マスターはInnoDB/スレーブがMroongaの構成や- 検索がgroonga-httpdとの⼆⼑流もあります- エム-ルンガと発⾳すると、アール-ルンガと区別しやすいで す が、別に社内にアール-ルンガ使ってないので迷うことはないです- エヌ-ルンガ使ってる⼈いたらごめんなさい- 3/22
  5. 5. このトークの中でのDockerの⽴ち位置 Linuxの中に仮想マシンみたいなコンテナを⽴ち上げてくれ る何か Vagrantを知ってる⼈ならまさにその⽤途 これ以上突っ込んだ話や本番環境で使う話とかしません 4/22
  6. 6. このトークの中でのDockerの⽴ち位置 Linuxマシン docker コンテナ mysqld 仮想IP コンテナ mysqld 仮想IP application 5/22
  7. 7. DockerイメージでMroonga体験 Dockerをセットアップ us-eastのAmazon Linux AMI 2016.09.1にて- sudo yum install docker mysql sudo service docker start sudo docker pull groonga/mroonga sudo docker run -d groonga/mroonga mysql -h 172.17.0.2 -uroot SHOW PLUGINS; 6/22
  8. 8. 3分でで きた 7/22
  9. 9. DockerイメージはDocker Hubに 8/22
  10. 10. AUTOMATED BUILD DockerfileはGitHubのリポジトリーにあります mroonga/docker: Dockerfile for Mroonga- Patches welcome!! 9/22
  11. 11. MroongaのDockerイメージを使ってできること 簡単にクリーンなMroongaが⽴ち上げられる もともとはバグレポートの時のクリーンな再現環境として作り始めた- すぐに使い始められる groonga-tokenizer-mecab, groonga-normalizer-mysql込みのオ ールインワン - 豊富なバージョンが揃っている 原則、mysql-community-mroongaの全バージョンをサポート- -v オプションで既存の(ホスト側の)データディレクトリ ーをマウント可能 データディレクトリーをあらかじめ複製やスナップショットしておけ ば、何度でも同じデータでテストができる - 10/22
  12. 12. MroongaのDockerイメージを使ってやらない⽅がいい こと 本番での運⽤ それを考慮したつくりにはなっていません(セキュリティーとか)- ガチなベンチマークテスト Dockerコンテナーであることで何らかの制約を受けるかと思うので、 ゴリッと数字を出すベンチマークには不向きだと思う - 11/22
  13. 13. ちょっと便利な使い⽅ MySQL + Mroongaのバージョンを指定して起動する sudo docker run -d groonga/mroonga:mysql5623_mroonga410 12/22
  14. 14. Dockerイメージが対応しているバージョン MySQL 5.6はMroonga4.10と5.06以降に対応 MySQL 5.7はMroonga 5.09以降に対応 13/22
  15. 15. Dockerイメージが対応しているバージョン 14/22
  16. 16. ちょっと便利な使い⽅ ホストのdatadirをコンテナーの /var/lib/mysql にマウント する またはコンテナーの /var/lib/mysql をホストのどこかにマ ウントする sudo docker run -d -v /path/to/host/dir:/var/lib/mysql groonga/mroonga 15/22
  17. 17. ちょっと便利な使い⽅ datadirマウントの応⽤でMroongaイメージに⾃前のmy.cnf を⾷わせる sudo docker run -d -v /path/to/my/cnf:/etc/my.cnf groonga/mroonga 16/22
  18. 18. ちょっと便利な使い⽅ Mroongaイメージにmysqldのオプションを渡す sudo docker run -d groonga/mroonga --log-bin=mysql-bin --server-id=2 --log-slave-updates --enforce-gtid-consistency=ON --gtid-mode=ON 17/22
  19. 19. ワンランク上の使い⽅ Mroongaイメージの上に初期データを投⼊して新たなイメ ージを作る vim Dockerfile --- FROM groonga/mroonga:latest COPY init.sql /var/lib/mysql-files/init.sql RUN service mysqld start && mysql -uroot < /var/lib/mysql-files/init.sql && service mysqld stop RUN rm /var/lib/mysql/groonga.log /var/lib/mysql/auto.cnf --- sudo docker build -t myimage . sudo docker run -d myimage 18/22
  20. 20. オススメの使い⽅ ちょっとしたテスト環境に ウインドーズ派なので、VirtualBoxの中にCentOS 7.2のVMを飼って その中でdockerしていますがその程度の⽤途なら問題なく - 個⼈的にユニットテストととても相性が良い- 他のメンバーとテスト環境を共有できる 物理的な意味での共有ではなく、全員が(簡単な)同じ⽅法で同じコ ンテナーを起動できる - Dockerを使うとっかかりに いきなり新しい技術だと思うとコスト⾼く感じるけれど、⾒知ったソ フトウェアの⼊ったコンテナーからなら気軽にいじれる - OSSに貢献する 新しいバージョンをサポートするDockerfileを書いてPull-Reqするだ けであなたもOSSのコントリビューターに︕ - 19/22
  21. 21. Examples of Suggestions and Contributions レプリケーション構成を試したいから、binlogとserver̲id を振ったmy.cnfにするとか groonga-httpdとの⼆⼑流を試したいからgroonga-httpdも ⼀緒に⼊れるとか 今のところDDLしかテストしてないけどDMLもテストする とか おや、そういえば今⽇は⾁の⽇で、Mroongaのバージョン アップがあったんじゃなかったっけ…︖ 20/22
  22. 22. このトークのゴール Mroongaを使っている/使ってみたい⼈が より簡単に検証やテストができる環境として Dockerイメージを使ってみようかと思ってもらえました か︖ 21/22
  23. 23. Thank you!! 22/22

×