LoginSignup
148
147

More than 5 years have passed since last update.

Aimingデータ解析チーム現場だより

Last updated at Posted at 2014-02-21

ホゲェ〜

なんか色々とまとめといた方が良さそうだ。
自分にとって数が多くて意味がわからんし。

まだ社内データは収集する環境を整えている状態だ。
整えているといってもできてるんだけど、
なんか色々と新しいツールが出てくるしそれに追っついて
書き換えちゃったりを繰り返している。

意味がわからなくなってきたのでまとめてみよう。
社内で共有するにはQiitaに上げたほうが良さそう。
あげちゃまずいものは書いてないつもりだ。
まずかったら消す。

データ解析チームが何やってるのかをまとめてみた。
各担当者の名前を出して問題なさそうなら出そうかなあ

Aimingデータ解析チームについて

データ解析チームだとつまらんし愛情がわかないのでチーム名をつけている。
Monolithだ。モノリス。あのモノリス。

@shibacowさんが考えだした。トテモ良いチーム名だと思う。

チームメンバー

は以下の3名

  • @shibacow (解析スペシャリスト)
  • @ckazu (Railsスペシャリスト)
  • @futoase (腕力解決型エンジニア)

使っているサービス

Treasure Data

treasure-data.png

これは大きい。データ解析はデータがないと意味が無い。
入れ物がないと意味がとってもない。
自分たちでデータを格納するための、インハウスな環境を整えるのはだるすぎる。
落ちない環境を整えるためのチームを育てるにはどれくらいの時間とお金が...

ということでTreasure Dataを使っている。
ボコボコテストデータやらなんとかデータやら入れていってる。

Hive QLを書けば、MySQLでSQL Queryに親しんだ
化石と化した僕のようなおじさんでも気軽に溜め込んだデータから
面白い動向を見るための要求を出せる。

でまあ落ちないしデータはTreasure Dataにある!といえる
状態になってるのですごく安心して使ってる。

何か疑問が合ってもサポートの方にチャットで聞けば問題のない
状態になってるし便利。インターネットバンザイ。

pivotal tracker

pivotal-2.png

ストーリーを起こして、ポイント付けて、ベロシティあれこれ...
という極めてアジャイルな使い方をしてる。
週1、金曜日に棚卸しをしたり月曜日には企画の人と一緒に
ストーリーを起こしたりしている。

Trello

trello.png

pivotal trackerはストーリーを立てて、という流れなのだけれど
細かいタスク、「xxの環境を構築するけど新しいことに挑戦するための調査」
みたいなものや、その場で発生した問題に対処するために
時間が取られちゃってるとかはpivotalで管理しづらい。
ベロシティが常に変化しちゃってよくわからなくなるし。

口頭で報告ということもやっているのだけれど、
Trelloを使ってみようと提案して使ってみている。

idobata

idobata.png

データ解析チームで試しに使ってる。
使い始めてから不満はない。
特定のエンドポイントに対しcurlでデータを送ってやると
チャットルーム内にメッセージを送れる。
つまるところpush専用のbotを作れる。

iOSアプリもリリースされているので出先から確認可能なのが助かる。

使っているソフトウェア

fluentd

fluentd.png

fluentdを利用している。これがないとデータが集めらんない。
弊社の場合、利用しているサーバ(クラウド含め)は1社1様というわけには行かない。
fluentdというかtd-agentのセットアップについてデータ解析チームがサポートしている。

まだサポート対象の数が多くないからできることなのかなと思う。
出来そうなチームはチームに任せちゃって良いと思ってたりする。

今のところchef、capistranoを利用してデプロイしている。

HRForecast

hrforecast.png

Treasure Dataには Sending Query Results to a Web Server という
ウェッブの口に対してHive QLの結果を投げつける機能がある。

