超大規模メール配信を支えるために 〜ホリデーシーズンの乗り切り方~
- 2019年1月29日
- by SendGrid
- Category: お知らせ 技術ネタ
この記事は Black Friday and Cyber Monday: Riding the Tidal Wave of Email の抄訳です。
SendGridでは1年を通して毎日10億通を超えるメールを送信していますが、その中でもブラックフライデーとサイバーマンデーはSendGridにとって大きなイベントです。お客様が「SendGridならばブラックフライデーとサイバーマンデーに送る重要なメッセージを届けてくれるだろう」と信頼を寄せてくれる日なのですから。
こうした大きなイベントで期待される中、SendGridで日々行っていることを考えると、まるでスポーツをしている感覚になります。ブラックフライデーとサイバーマンデーはSendGridの1年にとってチャンピオンシップの試合のようなものです。このイベントを乗り越えることは、外部からみると簡単にみえるかもしれませんが、内部では成功に向けてひたむきな努力や入念な準備を何年にも渡って行う必要があります。
2018年、SendGridではブラックフライデーに28億通(前年に比べてほぼ10億通の増加)の送信に成功するという素晴らしい結果を出しました。そして、サイバーマンデーでは29億通に到達して、1日の最大送信記録を更新しました。本日のブログでは、ブラックフライデーとサイバーマンデーにお客様の代わりにしっかりメールを届けるため、SendGridがどのような準備をしているか、ご紹介します。
2018年のブラックフライデーとサイバーマンデーに送られたメールの分析結果をまとめたブログもあるので、是非ご確認ください。
【2018年版】数字で見るブラックフライデーとサイバーマンデー
ブラックフライデーとサイバーマンデーに向けてSendGridが準備していること
お客様はメールの送信が本当に必要なとき、SendGridならメッセージを届けてくれるだろうと信頼してくれています。その信頼に応えるため、SendGridではお客様の送信規模や有料・無料の利用プランに関わらず、組織全体でしっかり責任感を持ってブラックフライデーとサイバーマンデーに向けた準備を行います。
12月になると、その年のブラックフライデー、サイバーマンデーの送信情報をすべて集めて、「何がうまくいったのか?」「改善できることは何か?」「来年もまたうまくやるためには今後何を実行するべきか?」を確認します。
サイバーマンデーからわずか数日後には、残り12ヶ月の時間でどうやったら顧客のニーズに応えられるか検討し始めます。
その年のイベントを振り返り、データを分析して、次のような内容を元に計画を立てます。
- 最近得た知見
- レビューシステムから得た情報
- チューニングが必要な箇所を特定するためのサービスパフォーマンス情報
- 新しく追加した機能が適切にスケールできているか
1月には予防保全のためのスプリントを開始して、エンジニアリングチームが今後重大な脅威になる可能性を秘めている軽微な問題を徹底的に潰していきます。問題を管理するリストには誰でも追加することができ、毎週レビューして優先順位を決めます。
10万マイル走ってからエンジンを取り換えるのではなく、5000マイルごとにオイルチャージするようなイメージです。小さいことを実行するのは、大きいことを実行するのに比べて簡単な上、潜在的な問題を避けることができます。
SendGridが構築するすべてのものは高度な可用性、耐障害性、そしてスケーラビリティを要している必要があります。そこで、一年を通じて、新しく構築したすべてのものが、必要なスケーラビリティを備えているか検証します。これはいつの時代もSendGridが変わらず大切にしている活動で、お客様の信頼は、SendGridの信頼性やスケーラビリティ、到達率、これら全てがあって成り立つと理解しています。
耐障害性を高めるためのシナリオは一年中走らせます。インシデントやニアミスが発生したときは、それぞれの事象を調べ、サービスの改善や顧客体験の向上に適用できる学びがないか調べます。
あらゆる機会を利用して、ブラックフライデーとサイバーマンデーに備えてサービスを継続的に進化させます。
夏になるとさらに準備することが増えます。自分たちでしっかりと準備をしていますが、それと同時にお客様と一緒にホリデーシーズンに備えることをしています。共同で計画を立てたり、テストをすることで、どういったニーズを抱えているのか、そしてお客様がどれくらい成長を続けているのかを深く理解することができます。
コントロールされた環境下での負荷試験
潜在的な問題を見つけるために、本番環境に対してシステム的な負荷試験も開始します。こうしたテストの実施については、メンテナンス通知を通じてユーザに案内しています。ブラックフライデーやサイバーマンデーのようなお客様のビジネスにとって致命的なタイミングではなく、制御可能な状態で、高負荷時に問題となるポイントがないかを探したいからです。
こうした負荷試験はいつも期待通りにいくわけではないので、色々なことを学べます。
本番環境で負荷試験を行う前にシミュレーションやステージング環境でのテストを行いますが、問題を発見する上で本番環境を使ったテストにかなうものはありません。
負荷試験を実施して、あまり満足できない結果であったとしても、そこからたくさんのことを学び、お客様のニーズを理解し、弱点を克服できます。
満足な結果が得られなかった場合は次のようなことを行います。
- 負荷試験の頻度を増やす
- シミュレーションを増やす
- 問題発生時の手順を決めておく
- 確実に成功させるため、不測の事態を想定して準備を整える
大きなイベントに向けて準備を行い、イベントの最中に発生しうる問題にも備えました。ボクシングのマイクタイソンが「誰もが作戦を持っている。パンチを食らうまでの話だがな。」という有名なセリフを残しましたが、SendGridではパンチを食らったときでも対応できるよう準備しています。そこまで考える理由は、お客様に対して責任があると考えているためです。
まとめ
何年にも渡る準備や定常的な訓練・学び、そして継続的な成長なしに、ブラックフライデーとサイバーマンデーのようなモンスター級に大きいイベントは乗り越えられません。
このイベントは毎年の目標となっていて、色々な挑戦ができることにとてもやりがいを感じます。お客様に信用していただけるよう、準備できることはすべてやっています。
SendGridのスケーラビリティや信頼性に興味を持ってもらえたでしょうか?様々なプランがあるので、興味を持った方は是非確認してください。