トレタ開発者ブログ

飲食店向け予約/顧客台帳サービス「トレタ」、モバイルオーダー「トレタO/X」などを運営するトレタの開発メンバーによるブログです。

「トレタ Advent Calendar 2016」やります

こんにちは。ボケ防止に数学検定の問題集解くのが最近のマイブーム、サーバーサイドエンジニアの芹沢です。今年、数学検定2級を受験して2次試験不合格により見事に落としましたので来年リベンジします。

今年も残す所あと僅かとなり、みなさまに置かれましてはそろそろアドベントカレンダーの担当日の締め切りが気になり始める頃ではないでしょうか(自分は2015年は3つ参加してましたが日々いい感じにプレッシャーを感じながら師走を過ごした覚えがあります)。

今年はトレタもアドベントカレンダーにTryしてみることにしました。私も3日分参加する予定です。

f:id:serihiro:20161129141218p:plain

現在、弊社の開発部は総勢19名(エンジニア+デザイナー+プロジェクトマネージャー)ということで、総員でアドベントカレンダーに挑んでも1人辺り1.25記事書かないと埋まらない厳しい戦いを強いられております。
そのため、毎年のアドベントカレンダーを楽に25日分埋めてくれるエンジニア・デザイナーを広く募集しております。応募等の詳細はこちらからどうぞ。

ログ収集サービスのlogdnaを試す

佐野です。ここ2ヶ月くらい坐骨神経痛を患って、座ると痛い、立つと痛い、歩くと痛い、朝起きると痛い、くしゃみすると痛い。靴下がはけない(痛いから)、しゃがめない(痛いから)、夜痛みで目が覚める。という生活をしています。こちらの記事( 頭痛に耐えかねて自殺する人も…【激痛を伴う病気ワースト5】 )によると、痛すぎる病気ワースト4位らしいです。さて、ご近所のplaidさんからlogdnaというログ収集サービスを教えていただいたのですが、試してみました。

logdna

ローンチは2016年、つまり今年のようです。fluentd同様、エージェントをサーバに棲ませて、それがログをlogdnaに転送します。トレジャーデータ似ていますが、まだ機能は少なくて分析などはできないです。特定文言のハイライト、通知、grep...など全サーバのログを一覧するような用途には良さそうです。rtailのホスティングサービスような感じです。

次の画像はとあるrailsサーバ群のauth.logを"CRON"という文字列でtail/grepしつつ、openという文字とcloseという文字をハイライトさせたときの様子です。

f:id:hiroakis:20161102143155p:plain

所感

使ってみた所感なのですが、

  • 安い

といった印象です。ただログを集めて一括で参照したいだけなら非常に楽です。トレタでは /var/log/syslog/var/log/auth.log などを収集対象にしてお試し運用中です。アプリケーションが吐くサービスのログは結構量もあり、今のログ基盤(fluentd->アグリゲータ->BigQuery)で十分ワークしているので移し替えるつもりはないです。

コンフィグとエージェントを配置すればよい

上述しましたが、エージェントがlogdnaに対象のログを転送します。コンフィグは次のような形式で、対象のログファイルまたはディレクトリを指定してエージェントを起動するだけです。ディレクトリ指定の場合そのディレクトリ配下の .log が対象になります。コンフィグは正規表現も受け付けます。tagsというのはサーバのロールのようなもので、例えばrailsサーバにはrails、worker用のサーバにはworkerなどと指定しておけば、logdnaのGUI上でグルーピングしてくれます。keyはlogdnaのアクセスキーです。

logdir = /var/log/syslog,/var/log/auth.log,/var/log/logdna-agent.log,/var/log/monit.log,/var/log/dpkg.log,/var/log/mackerel-agent.log,/var/log/td-agent/td-agent.log
tags = {{ logdna_group }}
key = {{ logdna_key }}

