ビットキー: Cloud Run や AlloyDB などの最新サービスを導入し、事業フェーズに合わせて自社プロダクトを進化

Google Cloud Japan Team
独自のデジタル認証技術や暗号化技術を用いたソフトウェア「homehub(ホームハブ)」「workhub(ワークハブ)」のみならず、スマートロック「bitlock(ビットロック)」などのハードウェアまでを独自開発する株式会社ビットキー(以下、ビットキー)。同社が創業以来、Google Cloud を積極活用してきた背景と経緯について、創業メンバーの 1 人であり、VPoT(Vice President of Technology)として、技術選定を担ってきた白木 孝典氏に伺いました。
利用しているサービス:
Google Kubernetes Engine(GKE), Cloud Run, Firebase, AlloyDB など
事業特性や開発者体験を考慮して Google Cloud サービスを活用
ビットキーは「世の中にある人・モノ・サービス、個人と組織など、あらゆるものを『コネクト』することで、それぞれの価値を高めたり、新しい価値を創造すること」をミッションとして掲げてきたスタートアップ。現在は、約 80 名のエンジニアが「homehub」「workhub」「bitlock」など、さまざまなプロダクトを開発しています。ソフトウェアとハードウェア、それぞれのエンジニアがコラボレーションしながら、新規性の高いユーザー体験を創り上げていることが同社エンジニアリングの特徴だと白木氏は言います。


「現在、弊社プロダクトの多くは Google Cloud 上で動作しています。例えば、デジタルキー技術や、顔認証のための機械学習処理を行うサーバーサイドは高い可用性が求められるため、 GKE(Google Kubernetes Engine)を採用しました。また、事業特性やフェーズにより機能の追加や変更が多い領域には Cloud Run を導入し、モバイルアプリについては Firebase をフル活用しています。」(白木氏)
創業当時のメンバーに Google Cloud 経験者は 1 人もいなかったものの、「機能やコストという一般的な観点に加えて、Google Cloud の新しいことをどんどんやっていこうという姿勢が決め手になりました」と、白木氏は導入の経緯を振り返ります。
「開発がモバイルアプリからスタートしたこともあって、特に Firebase の存在が大きかったですね。例えば、最近のアプリは、オフラインでも動作を継続するとか、オンラインになった瞬間に同期を再開して、リロードなくリアルタイムで描画するとかが当たり前に求められます。そういったユーザーが標準的に求める機能や体験性について、特殊な開発なく効率的に実現できたと感じています。特に、限られたリソースで開発しなければならなかった立ち上げ直後にはありがたかったです。」


上図はビットキー製品群を支える最新システム構成図(一部)。「特に奇をてらったことはせず、教科書通りに使っている」と語る白木氏が特にこだわったのはシンプルであること。白木氏は、誰でもすぐに理解できる仕組み、あるいは障害が起きた時にすぐに追える仕組みにすることで、開発者体験を高めたいという狙いがあったと語ります。
「創業時から事業を成長させていくという強い意志がありましたし、事業の成長にはエンジニアの力が不可欠です。どうすればより多くのエンジニアにビットキーで働きたいと思ってもらえるかも念頭に置いて技術選定を進めました。インフラストラクチャーについては、シンプルで保守性が高いことを重視しています。また、Web アプリの開発言語をフロントエンドからバックエンドまで TypeScript に統一することで、開発者がソースコードからシステム全体を理解しやすくなるといったことも意識しています。これには単にハードルを下げるという狙いだけでなく、1 人のエンジニアがフロントエンドからバックエンドまで独力で開発することで、自分がユーザーに価値提供できているという感覚を持ち、仕事に誇りを持てるようにするといった狙いもあります」(白木氏)
ビットキーの技術領域は、TypeScript に限らず、多岐に渡っています。コアとなるデジタルキー技術や、顔認証のための機械学習処理を行うサーバーサイドでは Go を採用しています。また、モバイルアプリの領域では Swift、Kotlin をネイティブで扱うことに加えて、flutter / dart も一部で使用しています。さらに、ファームウェア(組み込みソフトウェア)の領域では、C、C++、Python を用いるなど、領域の特性に合わせつつ、挑戦を加えた技術選定を行っています。


(ビットキーオフィス内でも多くの自社製品が活用されている)
新規サービスを積極的に取り入れ、より理想的なシステムへ
すでに稼働開始して数年が経過しているビットキーのプロダクト。当初から将来を見据えた構成を採用していたため、スタートアップ期のプロダクトで起こりがちな事業やサービス提供を止めるような変更は起きていないものの、新機能追加や、利用動向の変化などに応じて、細かなリアーキテクチャを行っていると言います。
「中でも特に大きかったのが Cloud Functions から Cloud Run への移行です。Cloud Functions は 1 つひとつの関数を個別にデプロイする必要があるため、機能が増え続けていった結果、全体で 300~400 もの関数が生まれてしまいました。しかもこれらが密接に連携しているため、何か新しい機能をリリースするたびに多数の関数を再デプロイしなければならず、大きな負担になっていたのです。そこで、2022 年にこれを Cloud Run へ移行。それまでに蓄積していたナレッジを基に、認証の強度や目的別にサービスをコンテナ化し、管理・運用しやすくしています。」(白木氏)
さらに現在は、Web アプリのデータベースを Firestore から AlloyDB に置き換える取り組みを実施しているとのことです。


「Firestore に不満があるわけではなく、私たちの最新の使い方では、一部のリレーショナルに管理すべき情報は別の環境に任せた方がパフォーマンスを出せるだろうということで、まさに今、移行作業を行っているところです。当初は Cloud SQL を使うつもりだったのですが、移行を開始してすぐのところで AlloyDB が発表され、耐障害性やスケーラビリティの高さなど、用途的にこちらの方が良さそうだと考え、切り替えました。これにより、従来環境でエンジニアがロジックでなんとかしていた部分をシンプルにできるため、開発体験も向上するはずです。将来に向けた海外展開なども視野に入れるなら Cloud Spanner という選択もあるかもしれませんが、現時点では AlloyDB が最もバランスの取れた選択肢だと考えています。」(白木氏)
白木氏は、こうした技術選定において、Google Cloud の選択肢の広さも高く評価。「Google Cloud は、全てを把握するには難しいほどに多種多様なサービスが存在しています。さらに、どんどんと新しいものが提供されますよね」と苦笑いしつつ、今後は Google Cloud のサポートを受けながら、プロダクトを進化させていきたいと言います。
「何か新しいプロダクトをゼロベースから立ち上げる際、どのサービスを組み合わせて使うべきか、私たちが考えるよりも正しい解答を Google Cloud の方々はお持ちだと思うんです。また、現在使い込んでいるサービスについても、そのポテンシャルをすべて引き出せているとは思っていませんので、今後はより Google Cloud の皆様との連携を深めて、開発の効率化につながるサービスやアーキテクチャのベスト プラクティスの理解を深めていきたいです。」


2018 年創業。ID 連携 / 認証 / 権利処理を行うためのインフラであるデジタルコネクト プラットフォーム「bitkey platform」と、その上で動作するアプリ、SaaS、プラットフォームからデバイスまでを開発するスタートアップ。Home(暮らし)、Work(仕事 / 働く)、Experience(非日常体験)の 3 つの事業ドメインに向け、オフィス管理ソリューションや、スマートロックなどの製品を提供している。従業員数は 229 名(2023 年 7 月現在)。
インタビュイー
Vice President of Technology 白木 孝典 氏
その他の導入事例はこちらをご覧ください。