8月19日開催!RejectKaigi直前レポート! #rejectkaigi2017

エンジニア組織推進室の渡辺です。
お盆休みも終わり、今日からまたお勤めの方も多いでしょうか。
なお、次回の祝日は9月18日(月)敬老の日になります。がんばりましょう。

その9月18日から始まるRubyのカンファレンスRubyKaigiに、SpeeeはPre Kaigi Sponsorとして、参加します!
今回は3つのアプローチからRubyKaigiを盛り上げるお手伝いをさせていただきます。

1. RejectKaigi
RubyKaigi 2017のCFP提出者で、惜しくもAcceptの機会を逃された方やRubyKaigi@広島への参加を断念された方と一緒にわいわいするRubyKaigi公式イベント

2. RubyKaigi前夜祭
Rubyコミッター、本編のスピーカー、海外からの来場者を中心にお招きし、前日(9/17)に実施するパーティー

3. RubyKaigi当日、企業ブース
いつものようにSpeee特製ブレンドコーヒーを供給したいと思います。

tech.speee.jp

本日は今週土曜日に開催を控えるRejectKaigiについて、
「当日こんなことやります!」というのをレポートしたいと思います。

RejectKaigiとは?

下記のようなイベントです。( connpassイベントページ から引用)

RubyKaigi 2017のCFP提出者で、惜しくもAcceptの機会を逃された方(つまりRejectされた人)に、ご登壇者としてRubyに関する発表をしていただくイベントです。 このイベントは、より多くのRubyistに自身の取り組みや成果を発表できる機会を創出し、Rubyコミュニティの発展および9月開催のRubyKaigi 2017をさらに盛り上げることを目的とした【RubyKaigi 2017公式イベント】です。

前日はサマーウォーズがあるので、14時開始にさせていただきました。
場所は広島では無く、東京は六本木のSpeee Loungeとなります。

f:id:yt-tanabe:20170817163148j:plain:w600

ありがたいことにRubyKaigiに参加できない方を中心にご支持をいただいています。
(このようなお声をいただけて本当に嬉しいです。ありがとうございます。)

見どころその①:登壇者

当日は下記のような形で7つのセッションを行います。
道中色々ありまして、Rejectされてしまった方は2名しかいません!(RejectKaigiなのに!)

企画の趣旨を根底から覆すプログラムになっていますが、Rejectされていない方も含めて
超豪華ラインナップでお届けさせていただきます。登壇を快諾いただいた皆さん、ありがとうございます。

中でも @a_matsuda@takahashim による
Rubykaigi2017タイムテーブル徹底解説 はRubyKaigi前の予習にぴったりのコンテンツとなっています。

時間
内容
発表者
13:30~ 開場 -
14:00~ 開会の挨拶 @a_matsuda
14:10~14:40 Rubyで機械学習を行うための「巨人の肩に乗る」別の方法 @naitoh
14:40~14:45 休憩 -
14:45~15:10 RejectKaigi youchan
15:10~15:20 休憩 -
15:20~15:40 GraphQL on Rails @gfx
15:40~16:10 普通のRailsアプリをDockerで本番運用する知見 @ZARU
16:10~16:40 休憩+抽選会 @mrkn
16:40~17:10 RubyKaigi 2017タイムテーブル徹底解説 @a_matsuda
@takahashim
17:10~17:15 休憩 -
17:15~17:40 Data Engineering of Rails @joker1007
17:40~18:10 file upload 2017 willnet
18:10~18:20 場所転換+アンケート回収 -
18:20~ 閉会の挨拶+懇親会 -
19:30 解散 -

見どころ②:RejectKaigiでしかもらえないアイテムたくさん

抽選会

夕方には@mrkn によるRejectKaigi抽選会もあります。

RejectKaigi参加者が対象となり、抽選で RejectKaigi特製ネックピロー および、
カンファレンスやもくもく会で配布しているSpeee特製コーヒー豆 Speeeブレンド が当たります!

これで広島までの移動も快適です(ちなみに東京駅-広島駅は新幹線で4時間です)
今回限りの特注品ですので、RubyKaigi参加者に当たることを切に願っています・・・!

f:id:yt-tanabe:20170817161212j:plain:w500

