aptpod Tech Blog

株式会社アプトポッドのテクノロジーブログです

IoTデバイスのスループットがサクッと上がるかも

「データが上がって来るの遅いけど、電波悪いからしょうがないな〜」なんてアッサリ諦めてないでしょうか?

そんな方に「BBRを有効にすればスループットが上がるかも!」という話を、aptpod Advent Calendar 2019の9日目ではお送りします。担当のサーバーサイドエンジニアに憧れるエンベデッドエンジニア ochiai です。

はじめに

この記事では、BBRを有効にする方法と、スループットの実測にフォーカスしています。

なので、「BBRのアルゴリズムが知りたいんだよ!」とか、「輻輳制御アルゴリズムって何なのさ?」って方は、他の資料を参考にしてください。オススメを記載しておきます。

続きを読む

GoでOpenTracingをやろう

f:id:apt-k-ueno:20200107191215j:plain

はじめに

こんにちは。 アドベントカレンダー 8日目担当、 サーバーサイドエンジニアの miyauchi です。

昨年は「 Goとクリーンアーキテクチャとトランザクションと」と「Vim初心者から中級者の入り口くらいまで」を書きました。 早いものでもう一年経つのですね。

さて、弊社ではバックエンドシステムを従来のモノリス型のサービスから、徐々にマイクロサービスへ移行中です。 そんな中で分散トレーシング(とりわけOpenTracing)について調査する機会がありました。

よって、今年はGoのアプリケーションで、OpenTracingを使うときのコード集を、解説ありで書いていきたいと思います。 「OpenTracingとは!」や、「分散トレーシングとは!」のような概念部分は書きません。 また、OpenTracingのTracer実装であるjaegerについても詳細は書きません。

OpenTracingを使ったサンプルコード中心で、 チュートリアルに毛が生えたくらいの入門記事となります。

OpenTracingの具体的な使い方については、案外まとまった記事がないのかなと思ったので書こうと思ったわけですが、 一方で、少し今更感もあります、、、が、張り切っていきましょう!

続きを読む

CAN FDことはじめ

aptpod Advent Calendar 2019 6日目担当のエンベデッドチーム 久保田です。

仕事で関わることの多い自動車関連の技術について、少しお話させていただこうと思います。

intdash Automotive Proは、自動車産業における車両CAN(Controller Area Network)データのデータロギング、データ管理、可視化・解析などのワークフローをクラウドシステムをベースにワンストップで実現するSaaSソリューションです。
このソリューションで車両CANを扱っていますが、CANの拡張型プロトコルであるCAN FD (CAN with Flexible Data rate)についてはご存じない方もいらっしゃるのではないでしょうか。
CAN FDについて調べると、ハードウェア仕様の話から始まる難しい記事ばかりです。
そこで、ソフトウェアエンジニア目線でCAN FDについてまとめてみました。
CAN FDについて、ざっくり知りたい方向けです。

続きを読む

エッジデバイスとクラウドのエンドポイントの出力結果を合わせるのに苦労した話

本ブログへいらっしゃったみなさま、初めまして。aptpod Advent Calendar 2019 5日目担当のsetoです。入社4ヶ月(2019/12/05現在)で、機械学習系の案件や自社プロダクト付加価値向上のための技術調査に従事してます。社内メンバーの技術領域が多彩で刺激を受けながらお仕事しています。

本記事では、エッジデバイスに採用したJetson Nanoの出力結果とクラウド推論に採用したAmazon SageMakerのエンドポイントの出力結果が同じにならない問題に遭遇し、解決するのに苦労した話です。

この記事を要約しますと、"読み込んだ画像のピクセル値が環境が違うと同じにならない"という検証すればすぐわかる問題に自分の思い込みのせいでなかなかたどり着けなかったという経験談を書いております。

取り組みの背景

弊社が開発を進めているシステムは、ディープラーニングの推論をクラウドとエッジデバイスの別々の環境でおこなっています。推論結果の一貫性を保つため同じ入力で同じ結果が出力できるように調査と対応を行うのが取り組みの背景です。

具体的には、クラウドの推論にAmazon SageMakerでApache MXNetを使用した機能を利用し、エッジ側はAmazon SageMaker NeoとNeo-AI-DLRを利用しました。この取り組みのゴールはこれらの異なるフレームワークから出力される推論結果を一致させることです。

続きを読む