【第1回】alie+の技術構造 ― スマートホームを支える堅牢なアーキテクチャ

こんにちは!プロダクト開発グループに所属している槇です。

アクセルラボが提供するスマートホームサービス「SpaceCore」。その中核を担うのが、私たちが「自社開発」したIoTプラットフォーム「alie+」(アリープラス)です。alie+は、多種多様なデバイスを繋ぐ「IoTプラットフォーム」として、私たちの目指す「スマートライフ」を実現するための心臓部と言えるシステムです。

紹介する「alie+」(アリープラス)は、下図の青枠部分にあたります。

サービス構成

本連載では、この「alie+」の技術的な側面を3回にわたって深掘りしていきます。

第1回は、alie+を支える技術アーキテクチャがテーマです。ユーザーが体験する「いってきます」の一言で家電が動く、その裏側にある堅牢なシステムの全体像と、私たちが採用している技術スタックについて詳しく解説します。

なお、私たちがalie+を自社開発するに至った経緯については、こちらの記事で詳しく紹介していますので、ぜひ併せてご覧ください。

tech.accel-lab.com

alie+の心臓部:スケーラブルな技術アーキテクチャ

alie+は、複数の技術を組み合わせたスマートホーム統合プラットフォームです。その中核をなすのは、堅牢でスケーラブルなアーキテクチャです。

アーキテクチャ概要

alie+は多種多様なベンダーのクラウドサービスと連携し、様々な通信規格のデバイスを統合管理します。このアーキテクチャの鍵は、「操作の抽象化」にあります。

例えば、A社とB社の照明をONにするAPIは内部的に全く異なります。この差異を、各ベンダー専用のモジュールが「翻訳者」の役割を果たし、吸収します。coreモジュールは「照明をONにする」という統一された命令を出すだけで、各モジュールがデバイス固有の命令に翻訳します。

この仕組みにより、新しいデバイスベンダーへの対応が迅速かつ柔軟になります。関連ロジックはベンダーごとにnpm package化し、AWSのLambda Layerとして各Lambda関数から参照します。これにより、コードの共通化、効率的な管理、デプロイパッケージの軽量化を実現しています。

alie+概要

主要技術スタック

  • TypeScript/Node.js ベースのバックエンド

alie+の主要なシステムは、TypeScriptというプログラミング言語で作られています。API(アプリ間のデータ連携部分)を作る際には、Koa.jsというフレームワークを採用しています。また、システム全体を小さな機能ごとに分けるマイクロサービスアーキテクチャという仕組みを取り入れることで、それぞれの開発を効率的に進め、不具合の発生リスクを低減しています。

  • AWS クラウドインフラ

AWS CDKを活用して環境構築を自動化し、再現性の高いインフラを実現しています。APIはAPI Gateway + Lambda、定時バッチはEventBridge + Lambdaというサーバーレス構成を基本としており、高い可用性とスケーラビリティを確保しています。その他にも、DynamoDB、SNS、Step Functionsなど、用途に応じて最適なAWSサービスを組み合わせて活用しています。

  • 依存性注入(DI)フレームワーク

InversifyJSを使用することで、モジュラーで拡張可能なアーキテクチャを実現しています。

CI/CD

開発の効率化と品質担保のため、CI/CDパイプラインを構築しています。ソースコード管理はGitHubで行い、GitHub ActionsやCircleCI、AWS CodePipeline、AWS CodeBuildを連携させることで、ビルドからテスト、デプロイまでの一連のプロセスを自動化し、開発効率と品質の両立を実現しています。

次回予告

今回は、alie+の基盤となる技術アーキテクチャについて解説しました。 次回は、このアーキテクチャの上で「どのようにして多様なメーカーのデバイスを繋ぎ、連携させているのか」、デバイス統合と自動化の仕組みの秘密に迫ります。どうぞお楽しみに!

📩 お問い合わせ・採用情報

本ブログを読んでいただきありがとうございます。 もし内容にご興味を持っていただけましたら、以下よりお気軽にお問い合わせ・ご応募ください。

スマートホームの導入をご検討中の企業様へ:

👉お問い合わせ - SpaceCore(スペースコア)

技術にご興味を持たれたエンジニアへ:

アクセルラボではエンジニア採用を強化しています。 私たちの技術やビジョンに共感し、スマートホームの未来を共に創っていきたい方のご応募をお待ちしています。

👉 Accel lab 採用サイト - アクセルラボのリクルートサイト