この度、Inagora Tech Blog が始まる運びとなりました。
初回目は私、梁で担当させていただきます。
弊社は昨年新卒採用も初めて行い、今年は一期生の新卒も入社されました。
めでたくめでたく!
残念ながら、今のところまだ新卒エンジニアがいません。
来年とか、暖かく新卒エンジニアを迎える環境作りに、
Blog 書き込みも励みます!
![tech_01](https://www.inagora.com/wp-content/uploads/2019/05/01.jpg)
会社について
弊社は越境 EC をメインとしており、北京にもオフィスがあり、
両サイドに技術チームがあります。
きっと、日本側で技術チームは何をしているか、想像しにくいであろう。
![tech_02](https://www.inagora.com/wp-content/uploads/2019/05/02.jpg)
実は、かなり複雑で多くの業務がシステムを頼っています。
日本オフィスは発注業務と倉庫の入出荷、さらに通関手続き資料の作製がメインに行っています。
最近、発注後の請求関連も徐々に人的作業からシステムへとシフトしてきているところです。
このように、若手メンバーが高いチーム力で、業務改善にコミットしています。
![tech_03](https://www.inagora.com/wp-content/uploads/2019/05/03.jpg)
さらに、日本発注の根拠は、北京で消費者に密接するBDチームが主導しています。
北京の発注要望業務があり、日本のサプライヤーとコミュニケーションを取るチームが発注を行います。
その後、入荷できた結果を北京の販売プラットフォームに在庫情報を渡します。 その間には、システム連携がいくつものステップがあります。
さらに、販売プラットフォームと連携し、出荷した際、北京のシステムからお客様に通知できるよう、連携もしています。
日中のシステムの全体構造は結構膨大なので、業務紹介はこの辺に置いときます。
技術の話に行きます。
複雑の業務を支えるログ収集基盤
読者でエンジニアをされている方、
どのようなログ収集を普段されて、使われてますでしょうか?
弊社はベンチャーとして自負しています。
創業者の翁さんを始め、アイデアパーソンが多く、
日頃、使用の追加、変更が多くあります。
私たちは、可能な限り、要望に速やかに対応し、優先順位の調整が柔軟に変更できるチームです。
この柔軟さが実現できたのは、技術力はもちろん、調整力も抜群のマネジャー陳さんのおかげです。
![tech_04](https://www.inagora.com/wp-content/uploads/2019/05/04.jpg)
![tech_05](https://www.inagora.com/wp-content/uploads/2019/05/05.jpg)
複雑の上、時には予想外の操作も行われたりします。
ログはトラブルシューティングや、効率改善に非常に重要な役割を担っています。
ログといっても数種類があります。
今回はタイムリーに見られるログについて話します。
しかも、この仕組みはどこかのミドルウェアではなく、
北京チームが独自でカスタマイズしたツールです。
その名は、ガーフィールド。
ちょうど、北京でノウハウを得てきた孫さんより、社内勉強会を行いました。
その風景と概要を紹介します。
![tech_07](https://www.inagora.com/wp-content/uploads/2019/05/07.jpg)
ガーフィールドのアーキテクチャ
![tech_10](https://www.inagora.com/wp-content/uploads/2019/05/Garfield1.jpg)
ガーフィールド
![tech_09](https://www.inagora.com/wp-content/uploads/2019/05/図1.png)
お見せできるのは限られるが、左上から説明します。
前提として、app 上で、実行ごとに、Debug Id を乱数で生成してあります。
それがツール上にも出ます。
これを用いて、 真ん中のテキストボックスより絞り込み可能です。
二つ目は timestamp で、開始時間と終了時間で絞り込み可能です。
三つ目は ドメインになります。弊社はいろんなサービスがこのツール上で確認するため、見分けとしての情報が必要です。
四つ目はリクエストされた url です。これも絞り込み可能です。
それと、行をクリックしたら、下のスペースに詳しい情報が出ます。
そのリクエストの結果を返すのに、いくつか SQLを使ったか、何秒かかるかがわかります。
開発上、パフォーマンス改善にもとても実用的な機能です。
画像ではお見せしませんが、 API の場合、どのようなパラメータも確認できます。
仕組み自体は Docker と node.js 等を使っています。
孫さんがこの勉強会にも話しています。
![tech_06](https://www.inagora.com/wp-content/uploads/2019/05/06.jpg)
尺的にどこまで話せるか躊躇しているのと、結構挨拶文長く書いてしまったため、今回は割愛します。
後日、孫さんからアップするかもしれません。
では、引き続きよろしくお願いします。
![tech_08](https://www.inagora.com/wp-content/uploads/2019/05/08.jpg)