アソビュー! Advent Calendar 2024の1日目です。
今年のアドベントカレンダーは2面公開なので、ぜひそちらもご覧ください!
アソビューでCTOをしているdisc99🐼です!
「アソビューを支える技術 2020」という記事を以前書いていましたが、そこから時間も経ち支える技術も変わってきているので、今回紹介していければと思います!
アソビューの事業
支える技術を伝える上で説明しておきたいのが提供しているサービスです。
アソビューでは年々サービスは増えており、以下が代表的なものになります。
- アソビュー!: 休日の便利でお得な遊び予約サイト
- アソビュー!ギフト: アソビュー!に掲載された体験を厳選して収録したカタログギフトやギフトカードを販売するサイト
- アソビュー!ふるさと納税: アソビュー!に掲載されたレジャーや体験を返礼品として選ぶことができる、体験型返礼品特化型のふるさと納税サイト
また、コンシューマー向けサービスだけではなく、事業者向けや自治体向け、広告事業などその他にも多数の領域が存在します。
- ウラカタチケット: レジャー・観光・文化施設様向け DXソリューション
- ウラカタ予約: アクティビティ・体験教室様向け DXソリューション
- ウラカタ分析: 購買データ分析BIツール
- asoview! Agent: : 旅行観光業B2B販売プラットフォーム
- AREA GATE: 自治体・観光協会・DMO向け 観光商品販売管理システム
ここで紹介しているものの他にも多数のサービスがあり、今後も新規のサービスが立ち上がっていく予定です!
ここからはこれらを支えている代表的な技術を紹介します。
Webフロントエンドを支える技術
アソビューには様々なアプリケーションがあり、フロントエンドの採用技術の変遷によって、サービスごとに使っている構成が微妙に違っていたりしますが基本的には下記の基盤やツールを活用しています。
TypeScript, React
主要アプリケーションはTypeScript×Reactで統一しています。
Next.js
直近構築しているSPAのアプリケーションはNext.jsを活用しています。
styled-components、vanilla-extract
しばらくはstyled-componentsを広く活用してきましたが、パフォーマンス観点や今後React Server Componentsを利用するかも知れないことも見据えてvanilla-extractの利用、検証も始めています
swr
API経由のデータ取得と更新にはuseSWR. useSWRMutationラップして活用しています。キャッシュの活用で優れたUXを実現できています。
また、Protocol Buffersから生成した型を利用することでバックエンドのAPIのIFを合わせています。
tech.asoview.co.jp
モバイルを支える技術
Swift / Swift UI・ Kotlin / Jetpack Compose
アソビュー!のネイティブアプリではSwiftとKotlinを利用しています。
立ち上げ時にSwift UIやJetpack Composeが安定し始めていたので、いち早く導入し利用しています。
TypeScript / React Native / Expo
以前の記事でも書かせてもらいましたが、Fast-InというQR着券アプリでこちらを利用しています。 medium.com
Firebase
プッシュ通知やアナリティクス、クラッシュレポートなどモバイルを運用していく上で必要となる機能で活用しています。
Braze
Push通知などのコンテンツの作成と配信を行うために利用しています。今後はコンテンツカード、IAMなども利用してよりリッチなコンテンツの配信も予定しています。
AppAuth
OAuth2.0認証を行うためのライブラリとして利用しています。非常に簡単に認証処理を実現できます。
バックエンドを支える技術
バックエンドといっても幅広いですが、ここでは主にサーバーサイド技術や、アーキテクチャーなどを中心に記載します。
Java / Spring Boot
ベンチャーとしては珍しいですが、アソビューのバックエンドはそのほとんどがJavaで開発されています。 なぜJavaなのかや、どのように利用しているかという話は別の記事にてまとめていますので、よければご覧ください。 tech.asoview.co.jp
Protocol Buffers / gRPC
多数のサービスを提供する上で、アプリケーション間の連携は必須になります。
アソビューでは、同期・非同期の連携がそれぞれあり、メインのスキーマ定義にはProtocol Buffers、同期の通信にはgRPCを利用するケースが増えています。
DDD / CQRS
アソビューのバックエンドではDDDやCQRSを意識した設計・開発が主流になっています。 年々成長し継続的に開発を続ける上で、一貫したアーキテクチャスタイルや設計パターンとして活用しています。
モジュラモノリス + マイクロサービス
以前の記事ではマイクロサービスが主流の構成となっていましたが、現在ではモジュラモノリスを中心にシフトしてきてます。
この構成に至った背景に関しては別の記事で紹介していますので、よろしければご覧ください。
tech.asoview.co.jp
インフラを支える技術
アソビューのサービスはほぼAWSを利用して構築しており、ベンチャーの中でも比較的活用範囲が広いほうだと思います。 また最近ではGoogle Cloudも活用する機会が増えてきました。
ここではそのいくつかと、AWS以外のサービスも含めて紹介します。
Kubernetes
現在アソビューでは大半のアプリケーションがEKSへの移行を完了し、シングルクラスター上で起動しています。
多数のサービスや、それらを支えるアプリケーションをスケーラブルかつ、統合して管理するのに非常に重要な基盤となっています。
データストア
多くのアプリケーションではメインのデータストアとしてRDBを利用しており、その中でもパフォーマンス、可用性、コストに優れたAmazon Aurora Serverless v2を活用しており、最近ではGoogle CloudのCloud Spannerなどの利用も始まっています。
また、検索エンジンにはAmazon OpenSearch Service、キャッシュにはAmazon ElastiCacheやAmazon DynamoDBなど、目的に合わせ最適なサービスを利用しています。
Terraform
現状、IaCを利用せずに少数で正確にインフラを管理するのは困難な場合が多いと思います。アソビューでもインフラの管理するためTerraformを利用しています。
Authlete
アソビューでは様々なサービスと連携するため、OAuth2/OIDCを利用しており、その仕組みを支える上で認可をSaaS提供してくれているAuthleteを利用しています。
データ基盤・機械学習を支える技術
データウェアハウス
現在アソビューでは大量の顧客や商品データを扱っており、素早くスケーラブルにデータ活用を進めるため、データ基盤としてBigQueryとSnowflakeを利用しています。
詳しくは別の記事にまとめていますので、よろしければご覧ください。
whatweuse.dev
データパイプライン
外部のデータソースからのデータ取り込みやデータウェアハウス内でのETLなどを行うため、多数のデータソースに対応し、素早くパイプラインを構築できるTROCCOを利用しています。
BIツール
アソビューではいくつかのBIを利用していますが、現在一番活用しているのがTableauです。
マーケや営業観点での分析だけでなく、経営向けのダッシュボードや顧客向けの機能提供などにも活用しています。
Python
バックエンドはメインでJavaを利用していますが、機械学習の領域では圧倒的なエコシステムを持つPythonを活用しています。
DevOpsを支える技術
Datadog
現在アソビューではアプリケーションやインフラなどほぼ全てのシステムモニタリングやログ管理をDatadogに集約しています。
多数のサービスを限られたメンバーで運用していくには、欠かせないツールとなっています。
具体的にどのように運用に活用しているかは別の記事に掲載しているので、よろしければご覧ください。
findy-tools.io
Github / CircleCI / Argo CD
ソースコードは全てGithubで管理しており、基本的にGitOpsを中心としており、その実行環境として、CircleCIを活用しています。 また、大半のサービスがEKS上で起動しているため、CDにはArgo CDを活用しています。
Argo Workflows
現在アソビューでは多数のバッチ処理が実行されています。
アプリケーションの実行環境がEKSのため、同じクラスター内で効率的にバッチジョブを実行するためArgo Wofkflowsを利用しています。
開発を支える技術
ここからは、大きなアップデートはないものの、その他開発を進めていく中で、支えられてる技術を紹介します。
スクラム開発
アソビューでは顧客の声を聞き、世の中の状況変化に合わせ、素早く、柔軟に価値を提供していくことを重要視しています。
例えば、コロナ禍の際にはレジャー業界が大きな影響を受けましたが、会社の方針を素早く切り替え、事業に活かし成果につなげてきました。
この様な、状況変化に対応し、素早く変更を繰り返すため、スクラムを取り入れた開発を行っています。
コラボレーション / コミュニケーション
アジャイルな開発を実現していく上で、相性の良いツールとしてJIRAやConfluenceを利用し、チャットにはSlackを利用しています。 また、メール、スケジュール管理、オンラインMTGなどはGoogle Workspaceを利用し、リモートが中心になった現在でもスムーズにコミュニケーションを図れる環境を作っています。
Figma
以前の記事及び私たちが寄稿した「WEB+DB PRESS Vol.113」の特集でも紹介しましたが、デザインツールとしてこちら活用しており、marginなどの細かいデザイン確認をしたり、画像をexportしたりなどを直接行っています。 www.asoview.co.jp
ChatGPT、GitHub Copilot
昨今業務でLLMの活用は欠かせません。アソビューでも積極的にこういった技術を取り込み開発に活用しています。
Findy Team+
エンジニア一人一人が高いパフォーマスを発揮していく上で、自分たちの状態を可視化しながら改善を進めるためFindy Team+を活用しています。
2024年度は導入1年目でしたが、全チームへ導入し、 エンジニア組織の開発生産性が優れた企業に送られる「Findy Team+ Award 2024」にも選出頂きました。
www.asoview.co.jp
MacBook Pro
普段利用するPCは、Mac、Windows両方から選ぶことができますが、エンジニアはほぼMacを利用しています。
以前書いた記事から時間も立ち、事業だけでなく様々な技術の活用が進んでいます。
特に、モバイルやデータ基盤・機械学習は以前より大きく成長しています。
今後も事業や組織の成長とともに、支える技術も変わり続けると思いますので、こうった環境でチャレンジしてみたい方を大募集しています!
カジュアル面談もありますので、少しでも興味があればお気軽にご応募いただければと思います。