その機能を活かして、HRForecastに結果を投げつけるようにしている。
ただ、Treasure Dataが吐き出しているjsonの形式はHRForecastは食えないし、
そもそも食える状態じゃない。そのため、
Treasure Data が吐き出してるjsonをHRFが食えるPOST形式のリクエストに変更する
ブリッジするものを用意した。sinatraで書いてpumaで動かしてる。
先に入っていた先輩エンズィニアのヘルプ(ペアプロ)のもと書いた。

元々はHRForecastが描画していたグラフをそのまま利用していたけど
HighChartsを導入して以降、HRForecastはAPIのみ利用している

GrowthForecast

growthforecast.png

これはリアルタイムなデータを流し込むのに利用してる。
さっき(1分前ぐらい)ログインしてきたユーザーとか。そんなの。

使い方はHRForecastみたく時系列にデータを評価したい、というのと対照的に
速報としてデータを貰いたいときに利用する

こちらもHRForecastと同じく、グラフ描画にはHighChartを利用する形になった。
APIサーバとして利用している。

HighChart

hinode.png

きれいなグラフを出してくれるjsのライブラリ。
予算出してもらって買ってもらった。

HRF, GRFのAPI経由でもらったcsvをHighChartに食わせて描画している。

chef

chef.png

ミドルウェアのデプロイに利用している。
鉄板な感じがするのだけど、cookbookが増えてくるにしたがって
実行時間の長さが辛くなってきた。
またchefのバージョンアップに気づきづらい。
chef謹製のcookbookの構造が変わったりするので困っている部分も。

yum cookbookとか...

capistrano

capistrano.png

Railsアプリのデプロイに利用している。
v2, v3のものが混じってて整頓中。
v3からはgitのbranchを判別するようになってるので楽だ。
ただ、taskの書き方が若干変わってたりするが...

ansible

ansible.png

chefから乗り換えよう他のものを探してて、まあこれかなって思ったので採用した。
ansibleについて今まで避けてきていたのだけど
使ってみたらかなりよかった。

デプロイ元でansibleをインストールしておけば良いだけで助かる。
ansibleそのものも巨大じゃないのと、
playbookに書き込むのは基本的にコマンドなので
他の開発者がレビューするときにも楽だ。
上から下に評価されて実行されるし。

docker

docker.png

chefで毎度のごとくruby, perlのビルドをするのが辛くなってきた。
GRF, HRFのビルドもだるくなってきた。
楽しいんだけどだるい。どうにかしたい。
ということでdockerを使い始めてみることにした。
RHEL系のディストリに0.7から対応し始めたし。

ansibleとdockerを組み合わせることで
デプロイが楽になった。簡略化が進んだ!

docker indexというサービスがあるのだけれど、
そこに個人的に作成したGRF, HRF各imageを登録した。

どうにかこうにかstagingで立ち上げているが問題なく動いているようだ。
docker imageのビルドをdocker indexというサービスにに任せる(!)ことができ、
外部リソースを使ってビルドすることによりリソース省力化ができる。

...といってもdocker buildした後にprivate docker-registryに対して
pushすればよいのだけれど。

これから使おうとしてるもの

deploy

deploy.png

capistranoの次として採用検討中(個人的に)

簡素な方が良いという考えから。
どんな塩梅で使えるのか確認するため個人的に確認してみた。

dokku

dokku.png

localで確認できるよう導入してみたが、
ubuntuしか対応してないとのことでcentosもサポートしてもらえると助かる:)

個人的に以下のエントリがとても参考になった。
http://blog.coiney.com/2013/08/10/create-my-own-heroku/

これからの展望

  1. デプロイツールはdeployを使っていく(問題がでなければ...)
  2. ミドルウェアインストール・マシン環境構築にはansibleを使っていく
  3. アプリケーションイメージを常にdockerで持つようにする
  4. docker exportでコンテナをバックアップ
  5. 母艦が変わってもdockerが入れられるディストリであればdocker importで移行終了にする

とにかくインフラ、環境構築については簡素にする。
大切なのは何をやるか、だからだ。

まだ色々とある。試すことも沢山あるので逐次書いていく。

148
147
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
148
147