Bridestory が AWS でコンテナを使用して俊敏性を向上

Bridestory

成長期の困難

Bridestory は、花嫁が結婚式のインスピレーションを見つけ、候補業者とつながるためのワンストップショップとして、2014 年に立ち上げられました。Bridestory アプリは、インドネシアを本拠とし、フィリピンとシンガポールのユーザーを含め約 70 万人の訪問者を抱え、ユーザー基盤を急速に拡大しています。立ち上げから 2 年が経過し、このスタートアップはモノリシックアーキテクチャに起因する成長期の困難を経験していました。イテレーションの遅さとデプロイとスケーリングの困難が、最優先事項である市場投入までの時間を妨げていたのです。Bridestory は、アマゾン ウェブ サービス (AWS) クラウドで独自のアーキテクチャを構築していて、コンテナベースのインフラストラクチャへの移行について AWS クラウドのアーキテクトと相談するようになりました。

“2018 年末以来、私たちは指標を達成してきました。以前は、平均して 3 週間で 1 つの大きな機能をリリースしていましたが、今では開発者は小さなリリースを毎日行うことができ、失敗率は 1% 未満です”

Bridestory、最高技術責任者、Doni Hanafi 氏

  • Bridestory について
  • Bridestory は、花嫁にインスピレーションを与え、ウェディング業者とのつながりを支援するために開発されたウェブおよびモバイルアプリケーションです。同サイトには毎月最大 70 万人の訪問者があり、ユーザーはインドネシア、シンガポール、フィリピンなどに及び、世界的に拡大しています。 

  • 利点
    • 3 週間ごとではなく、毎日デプロイを実行
    • 1% 未満の失敗率を達成
    • 拡大する世界のユーザー基盤に対応するオートスケール
    • 新ブランドの市場投入を 3 倍迅速化
    • 生産性と従業員の仕事満足度を向上させ、定着率を増加
  • 使用されている AWS のサービス

モノリスからマイクロサービスへ

Bridestory の最高技術責任者である Doni Hanafi 氏 は、チームと協力してアプリケーションをより小さなサービスに分割し、Amazon Elastic Container Service (Amazon ECS) を使用して Docker コンテナを設定することを開始しました。Bridestory は、市場投入までの時間と信頼性を重要な基準として、数日ごとに小さな機能をデプロイすることで、失敗率を下げることを目指しました。

最初の 3〜4 か月は、テクノロジースタックの調査に費やされ、対象となるワークロードに適したインフラストラクチャを見つけ、オートスケーリングによって俊敏性を向上させるソリューションを目指しました。その後、スタートアップである同社はマイクロサービス環境で新機能を構築することから始め、先進的な分離を開始しました。Bridestory は、Amazon Relational Database Service (Amazon RDS) を使用してすべてのトランザクションデータを保存しており、AWS Database Migration Service (AWS DMS) が移行プロセスで特に役立つことがわかりました。Hanafi 氏は、次のように語っています。「AWS DMS を使用することで、データをリアルタイムにコピーし、モノリス内の古い Amazon RDS データベースから新しいマイクロサービスデータベースに同期させることができます。さらに、BI ツールで多用している Amazon RDS でも簡単にレプリケーションを作成できます。レプリケーションは非常に信頼性が高く、これまでのところ重大なデータ問題は発生していません」。

同じアーキテクチャ、異なるブランド

新しいマイクロサービスアーキテクチャは、運用を一新しました。Hanafi 氏は、次のように報告しています。「2018 年末以来、私たちは指標を達成してきました。以前は、平均して 3 週間で 1 つの大きな機能をリリースしていましたが、今では開発者は小さなリリースを毎日行うことができ、失敗率は 1% 未満です」。 また、同社はコンテナ化されたインフラストラクチャを使用して、Parentstory という新しいアプリも発表しました。「分離は、新しいマルチテナンシーマイクロサービスモデルの鍵です」と同氏は説明します。「私たちは AWS のアーキテクトと共に、同じソースコードで同じアーキテクチャを使用しながら、まったく異なるブランド、異なる顧客、異なるデータベースに応用する方法を常に模索しています」。 この「リサイクルされた」アプローチにより、チームは Parentstory アプリを Bridestory よりも約 3 倍速く立ち上げることができました。

AWS を使用することで、Hanafi 氏のチームもより効率的になっています。同氏は、次のように締めくくります。「現在は、Amazon Elastic Container Service for Kubernetes (Amazon EKS) に移行しており、リソースの分離をより柔軟に行えるようになっています。AWS のおかげで、学習と実験の新しい方法を見出しています。これはエンジニアにとって重要であり、高い従業員定着率につながります」。

以下の図は、Bridestory と Parentstory の AWS インフラストラクチャを示したものです。

Bridestory と Parentstory の AWS インフラストラクチャ

詳細はこちら

詳細については、コンテナをご覧ください。