メンテナンス・ウィンドウという概念は、現代のソフトウェア開発と矛盾しています。メンテナンス・ウィンドウはダウンタイムを意味し、ダウンタイムは顧客の失望につながります。メンテナンスフリーのアプローチを採用することは、開発者の時間と労力を尊重するだけでなく、より俊敏で、効率的で、革新的な未来への道を開きます。中断の時代に別れを告げ、サーバーレス・プラットフォームでの中断のない継続的な開発という新しい夜明けを迎えましょう。
デベロッパーは顧客にシームレスなデジタル体験を提供したと願っています。メンテナンス・ウィンドウは通常、「トラフィックの少ない」時間帯に設定されます。エンジニアリング・チームとしてスケジュールを立てることは可能ですが、新しいゲームをライブ配信しているときに、「トラフィックの少ない」時間帯にオンラインのユーザーから高いレイテンシーが報告されたらどうでしょう?全体として、開発者としては、ダウンタイムは避けたいものです。そして、メンテナンス・ウィンドウを計画することは、エンジニアリング・チーム内で高い所有コストを生み出します。ソリューションに実装しているサービスのベスト・バージョンは稼働しているべきです。
メンテナンス・ウィンドウとキャッシング・ソリューションへのディープダイブ
高可用性を実現し、ピーク時に急増するワークロードのスケーラビリティ問題を解決するために、キャッシュが導入されることが多くあります。キャッシュが常に解決策というわけではなく、可能な限り最善のソリューションを構築する方法については、Meera Jindal氏のブログ「Think before you cache」を読むことを強くお勧めします。しかし、多くの場合、ピーク時の高いレイテンシーを解決するために、Amazon ElastiCacheやRedisのようなメンテナンスウィンドウを持つキャッシュサービスが実装されています。これらは開発者にとっては有名なサービスだが、これらのサービスの信頼性が徐々に向上しても、メンテナンス・ウィンドウの概念は依然として残っています。メンテナンス・ウィンドウは本当に必要なのでしょうか?
メンテナンス・ウィンドウとは何か?メンテナンス・ウィンドウとは、コンピュータ・システム、ネットワーク、ソフトウェア・アプリケーション、またはウェブサイトで、計画されたメンテナンス活動やシステム更新が実施される特定の期間を指します。これらの活動には、ソフトウェアパッチ、セキュリティアップデート、ハードウェアアップグレード、設定変更、またはシステムの適切な機能、セキュリティ、パフォーマンスに不可欠なその他のメンテナンスタスクが含まれます。メンテナンス・ウィンドウは、ユーザーや業務への影響が最小になると予想される時間帯にスケジュールされます。これは、システムの使用量やトラフィックが最も少ない時間帯を選択することを意味することが多く、通常、営業時間外や深夜、週末などのトラフィックが少ない時間帯に行われます。メンテナンス期間中は、システムやサービスが一時的に利用できなくなったり、障害が発生したりする可能性があります。ユーザー、顧客、従業員などの利害関係者との適切なコミュニケーションと調整は、メンテナンス活動によって生じる不都合を最小限に抑えるために不可欠です。Amazon ElastiCacheのメンテナンスウィンドウのポリシーについてはこちら、Redisのポリシーについてはこちらをご覧ください。
もしあなたが私のように、複数の地域にまたがるグローバル企業に勤めているのであれば、私たちに “ダウンタイム “はないと思っていることでしょう。私個人としては、グリーンベイではトラフィックが少ない時間帯でも、Momentoのゲーム顧客を抱える日本ではピークになります。グローバルな開発チームは、24時間体制で生産性を確保するため、しばしばリアルタイムで共同作業を行っています。共同開発では、シームレスな非同期ワークフローが要求され、開発者はタイムゾーンやメンテナンスのスケジュールに関係なく、生産性のピーク時に貢献することができます。
ですから、もし私がElasticacheやRedisのような従来のキャッシング・サービスを使っているとしたら、開発チームが計画に時間を取られ、複雑なコーディングの問題解決からメンテナンス計画のロジスティックスに注意をそらすことになるだけでなく、お客様にダウンタイムを与えることにもなりかねません。これは隠れた大きな出費です。
進むべき道 メンテナンスフリーな開発
AWS DynamoDBやS3、でキャッシング・インフラの将来を保証するのようなサービスは、メンテナンスウィンドウを完全に抽象化しています。これらのサービスも同じように頻繁にデプロイされるが、デプロイは完全に抽象化され、シームレスで観察することができません。そのため、顧客はシステムが更新されても気づかないし、それに合わせて計画を立てる必要もないのです。私が開発者に突きつけたい簡単なリトマス試験紙は、2つの質問からなる: 「ElastiCache Redisのバージョンはいくつですか?答えはだいたい5,6,7のどれかです。そしてすぐに、”DynamoDBのバージョンは?”とフォローする。沈黙が続く – そしてポイントは、あなたがDynamoDBのどのバージョンで動作しているのかわからないということです – なぜなら、あなたは最新バージョンで、そこに到達するためにメンテナンスウィンドウを必要としなかったからです。
メンテナンス・ウィンドウのプランニングのオーバーヘッドなしにスケールするキャッシュ・サービスを探しているなら、ぜひMomento Cacheをチェックしてみてください!
あなたの創造性と同じように、あなたの開発の旅が途切れることなく続きますように!