Go Conference 2024にスポンサーしました
CTO室プラットフォーム開発チームの山口(@igayamaguchi)です。
先日6/8(土)に一休でGo Conference 2024にスポンサーをさせていただき、スポンサーブースを出展しました。 gocon.jp
来ていただいた方はありがとうございます!
来ていただいた方と話していく中で、一休がGoを使っていることを知らない方がたくさんいることに気づきました。逆に、最近使い始めたばかりのRustの事例についてご存知の方のほうが多かったのです。これは、次のRustについての記事が多くの方に読まれたことによる影響だと思います。
実際には一休はGoを使っているサービスがたくさんあります。その点をアピールするため、この記事では一休のどのサービスでGoが活用されているかを紹介します。
一休がどのサービスでGoを使っているか
まず、一休ではいくつものサービスを提供しています。
この中でGoが使われているサービスは以下の赤枠で囲われたサービスです。
ご覧の通り、Goが使われているサービスは多いです。
また、ユーザー向けのサービスとは別の社内プラットフォームでもGoが使われており、実際は上の図で表されている箇所以上にGoが活用されています。
ここからは、各サービスでのGo利用事例を個別に紹介していきます。
国内宿泊予約サービスでの活用
まず、一休の中で最も大きなサービスである国内宿泊予約においてGoは活用されています。
一休では国内宿泊予約サービスとして一休.comとYahoo!トラベル(LINEヤフー株式会社から運営を委託)を運営しています。
https://www.ikyu.com | https://travel.yahoo.co.jp |
---|---|
宿泊施設を探すための検索を実行するバックエンドがGoで書かれています。バックエンドはgqlgenを用いたGraphQLサーバーになっており、ホテルやプランの検索、料金、在庫検索といったロジックが実装されています。他にも、全文検索エンジンであるSolrのインデクシングや、施設管理画面の一部APIなどもGoで書かれています。
ホテルの予約を行う処理、予約情報の閲覧ページはVB.NETですが、こちらも後々Goに置き換えていく予定です。
ふるさと納税、海外宿泊予約
国内宿泊予約サービス以外にもいくつかのサービスでGoは活用されています。
例えば宿泊予約時に割引クーポンを受け取れるふるさと納税サービスや、海外宿泊予約です。
https://furusato.ikyu.com/ | https://www.ikyu.com/global/ |
---|---|
これらのサービスは、社内では新しめということもあり、バックエンドは検索から予約まですべてGoで実装されています。
一休プラットフォーム
ユーザー向けサービス以外に、社内向けプラットフォームでもGoは使われています。一休ではいくつものサービスを運営しており、サービス間で共通のアカウントを利用し、貯めたポイントをサービス横断で使用したり、同じ決済の仕組みを使ったりできます。
そういった機能を各サービスで再実装することなく提供するために、一休プラットフォームとして複数のマイクロサービスを実装し、運用しています。具体的なサービスとして、現在は会員サービス、ポイントサービス、決済サービスがあり、これらはすべてGoで実装しています。
一休プラットフォーム開発の実例については、2023年のイベントでの資料も参照してください。
Goを選定してよかったこと
実際に国内宿泊予約や一休プラットフォームの開発に携わっているメンバーから、Goを選んでみてよかったことを聞いてみました。
- 並行処理が言語組み込みで入っている。しかもそれが使いやすい
- 言語仕様がシンプルで、入門から使えるようになるまでの時間が短い
- 業務ロジックが大事なので、シンプルかつ堅く書けるのがよい
- 一括処理や会計管理で大きめのデータを扱うときは非同期処理も書ける
総じて、Goは「シンプル、かつすばやく、それでいて堅牢に作れる」ことを重視する一休の技術選定方針に合致すると感じています。
おわりに
この記事では、一休がGo Conference 2024にスポンサーさせていただいたこと、一休では幅広くGoが使われていることを紹介しました。一休では、これからも生産的かつ高効率にサービスを開発/運用できるGoを活用して、サービスを成長させていきます!
一休では、ともに良いサービスをつくっていく仲間を募集中です。
カジュアル面談も実施しているので、お気軽にご応募ください。