どうも、セクションナイン の 吉田真吾(@yoshidashingo)です。
ひとつ前のブログエントリーを読んでいただくと、サーバーレスコンピューティングプラットフォームを提供する「ベンダーの哲学」や、サーバーレスアプリケーションを運用する「ユーザーのベストプラクティス」が参考になったと思います。
ここでは今日現在サーバーレスアプリケーションの運用について考えたいことをメモっておきます。 さまざまな立場の人からご意見をいただけると助かります。
1. 新しいアプリケーションを作るときに、今まで慣れたものではなく、少々痛みを伴っても新しいアーキテクチャを組織的に試してみようと思う基準は何でしょうか?
2. サーバーレスアプリケーションを実装するにあたり、利用するサービスの技術詳細(公開情報もあれば、非公開情報もあるかもしれません)を、エンジニアとして知っておくべきだと思いますか?
3. (もしも)認証に利用しているサービスがなんらかの理由でダウンしてアプリケーションの利用ができなくなった場合、責任は誰にあると思いますか?
- GitHubだったらどうでしょう?また、S3のようなストレージだったら?
4.アプリケーションのアーキテクチャや、利用するサービスの見直しをするマイルストーンをどう設定しますか?(あるいはどういう状態をトリガにしますか?)
- 四半期ごと?いつでも自由に?エンジニアが増えたら見直す?
5. アプリケーションを構成する一部のサービスがダウンした場合に、縮退して継続可能なアプリケーションを設計しているとき、サービスレベル項目はどう設計しておくのがよいでしょうか?
- API(マイクロサービス)ごと?サイトごと?両方?
5つほど上げてみましたが「サーバーレス」に限定された話でもなく、SaaSを利用するうえでのベストプラクティスだったり、マイクロサービスの文脈などから考えてみるのも面白そうじゃないでしょうか。