今回はSafie(セーフィー)サービスのシステム構成について概要説明させて頂きます。
※セーフィーはクラウド録画サービス「Safie」を運営しています。
セーフィーでCTOをさせて頂いている森本です。
前回は会社の説明などご挨拶的な内容で終わってしまいましたので、今回はSafie(セーフィー)サービスのシステム構成について少し説明をさせて頂きたいと思います。
Safieのサービスは、ざっくり言うとSafie対応カメラ、Safieクラウドサーバー、Safieアプリケーションから構成されています。
それぞれについては以降で少しだけ詳しく説明しますが、技術領域としてはハードウェア、サーバー、インフラ、アプリケーション、動画配信、データ解析といった要素を全て含みます。この為一般的なWebサービスに比べて関わる技術要素のレンジが極めて広くなっているのが大きな特徴だと思っています。
当然ですがそれらの開発、運用を行う為様々な技術バックグラウンドのエンジニアが在籍し、お互いに意見を交換しながら日々の開発活動を行なっています。
また、プラットフォームと称している理由にも繋がりますが、他社サービスとの連携も行う事を前提としてシステムの開発を行なっています。
セーフィー対応カメラ
Safieクラウドサーバーに接続可能なカメラの事を指します。
弊社では基本的には自社でカメラは開発をしていません。
その代わりカメラ内で駆動するソフトウェアモジュールを開発し、カメラベンダーに配布しています。
このソフトウェアモジュールはネットワーク制御、セキュリティ管理、動画制御、カメラ制御などSafieサービスに必要とされる全ての要素を備えており、当該モジュールを組み込むだけでSafieサービスにサービスインする事が可能となっています。
主としてC、C++が利用されており、一部Pythonなどが使用されることもあります。
セーフィークラウドサーバー
ここでは詳細は省きますが、PaaS上に構築され、全カメラの制御、ユーザー管理、動画配信、画像解析、データ連携などを行なっています。
一般的なメディア系ライブラリ、画像解析系ライブラリがネイティブである事が多いため、親和性も考慮し大部分にPythonを採用しています。
特性上24時間365日サービスを止める事は出来ないので、無停止でのメンテナンス、機能追加にも対応しています。
執筆時点で7万台を超えるカメラを出荷、500台を超えるサーバーが常時稼働しており、約6PB(ペタバイト)のデータが弊社プラットフォーム上に保管されています。
セーフィービューアー
Safieのサービスが利用できるエンドユーザー向けのアプリケーションです。
WebアプリケーションはAngularを、MobileアプリケーションはSwift、Kotlinを採用(開発中含めて)しています。
今の所、カメラの制御、閲覧などの基本機能が利用できる標準アプリケーションに加え、例えば顔認証サービス専用アプリケーションなどを提供しています。
今後は各種サービスの追加に合わせて専用アプリケーションやセーフィー 以外の開発者がアプリケーションを開発できるようなSDKも拡充して行きます。
最後に
第二回と言うことでSafieサービスの全体像について説明させて頂きました。
次回からは各要素の詳細なお話、個別の技術的なお話など中心にご紹介させて頂こうと考えていますので、引き続きよろしくお願いいたします。
セーフィーでは一緒に働いてくれるエンジニアを募集しています!