読者です 読者をやめる 読者になる 読者になる

株式会社ネクスト エンジニアBlog

不動産・住宅情報サイト HOME'Sを運営する株式会社ネクストのエンジニアが提供する技術ブログです。エンジニアに役立つ情報の発信や、弊社エンジニアの活動を中心にお届けします。

FinTechの次はReTechだ! 不動産×ITの最前線レポート@FIT2016 前編

レポート 機械学習 ReTech

こんにちは。おうちハッカーの石田@リッテルラボラトリーです。

みなさんは、ReTechって言葉を聞いたことはありますか?
おそらく聞いたことのあるFinTechは、Financial Technologyの略で、金融をITや情報技術で新しいサービスを生み出したり、既存の問題を解決する動きのことです。

ReTechは、Real Estate Techの略で、不動産領域の問題をテクノロジーで解決する動きのことです。 アメリカでは、FinTechは既に様々な分野で技術が導入され、レッドオーシャン状態になっているため、次に来るのはReTechだ!と言われております。
f:id:nextdeveloper:20160912172829j:plain
http://www.mckinsey.com/   *1

こちらは、各産業において、どの程度情報技術が入っているかを示した図となります。 金融、保険については、図の上の方でほとんど緑となっており、かなり技術が入ってきていることが分かります。 一方で不動産領域は赤や黄色ばかりで、まだまだITが入ってきていません。

実際に米国では、Real Estate Techに対する投資が増加しているそうです。

zuuonline.com *2

そこで先日、FIT2016 第15回情報科学技術フォーラム@富山大学で行われたイベント企画、 「Real Estate Tech:不動産×IT 〜ITが拓く不動産の未来〜」に参加してきました。*3
今回は日本における不動産×ITに携わる、大手不動産ポータル、スタートアップ、研究者たちが一堂に会したReTechの最先端技術の発表の模様をお届けしようと思います。登壇者の方々はこちらとなります。

f:id:nextdeveloper:20160912175343j:plain ビジネスサイドとアカデミックサイドそれぞれ3講演ありましたので、前編では、ビジネスサイドの3講演をご紹介します。

*1:本イベントを企画された東大・山崎先生が導入に使われた資料となります。

*2:同じく山崎先生が導入に使われた資料となります。

*3:近い日程でFIT2016という同名のイベントが行われたようです。もう一つのFIT2016は日本最大のFinTechのイベントだそうです。
http://www.nikkin.co.jp/fit2016/

続きを読む

Zipkinを導入してみた(Ruby編)

こんにちは。技術基盤部の磯野です。 ちょっと間が空いてしまいましたが引き続きZipkinです。 今回は Ruby + Sinatra で動いている Webアプリケーションへのトレーサーの導入です。

前々回の記事 → Zipkinを導入してみた(サーバー編)
前回の記事 → Zipkinを導入してみた(PHP編)

  • 構成
  • CompositeAPIでの処理の流れ
  • RestAPIでの処理の流れ
  • 処理の流れを追跡するためのリクエストヘッダ
  • app.rbの設定 (CompositeAPI, RestAPI共通)
  • monkey_patch/zipkin_tracer の実装
  • HTTP::Requestクラス用のzipkinトレース処理用メソッド
    • 使い方
  • 結果
  • 終わりに

構成

Rubyのライブラリは公式の zipkin-tracerを導入します。

構成はこのような感じです。 f:id:nextdeveloper:20160906172420p:plain 画像のアプリケーション・フレームワーク → Zipkin Sinatra

続きを読む

mruby + ngx_mrubyでアプリケーションを実装するという選択肢

はじめまして、技術基盤部の相原(kaihar4)です!

今回は、アプリケーションのクラウドサービスへの移行の一環で、 Amazon S3から取得した画像URLを含むファイルを元に、そのURLの外部画像を取得して返す機能mrubyで書き直してAWSに移行した話をしていきたいと思います。

この機能は元々モノリシックなアプリケーションの一機能として動いていたもので、これを切り出してAWSに移行するというのが今回私に与えられたミッションでした。 このアプリケーションは歴史が長く、その間ほとんどメンテナンスされていませんでした。 ディストリビューションは古くPHPのバージョンも4系、したがってそのまま持っていくという選択肢はなく、AWS上に新規にインスタンスを構築することになります。 弊社にはAPI部分をPHPからRubyに移行する方針があるということもあり、Amazon Linux上にRubyで書き直したこの機能を移行するというのが妥当な線でした。 しかしアプリケーションの性質上Unicornはプロセスモデル的に適さないですし、そもそもこれだけの機能のためにアプリケーションサーバを用意するということにも違和感がありました。