ちなみにSpeeeブレンドはRubyKaigiでもまたお配りしようと思うので、
当たらなかった方はRubyKaigiでぜひご試飲ください!

RejectKaigi特製ステッカーとハンドスピナー

参加者特典として参加いただいた方全員を対象に、「ステッカーとハンドスピナー」をご用意しました。
「日本ハンドスピナークラブ」公式のハンドスピナーで、黒と白の二色展開です。

f:id:yt-tanabe:20170817161216j:plain:w400

おわりに

以上、明後日土曜日に開催されるRejectKaigiの直前レポートでした!
当日は雨の予報ですが、 @a_matsuda@mrknといったRubyコミッターをはじめとして、 たくさんのRubyistが集まります。

実は・・・参加枠はまだそれなりに空きがあります。ぜひお越しくださいませ!
(このままではハンドスピナーを在庫として抱えることになってしまいます。。)

参加登録はこちら から。

connpass.com

それではRejectKaigiもしくはRubyKaigiでお会いできること楽しみにしています。

Kinesis Firehose、Athena、QuickSightを利用したデータ集積基盤の構築

Speee開発基盤部、兼ヌリカエエンジニアの森岡です。

2017年6月2日に行われたJAWS-UG勉強会【AWS Summit Tokyo 2017】にて、弊社Speeeより hatappi と私が発表させて頂きました。 私が発表した内容はKinesis Firehose, Athena, QuickSightを使って、データ集積基盤を作る。というものです。スライドはこちらになります。

speakerdeck.com

今回は、この発表内容について、補足情報を追加してお話をさせて頂きます。 Kinesis Firehose、Athena、QuickSightを利用したデータ可視化ツールの1つの実装例として見て頂ければと思います。

最初に

f:id:selmertsx:20170710154305p:plain

弊社Speeeでは、ヌリカエという外壁塗装の一括見積もりサービスを運用しています。 外壁塗装を望まれているお客様にヒアリングを行い、お客様の状況に合わせて適切な業者を、 複数社紹介させていただくというサービスです。 ヌリカエでは、お客様への手厚いサポートを一つの価値としており、 CS(Customer Sales 以下 CS)の効率化・品質向上が事業の価値と密接に関わっています。

作ったもの

f:id:selmertsx:20170808165404p:plain

実際に利用されている可視化ツールの一つグラフを上図に示します。 この図では、管理画面にて行っている業務内容と、それらの利用回数などを表示しています。 他にも、いくつかグラフをリアルタイムで見れるようにしており、誰が、いつ、どんな行動を、 どういう案件に対して、どれくらいの時間行っていたのかを確認できるようになっています。

作った理由

ヌリカエにおいては、お客様と直接やりとりをするのはCSの業務となっています。 このCSですが塗装に関する専門的な知識や、地域ごとの相場などの把握が求められ、採用も育成も非常に時間が掛かるものとなっています。そのため、近々においては、お客様及び施工業者の満足度を向上させるために、CS1人あたりの業務の効率化が重要となってきます。

そこで私たちは、CSの各行動をお客様及び施工業者様の満足度毎に集計することによって 最適なCS運用を発見することを目的として、データ可視化ツールの開発を開始しました。 本ツールにおいて、僕たちが取得した指標は下記の通りです。

  • アドバイザーの通話回数
  • アドバイザーの通話時間
  • アドバイザーの管理画面の操作数
  • アドバイザーの管理画面の操作時間

システム構成

f:id:selmertsx:20170710160842p:plain

  • Kinesis Firehose
  • S3
  • Athena
  • QuickSight

本可視化ツールのために、新たに用意したリソースは上記4点です。 AthenaとRDSをデータストアとして利用し、QuickSightでデータを可視化しています。 このシステムについて、データの集積、データの可視化の2つの処理を通して説明します。

データの集積について

f:id:selmertsx:20170710161822p:plain

Kinesis Firehoseとは、任意のデータをAPIを利用して、S3/RedShift に送信できる機能です。 IoTなどの分野での活用を想定されているようで、簡単な設定だけで利用することが出来ます。*1

