"スケーラブル"なARクラウドプラットフォームを作る
イントロダクション
ARと聞いて何を思い浮かべますか?
「なぜそれが重要なの?」と思いましたか?
ARとは、artificial reality(人工現実感)を意味しています。
ポケモンGOを思い浮かべてください。視界の中に「フェイク」の画像・映像があるのです。つまり、実際にはそこにないものを物理的に見ることができるのです。不思議な発想ですね。
プレティアでは、技術が向上し、視覚と技術が同じものになったとき、つまりARが本当の意味でAugumented Realityになった時、この技術が私たちの日常生活に「なくてはならないもの」になることに賭けています。
将来、AR機能を搭載したメガネが今と同じ日常的なものとなり、レンズの中にテキストメッセージを見ることができるようになります。
最近では、車のフロントガラスに現在の速度が表示されるヘッドアップディスプレイが搭載された車に乗ったことがある方もいると思います。ARは人類を助ける非常に強力なツールなのです。
ARの未来について語るのはこのくらいにして、実際に未来を構築することについて話しましょう。ARを実現するためのシステムを構築するにあたって、私たちが直面した課題や考えていることを、順を追って説明したいと思います。
プラットフォームから始まった
当初は、マルチプレイや "フェイク" 画像の表示など、開発者が独自のARアプリケーションを構築するために必要なさまざまなサービスを提供するプラットフォームを構築していました。
最初は数人のお客様から始まりましたが需要が増え、利用者も増えてきました。そのため、ある時からプラットフォームが頻繁にクラッシュするようになりました。クラッシュが発生した時はサービスの再起動を手動で行う必要がありました。
私たちのチームは、プラットフォームを最適化し、最終的にスケーリングをサポートするために何ができるかを考え Kubernetes と Terraform を導入することにしました。
"Infrastructure as Code"
Kubernetesは、何百、何千ものサービスをいつでもオンデマンドでデプロイ、再デプロイできるようにするための驚くほど強力なサービスです。TerraformはInfrastructure as Codeであり、IaCとしても知られています。両者を組み合わせることで、我々は簡潔でバランスのとれ、下記のことを実現できるプラットフォームを作り上げました
スケーラブルなプラットフォームを持つことで、クラウドプロバイダーのリソース使用量を削減し、より効率的な運用が可能になりました。つまり、積極的に使用するリソースを削減することができるのです。
開発者は、経験の有無に関わらず、スケーラブルなサービスを書くことができるようになります。また、きちんとしたプロセスが確立されているため、製品リリースまでの時間を短縮することができます。
スケールはどこにあるのか
将来的には、AR技術は利用が拡大する一方なので、それを見越したサービスやサーバーが必要になってきます。
そこで、私たちはシンプルな設計とスケーラビリティを重視しました。テストと検証、そして現在の利用状況を鑑みると、これは将来的に「スケーラブル」なものになると確信しています。
著者