そこであがってきたのが、mrubyでこの機能を実装しngx_mrubyで動かすという選択肢です。 mrubyであればRubyと(ほぼ)同じシンタックスで実装することができ、それをngx_mrubyで動かすことでウェブサーバがそのままアプリケーションサーバとして振舞うことができます。 開発者を多く確保できるmrubyと弊社での運用実績があるnginx、これらを使う旨を運用チームへ相談の末、このプランで行くことに決まりました。

このように置き換わるイメージです。 元々キャッシュをするように作られていなかったので、この機会にRedisによるキャッシュも入れました。 f:id:nextdeveloper:20160810122507p:plain ロゴ: Amazon S3, redis

ここからはmrubyngx_mrubyについてと、いかにこれらでこの機能を実装したかについて書いていきます。 本エントリを通してmruby + ngx_mrubyでアプリケーションを実装するという選択肢の現実味を感じていただければと思います。

続きを読む

FIT 2016(情報科学技術フォーラム)@富山にて登壇・出展します

こんにちは、リッテルラボラトリーの清田です。

来たる9月7日(水)〜9日(金)に富山大学で開催される第15回情報科学技術フォーラム(FIT 2016)のイベント企画にて、リッテルラボラトリーの石田・清田が登壇することになりました。

あわせて、ネクストとしてブース出展も行います。

多くの方々のお越しをお待ちしております!

続きを読む

Zipkinを導入してみた(PHP編)

こんにちは。技術基盤部の磯野です。 先日に引き続きZipkinです。 今回は PHP + Symfony で動いている Webアプリケーションへのトレーサーの導入です。

前回の記事 → Zipkinを導入してみた(サーバー編)

  • 構成
  • 処理の流れ
  • 処理の流れを追跡するためのリクエストヘッダ
  • fluentdの設定
  • PHP(Symfony)側の実装
    • クライアントライブラリ
      • Hoopak
      • Apache Thrift
    • ソースコード
      • DI用設定ファイル(抜粋)
      • イベントリスナクラス
      • サービスコンテナクラス(イベントリスナにDIする用)
      • 足りない機能を補充するためのラッパークラス
      • WebAPI呼び出しのロギング追加
  • 出力

構成

PHPは非同期に処理ができないので直接Zipkinサーバーにに投げるのではなくローカルのfluentdを利用してできるだけ短時間で処理が終わるようにしています。

f:id:nextdeveloper:20160704145103p:plain 画像のアプリケーション・フレームワーク → Zipkin Symfony2 Fluentd Sinatra

続きを読む

電気通信大の人工知能先端研究センター(AIX)にサポーター企業として参画します

こんにちは、リッテルラボラトリーの清田です。

このたび、電気通信大学に新設される人工知能先端研究センター(AIX)に、サポーター企業としてネクストが参画することになりました。

リッテルラボラトリーでは、電気通信大の栗原研究室と、ソーシャルメディアを通じて住まい探しユーザーを理解することを目指した共同研究を推進してきました。その成果は、人工知能学会全国大会 (JSAI 2015)や、2015年12月にシンガポールで開催された国際ワークショップ DOCMAS/WEIN 2015などで発表しております。

続きを読む

Zipkinを導入してみた(サーバー編)

AWS zipkin

こんにちは。技術基盤部の磯野です。 弊社ではここ数年、HOME'Sのクラウド化やマイクロサービス化を推進しています。

アプリケーションのクラウドサービスへの移行に関してはそろそろ終わりが見えてきているのですが、 マイクロサービスに関してはまだまだ道半ばということもあり、推進していくにあたって、 各サービス間の依存関係やトレース情報を可視化する手段としてzipkinをAWS上に試験的に導入してみました。

今回はZipkinサーバーの導入までの手順についてまとめたいと思います。

  • Zipkin とは
  • データストレージの選択
    • InMemory
    • MySQL
      • いいところ
      • 残念なところ
    • Cassandra
      • いいところ
      • 残念なところ
    • Elasticsearch
      • いいところ
      • 残念なところ
  • 基本構成
    • サービスのインストール
      • MySQLの設定
      • zipkinのインストールと確認用の起動
      • supervisordのインストール
    • おまけ
      • zipkinのすぐに使いそうな環境変数

Zipkin とは

分散環境における各サービスの呼び出し状況を収集・可視化できるシステムです。
文字だけだとよくわかりませんが、サービス間の呼び出しをこんな感じで可視化できるサービスです。 f:id:nextdeveloper:20160628165142p:plain ※個人環境のデータです。

続きを読む