エージェントはnodejsで書かれていて、rootで動きます(!!)。収集対象のログにエージェントが収集可能なパーミッションを与えておく...のではなく、root権限をもったエージェントがコンフィグに指定されたログを舐めていきます。エージェントのソースはgithubにホスティングされています(https://github.com/logdna/logdna-agent)。さらっと見たんですが怪しいことはやっていなかったですw ソース自体もそれほど大きくなく、まだはじまったばかり感があります。

リテンションは〜30日

課金によって変わりますが、永遠に保存/参照可能にしておくことはできないです。GUI上で設定しておけば、日次でs3(オレゴン)にログアーカイブしてくれます。バックアップ用途としても一応使えます。

GUIは少しバグっているところもある

たまにバグっています。アカウントのオーナーのつけかえをしたらオーナーがいないように見えるw 一応、オーナーを付け替えた方のアカウントはオーナーとしての操作ができることは確認したので大丈夫なのですがw

f:id:hiroakis:20161102135819p:plain

また、ちょっと出力の量の多いログを転送してみたら描画が追いつかないのか、たまに画面が消えることもあったw

気がついたらfluent-pluginもリリースされてた

fluentプラグイン書いてみようとか思ったらつい先日できてたw

まさに今はじまったサービス、という印象です。

おわり

AngularConnectに参加してきました

こんにちは、トレタのウェブフロントを担当している吉田です。
トレタではウェブ予約やトレタ(Web版)などAngularプロジェクトが数多くあります。

業務の一環でトレタのカンファレンス補助制度を利用して、AngularConnectに9/27,28と両日参加してきました。
(NgConfに行きたかったのにすぐチケットが埋まって行けなかったのは内緒です。)

f:id:teyosh:20161018164921j:plain

AngularConnectとはEUから離脱をしてしまうことが確定しているイギリスはロンドンで毎年開催している最大級のカンファレンスとなっています。
今年の目玉は何と言っても開催2週間前に発表されたstableになったAngular 2です。

こちらのカンファレンスはその日の初回にキーノートがあり、それが終わると発表2つ ワークショップ1つ 質問1つ Q&Aセッション1つ とセッションが4つに別れます。

発表に関してはセッションリストからスライドやYouTubeのURLが公開されているので、気になるものをピックアップして見ると良いかと思います。

http://angularconnect.com/2016/sessions/

幾つか自分が参加したセッションを紹介したいと思います。

Day1 Keynote

キーノート前半ではAngular2やエクステンションの紹介、これからのバージョンに関する事柄が話されました。
メジャーリリースは6ヶ月のサイクルとなり、2017年3月にはバージョン3がリリースされる予定になっています。

後半では開発者であるMiško Heveryがパフォーマンスについての発表を行いました。

www.youtube.com

Secure your Angular applications

主にウェブアプリの攻撃方法はどういうものか、防ぐためにはどうするのかを論じています。
それらに対し著名なライブラリーはどうのような処理を施しているかを紹介しています。
AngularでContents-Security-Policyを利用するにはどのようにするかなどWebアプリを作成する上で重要な事柄がわかりやすく説明されています。

www.youtube.com

The Angular 2 Compiler

バージョン2ではTypeScriptを利用してAngular自体を開発しており、アプリケーション自体もTypeScriptを利用することがmore betterとされています。
TypeScriptからJavaScriptへコンパイルする際にどのようになっているか、どのようにパフォーマンスを得ているかなどの説明がされています。
AoTの初回ロードの優位性なども説明しており、どのコンパイル方法が望ましいかの指針になります。

www.youtube.com

Day2 Keynote

2日目のキーノートでは開発者のIgorとRobがアプリケーションの始め方と書き方を対話形式で紹介します。
一通り現時点でのベストプラクティスを学べます。Angular1を利用の方もバージョン2をrcで利用していた方もどちらにもおすすめです!!

www.youtube.com

RxJS 5 - Thinking Reactively

AngularではObservableを利用するためにRxJSを利用しています。
どのようにRxJSを使うのか、概念はどうなのかなどRxJSの入門的な情報満載です。

www.youtube.com

Angular 2 Forms

バージョン2にはもちろんFormsも用意してあります。
Formsではtemplate-drivenとReactiveの2つ書き方があり、両方を同じサンプルを用いてライブコーディングで発表していきます。
アプリケーションによりどちらが良いかをうまく選べると思います。
タイピングが正確で早いのでそれも必見です。

www.youtube.com

Testing Angular2

テストは使っている人も多いKarmaとJasmineの組み合わせで発表しています。
Angularではモジュールであったりコアであったり親和性の高いテストAPIが用意してあり、それを使うことにより書きやすい様になっています。

www.youtube.com

まだまだ他にも有用な情報がいっぱいありますので時間がある方はご覧になってみてください。

海外カンファレンス補助制度

トレタでは海外カンファレンスに積極的に参加して技術や情報を得るために補助を出す制度があります。
昨今のAirBnBなどを考慮して、渡航費とカンファレンス参加費を全額支給します。
ホテルに泊まるもよし、AirBnBで楽しむもよし。

トレタでは食べることや技術が好きな仲間を募集しています。

www.wantedly.com

www.wantedly.com

www.wantedly.com

www.wantedly.com

© Toreta, Inc.

Powered by Hatena Blog