ヌリカエでは、業務効率化のためにWindows/AndroidアプリもCSの運用に利用しています。 それらクライアントアプリと、管理画面用webアプリの行動ログを、Kinesis Firehoseを介してS3に集積し、 その集積したデータをAthenaに読み込ませることで、分析用のデータを用意しました。

データの可視化について

データの可視化には、Amazon QuickSightを利用しています。 Amazon QuickSightは、AWSから提供されているBIツールです。 re:dashみたいなものというとイメージがしやすいかも知れません。 AWS製のサービスですので、RDSやAthenaとの接続が非常に簡単に実現できます。 費用はユーザーの人数に依存し、1ユーザーあたり$9という非常にお安くなってます。

架電などの行動ログはAthenaから、売上データなどのデータはRDSから取得し、集計しています。

以前、AWS公式のドキュメントにおいて、AthenaはQuickSightの SPICE に対応していないと記載されていましたが、 現在では特に問題なくSPICEにインポートすることが可能とのことです。*2

技術選定の理由

AWSを利用している場合において、一般的に選択肢となるデータ分析のためのツールは、 Redshift、TreasureData、Athenaなどあります。 僕たちは、「データ分析をやり始める」という段階でしたので、 とりあえず実装・料金共に低コストで始めることができる Athenaを選択しました。 分析の複雑度や頻度が高くなったときはRedshiftへ移行する予定です。

結果

f:id:selmertsx:20170710172739j:plain

上の図が、実際に僕たちが表示しているグラフです。

この他にもいくつかのグラフを作って、僕たちはCSメンバーの行動量や成果を、 リアルタイムで確認しています。

このように、Kinesis Firehose + Athena + QuickSightを使って、データ可視化基盤を作ることができました。 この基盤は工数は1営業日、費用は月$10程度で実現することができています。

補足情報

AthenaでのPartition運用について

取得している行動ログは、一月あたり3MB程度でした。

Amazon Athena によってスキャンされたバイト数に対して課金されます。バイト数はメガバイト単位で切り上げられ、10 MB 未満のクエリは 10 MB と計算されます *3

上記の通り、Athenaはデータ読み込み量課金で最小単位は10MBです。 なので、現在 AthenaでPartitionは行っていません。

hatappiの発表資料

AWS Summit 2017 にて行われた hatappi の発表内容はこちらになります。 ECSにおける バッチ運用について // Speaker Deck

Pre Kaigi Sponsor として RubyKaigi 2017 に参加するぞ!

こんにちは!エンジニア組織推進室の中野です。

Speeeは今年、 Pre Kaigi Sponsor として協賛させていただくことになりましたので、ご報告いたします。

f:id:kana-nakano:20170805145008j:plain

※ 出典:「RubyKaigi 2017」Sponsorsより http://rubykaigi.org/2017/sponsors

Pre Kaigi Sponsor とは?

Pre Kaigi Sponsor って何?って思われた方もいるかもしれません。
Pre Kaigi Sponsorは今年初めて設置された枠で、ひとことでお伝えすると、RubyKaigi 開催までの期間に実施するイベントを通じて、Rubyコミュニティの発展を支援し、RubyKaigi 本番を盛りあげていくミッションをもったスポンサーです。

具体的に何をするのか?

RejectKaigi 2017

  • RubyKaigi 2017 【公式】イベント
  • RubyKaigi 2017 のCFP提出者で、惜しくもAcceptの機会を逃された方(つまりRejectされた方)に、ご登壇者としてRubyに関する発表をしていただくイベント
    ※募集の状況を鑑み、一部登壇者資格を変更しております。

  • 詳細

    • 日時:8月19日(土) 13:30開場、14:00~19:30(入退出自由)※懇親会あり
    • 場所:株式会社Speee 4階

connpass.com

RubyKaigi 2017 前夜祭

  • RubyKaigi 2017 【公式】前夜祭
  • Rubyコミッター、本編のスピーカー、海外からの来場者を中心にお招きし、前日(9/17)に実施するパーティ
    ※一般参加枠も設置する予定です。

  • 詳細

詳細が煮詰まり次第、Twitterなどで告知していきたいと思いますので、この機会にフォローいただけると嬉しいです!

twitter.com

なぜ Pre Kaigi Sponser をすることになったのか?

