【Axelspaceの社員 #03 (エンジニア編)】宇宙ベンチャーでのウェブ開発ってぶっちゃけ何してるの?
是非、この記事を読んで、アクセルスペースのとあるソフトウェアエンジニアの1日を知っていただけますと幸いです! アクセルスペースって一般的には人工衛星作っている会社、いわゆる製造業というイメージが一番強いのですが、実は自社の人工衛星から得た人工衛星画像データや衛星分析データ等をAxelGlobeという専用プラットフォームにて提供しているITサービスも展開しているんです! (知ってましたか?) 今回は、そのAxelGlobeの開発を担っているソフトウェアエンジニア金子に仕事内容について質問してきました!
チームについて教えてください!
AxelGlobeの中で各種プロダクトを提供するインターフェース部分や、顧客データ(AOI: Area Of Interest), ユーザー情報、契約情報)を扱ったりと、AxelGlobeは様々なシステムから構成されており、それらをバックエンドエンジニアとフロントエンドエンジニアで開発しています。 チームメンバーは世界中から集まっているため、チームメインのコミュニケーション言語は英語です(が、社用語が日本語と英語なのでどちらも使ってます) あと最近、シュトレンとコーヒーを食べて、それぞれを単独で食べるよりも、一緒に食べた方がより美味しく感じる経験をしたんですよね(笑)それをコーヒーとシナモンロールが好きな同僚に話したところ、「スパイスとスパイスベースのコーヒーは仲良しだよ」ということを教えてもらいました(笑) メンバーの多くが在宅勤務しているので、リモートにも関わらず、ランダムな雑談をでチームメンバーと話せるような環境は良い気分転換になります。
仕事内容について教えてください!
バックエンドエンジニアとしての私の仕事内容は下記のようになっています: 1.AxelGlobe UserがAxelGlobeが提供するデータにアクセスするためのAPI提供 2.AxelGlobeの管理機能のためのAPI提供、およびそれらデータ管理 3.請求・支払などお金を扱うシステムおよび各種Payment Gatewayとの連携 4.顧客が希望するAOI取得する衛星運用システムとの連携 5.顧客が希望するデータ取得するデータ処理パイプラインとの連携
どういった技術を使用しているんですか?
使用言語は主にPython3です。 システム運用はAWSを使っていて、Serverless Systemを中心に構成されています。AWSのインフラリソース管理にはTerraformを使っており、データベースはPostgresqlとGISデータを扱うための拡張である、PostGISを主に使用しています。あと、エラー検知システムはAWS CloudWatch Logs/Alarmを利用して構築しています。 AxelGlobeのデータはSTAC Specification(STAC Spec)といったGIS標準仕様に対応できるようにしないといけません。 STAC Specとは?といったところですが、地理情報システム(GIS:Geographic Information System)のエコシステムには、座標情報をもつデータを、どのようにサーバー・クライアントシステムでやりとりするかを定めた標準仕様がいくつかあって、GISの標準化団体(OGC:Open Geospatial Consortium)が管理しているAPI familyや、地理空間データプロバイダーのコミュニティが標準化しているSTAC Specがそれらにあたります。 近年、衛星コンステレーションビジネスの台頭や衛星データのオープンソース化などにより、地球観測データの時間分解能が上がってきており、時系列変化検知などの解析が現実的になってきました。 この背景から、座標情報に時系列情報を加えたSpatio Temporal Assetをどのように提供するとエコシステムにとって良いかの仕様標準化を目指しているものがSTAC Specなんです。 Axelspaceでは、STAC Specに従ったAPI提供の開発を進めており、現在はGRUS(AxelGlobeに特化した自社衛星)が撮影した衛星画像へのアクセスを提供しています。 今後は、衛星画像以外のSpatio Temporal Asset Collectionを追加していく予定です。
金子さんにとって、AxelGlobe開発における魅力的な挑戦や課題はなんですか?
AxelGlobeのバックエンドシステムは、単体で価値を生み出せるわけではありません。 衛星運用システムと連携し、撮影ニーズのある箇所を撮影できるようにする必要がありますし、管理部門と連携して支払・請求処理を行うセールスシステムを開発・運用する必要があります。 また、様々な国々のお客様にサービスを提供する必要があり、パートナーシステムやペイメントシステム等の連携するシステムが少なくなく、その要求をどのような設計で保守性高く実現できるかに日々頭を悩ませています(苦笑) コミュニケーションやリリースマネジメントも難しい。 なお、Spatio Temporal Assetへのアクセス性は、衛星画像を見たいユーザや解析をしたいユーザの基盤になる部分なのですが、エコシステムや知見もまだ成長段階。 なので、技術でできることをしっかりと理解し、顧客課題をどのように解決していくか、エンジニアが自ら考え、定義する必要があるところが一つの挑戦だなと感じます。 あとは、地理空間データのデータサイズはWeb開発でよく扱うデータより大きいんですよね。 その大きなデータをいかにパフォーマンス良く扱うことができるかが、今バックエンドエンジニアチームが抱えている課題のひとつでもあります。 上記のような挑戦や課題を一緒に対応すべく、データベースのクエリチューニング、キャッシュ設計、非同期システム連携を扱った経験のあるバックエンドエンジニアの方々と、これらの課題に一緒に立ち向かっていけることが楽しみです!