マイクロサービスとクラウド IT が、人気の予約サービスを 200% スケールするのにどう役立ったか
Google Cloud Japan Team
※この投稿は米国時間 2023 年 1 月 31 日に、Google Cloud blog に投稿されたものの抄訳です。
金曜日の午後、あなたは 12 歳のときからずっと「死ぬまでに行きたい」と思っていた場所での 2 週間の休暇からニューヨークに帰宅途中です。月曜日の朝に役員全員との重要な会議があることが判明しました。鏡で自分の姿を見ると、週末に髪を切る必要があることが一目でわかります。行きつけの美容院に電話をかけてみますが、誰も電話に出ません。
どうすればよいでしょうか。ここで Booksy の登場です。
デジタル予約サービスの Booksy で、予約スケジュールや日常業務の複雑さが解消されます。同社のサービスの支援により、気に入った美容、ウェルネス、健康分野の専門家の予約を簡単に取ることができます。誰も電話に出なくてもです。
「弊社のソリューションは、できる限り効率的な手段で人と企業を結びつけます」と、Booksy の最高技術責任者である Pawel Sobkowiak 氏は述べています。「弊社の名称は予約サービスを強調していますが、お客様は、マーケティングからセールスまでビジネス運営の多面的な改善を求めてやってきます。弊社は、お客様が技術に集中できるようにします」。
Booksy は、オンプレミス IT とモノリシック アプリケーション アーキテクチャの運用から開始しました。このセットアップは、何年も機能していましたが、今は機能しなくなりました。予約スケジュールだけでなくマーケティング、セールス、POS などの他のビジネス サービスの需要にもあおられ、継続的に成長するということは、Booksy にクラウドファーストなアプローチが必要であることを意味し、これにより需要に応じたスケーリングを続けることができます。同社は、IT インフラストラクチャを移行して、マイクロサービス アーキテクチャにシフトするために、Google Cloud とパートナーの Cockroach Labs(クラウドネイティブな分散 SQL データベースである CockroachDB を支える企業)との提携を選択しました。
1. 柔軟性を高めて予測不可能なアクティビティに対応
Booksy は、COVID-19(新型コロナウイルス感染症)のパンデミックの初期に、Google Cloud と CockroachDB に移行しました。丁度、トラフィックと需要の急激な変化に直面したときでした。
Pawel 氏は次のように述べています。「弊社はすでに世界中の複数の市場でグローバルな展開を行っていました。ロックダウンのアナウンスにより、お客様が皆カレンダーを更新しようとして、トラフィックが急増し、すべてが予測不可能になりました。従来の IT は、変化や課題にすべて対処できるほどアジャイルではありませんでした。」
Booksy は、新しいクラウドベースのマイクロサービス アーキテクチャを使用して、ニューノーマルに適応しました。より高い柔軟性をもたらして、Covid-19 関連の制限が解除され、美容業界が再開した後の需要の変化にうまく対処することに加えて、付加価値のあるサービスを導入できました。企業がリモートで予約を取るために使用できるツールを開発したのです。さらに、ロックダウン中、Booksy は、お客様がお気に入りの美容サロンにオンラインで寄付して、困難時に運営を支援するオプションを提供しました。
「従来の IT では、トラフィックの極端な変化に対処できませんでした。ロックダウンのために一時的な途切れが見られたときも、必要のないマシンを稼働させるためにお金を払っていました」と、Pawel 氏は述べています。「Google Cloud により、サービスの需要に関係なく、効率的な運用に必要であった自動スケーリングが可能になりました」。
現在、Booksy のワークロードの 99% が、Google Kubernetes Engine と Compute Engine 上で実行されています。一方で、ロードバランサにより、Booksy のプラットフォーム内の効率性と安定性が最大限に高められています。
CockroachDB は、新しいマイクロサービス環境におけるデータ管理の最適化に役立ちました。以前、Booksy は、運用する国ごとに異なるオンプレミスの PostgreSQL インスタンスを維持していました。そのため、デベロッパーはデータベースを手動でシャーディングする必要がありました。シャーディングは、プラットフォームに複雑さと脆弱性をもたらすだけでなく、お客様が海外に渡航する際にも複雑な状況をもたらしました。CockroachDB により、同社は複数の地域にまたがるデータを分散する高可用性のデータベースを使用でき、新しいマイクロサービス アーキテクチャとそれが実行される VM を効率的にサポートできます。
2. DevOps を解放して、カスタマー エクスペリエンスを強化
Booksy は、プラットフォーム内のサービスの継続的な改善にかなり重点を置いています。従来の IT 環境は、迅速で創造的な DevOps 作業につながるものではありませんでした。オンプレミスの IT インフラストラクチャは、スケールが大変で、大量のバックエンド管理を必要としたためです。これはまた、費用が非常にかかるため、必要に応じたフルマネージドのソリューションの活用や新しいテクノロジーの追加の妨げにもなっていました。
幸いなことに、Google Cloud と CockroachDB により、チームはこれを変えることができました。
「突然、さまざまなクラウドネイティブ ソリューションを使用して、DevOps をサポートできるようになりました。モノリシックな環境に制限されなくなったのです」と、Pawel 氏は説明しています。「これにより、チームが従来の IT 管理から解放され、新機能を創り出し、サービスを常に進化させることができます。Google Cloud を使用することで、新しいことをより効率的かつ高い適合率で試せます」。
CockroachDB は、完全に適合することが証明されました。Booksy のデベロッパーにとってすでに馴染みのある Postgres インターフェースをサポートし、SQL ライブラリとクライアント ライブラリの両方が Postgres との互換性を備えているからです。また、より新しいデータベースでコードを再利用できるようにもなりました。チームが CockroachDB を立ち上げて実行し、バックエンドの Google Cloud インフラストラクチャに接続するのに数時間しかかかりませんでした。
IT 管理の観点からすると、Google Cloud Marketplace から CockroachDB を購入することで、Booksy はすべての IT 費用の請求を一本化できます。
「DevOps の観点からすると、CockroachDB は非常に使いやすいです」と、Booksy の DevOps リードである Adrian Jarczynski 氏は述べています。「Cockroach Labs は、機能をフルに活用できるようにするトレーニングやサポートも提供してくれました。すばらしいパートナーとなっています」。
現在、Booksy の DevOps の専門家は、新しいサービスをわずか 15 分で本番環境にデプロイして、関連するビジネス ロジックを展開させ、新しいサービスと既存のサービスを簡単につなげています。
「特に重要な点は、新しい機能とサービスをかなり迅速に得られることです」と、Pawel 氏は述べています。「サービスを継続的にイテレーションして、お客様が望むエクスペリエンスを提供できます。また、デベロッパーがクラウドの専門知識を必要とせずに、このすべてを行えます」。
3. セキュリティ、コンプライアンス、信頼性を強化したスケールアウト
Booksy は、Google Cloud のジオタグツールと CockroachDB の組み込みデータ ホーミング機能を活用して、地域のデータ所在地のコンプライアンス要件を満たし、データをその顧客の近くに置くことでパフォーマンスを最適化しました。また、GKE、Compute Engine、Virtual Private Cloud、Firebase などのソリューションによって得られ、統合されたクラウドベースのインフラストラクチャにより、グローバル セキュリティ管理も一元化されました。
同様に、Booksy の簡単にスケールする機能も大幅に向上しました。プラットフォームのグローバル カバレッジが拡大するにつれて、スケールするのに費用がかかりすぎるようになった最初のモノリシック アーキテクチャが障害とならなくなったからです。新しい完全にクラウドネイティブの分散アーキテクチャにより、必要に応じた、シンプルで柔軟な水平方向のスケーリングが可能です。
全体的に見て、この変革により Booksy は新しいサービスを迅速に創り出して、より多くの地域のより多くのお客様に導入できるようになりました。効率的なインフラストラクチャ、アジャイルなマイクロサービス アーキテクチャ、パワフルなデジタルツールへの簡単なアクセスにより、Booksy は地元の企業が顧客にサービスを簡単に提供できるようにし続けています。
CockroachDB がお客様のビジネスにどう役立つかご覧ください。また、Google Cloud が DevOps チーム間で有意義な変革を推進する方法をご確認ください。