Speeeはこれまで、勉強会やイベントを積極的に実施していたものの、Rubyコミュニティにはいり、中からその発展を支える勉強会やイベントはあまり実施できていませんでした。
イメージとしては地域.rbなどのRubyistのための勉強会やイベントです。

Speeeの注力している技術領域や、みなさんに知って欲しいSpeeeのプロダクトのこと、課題認識の強い技術や事象をテーマに開催していたので、意味を持って取り組んでいるつもりですが、一回一回が「点」での開催になりがちでした。

そこで RubyKaigi 2017 に向けて、Rubyist/Rubyコミュニティのための、「線」で設計した一連のイベントを実施したいと思い、RubyKaigi Teamのみなさまにご相談させていただいたところ、快く承諾いただき、一緒に進めさせていただくことになりました。
お忙しい中、随時ご相談させていただいたり、アドバイスをくださるRubyKaigi Teamのみなさまには本当に感謝しております。

Speee Cafe Meetupを始めとする、色んな勉強会の実施や会場としてお貸しする中で、培ったノウハウ等をRubyKaigiの盛り上げという形で貢献、還元していきたいと考えております。

RubyKaigi 2017にも参加します!

当日のブース出展もさせていただきます。

Speeeって何してる会社なの?が少しでもわかってもらえるように、そしてSpeeeが技術に本気で向き合っている会社であることが伝わるように準備をしていければと思います!
RubyKaigi 2017 に参加された際は、Speeeブースに遊びにきていただければ嬉しいです!

それでは、広島でお会いしましょう!

技術的負債ナイト #fusai_night を開催しました

Speeeエンジニアの id:takanamito です。
7/24に弊社のSpeeeラウンジで「技術的負債ナイト」を開催しました。

4名の方に登壇していただき、私も「ドキュメントとテストのないプロジェクトを引き継ぐ」というテーマで発表させていただきました。

今回のイベントはキャンセル率も非常に低く
参加者に対して行ったアンケートでは5段階の満足度評価で4以上が全体の93%以上を占めるなど
非常に満足度の高い、すばらしい勉強会だったと思います🙌

【増枠】技術的負債ナイト - connpass

発表内容

「Rails アプリの負債と返済方法の事例紹介」by sinsoku_listy

sinsoku_listyさんによる発表でした。
幅500文字を超えるControllerはなかなか強烈でした。
また低品質なコードが混入しない環境をつくるお話や、小さく負債返却をするべきという内容は
SpeeeでもRuby化にともなって頻繁に話されていた内容だったので私も同意です。

「ドキュメントとテストのないプロジェクトを引き継ぐ」by takanamito

私の発表で、つい最近joinしたチームで実際に遭遇した負債と
それにどう向き合ったのかを話しました。詳しくは資料をご覧ください。

speakerdeck.com

「負債返済の下準備・コメント付与祭り〜準備編〜」by ayasuda

ayasudaさんによる発表でした。
開発中にコメントを残すべきタイミングや書くべき内容について触れられており
私もその基準については迷うことが多かったので、とても参考になりました🙏

www.slideshare.net

「RDBに関する技術的負債とその重さ」by joker1007

joker1007さんによる発表でした。
DB設計には細心の注意を払うべき、交渉して機能ごとコードを消す話などとても共感できることの多い発表でした。
また冒頭でお話しされていた"リアル負債"は、おそらくこの会で話されていた中でも最強の負債だったと思います🙀

次回

今回の技術的負債ナイトが好評で、もっといろんな負債の話を聞きたいという声が多数寄せられたため
第2回 技術的負債ナイト開催の検討をスタートしています。

開催が決定した際はこちらのアカウントで告知させていただきます💁
Speee Developer team (@speee_pr) | Twitter

猶予8時間!脆弱性だらけのサービスを堅牢化する実践型研修

Speeeエンジニアの西岡(@nisshieeorg)です。

去る7/5(水)、Speeeでは社内の全エンジニア向けに、セキュリティ研修を実施しました。本研修では、株式会社リクルートテクノロジーズの西村宗晃様に講師としてお越しいただきました。この場を借りてお礼申し上げます。

f:id:nisshiee:20170718161021j:plain

続きを読む