BT

QCon NY: Joe Emison氏のサーバレスパターン、アンチパターン

| 作者: Srini Penchikala フォローする 40 人のフォロワー , 翻訳者 西村 美沙 フォローする 0 人のフォロワー 投稿日 2018年8月3日. 推定読書時間: 3 分 |

原文(投稿日:2018/07/09)へのリンク

Branch社のCTOであるJoe Emison氏は、QCon New York 2018カンファレンスで、サーバレスアーキテクチャのデザインパターンとアンチパターンについて講演した

Emison氏は、開発するソフトウェア、特にSoftware as a Service(SaaS)ベースの製品を用いている場合、メンテナンスは非常に重要であると主張した。なぜならソフトウェアは長い間存続するからである。カスタムコードの少ないソフトウェアアプリケーションのメンテナンスはより簡単である。ソフトウェアとは中に何が入っているかではなく、届ける価値が全てであると開発者が知ることは重要だ。サーバレスはアーキテクチャに実用的なアプローチをもたらし、開発者がインフラではなく、ビジネスロジックに集中できるようにしてくれる。

Emison氏はサーバレスアーキテクチャベースのアプリケーションがどのように稼働するかについて話した。サーバレスとは、サーバがないという意味ではなく、”サーバのオペレーションがない”という意味である。コンテナのようなテクノロジーはインフラとサーバレベルのオペレーションを回避するのに役立つ。サーバレスはアプリケーションレベルのオペレーションでさえ取り去る。

現実世界の4つのアプリケーションユースケースが”Fuel SQC”、”Spaceful”、”Commercial Search”、”Branch”として発表された。これらのアプリケーションのアーキテクチャには、Web UIサイドにAngularReact、認証にAuthO、画像マネジメントにCloudinary、セキュリティにNetlify、Amazon's CloudFront、Amazon S3Lambda@EdgeCognito、データベースにDynamoDBが使われている。

Emison氏はサーバレスアプリケーションのデザインパターン、未開発のアプリケーションとマイグレーションのアンチパターン、プロダクション環境でサーバレスアプリケーションを稼働させた現実世界の結果についての議論で講演を進めた。彼が話したサーバレスパターンとアンチパターンは以下である:

  • シッククライアント: サーバレスベースのアプリケーションにシッククライアントを持つべきである。ただし、中間層はシックにしない。サーバレスはクライアントサイドではうまく稼働しない(Ruby on Rails、Django、Angularを使うなど)。これらのフレームワークを採用し、サーバレスモデルに移行することに慣れている開発者は、困難に直面するだろう。
  • ファンクション: 彼によると、ファンクションはこのアーキテクチャモデルにおける接着剤であるが、ファンクションが他のファンクションを呼ぶことは避けるべきだと言う。ファンクションの実行毎に対価を支払わなければならず、総費用の観点からするとかなり高くつくだろう。各ファンクションをモノリシックにデプロイし、この懸念に対処する。
  • サービスフル: 自分で書いて稼働させるのではなく、サービスセントリックなアプローチに基づいてアプリケーションを開発し、バックエンドの中間層サービスに構築する。ただし、複数の単一障害点(SPOF)に注意すること。自分が使っているサービスが適切な稼働時間で動いていることを確かめること。
  • カスタムリサーチ(とコード): カスタムリサーチはサーバレスアーキテクチャを利用するためのアプリケーション開発におけるグッドプラクティスである。しかし、カスタムコードはアンチパターンになりえる。調査して適切なソリューションを取るのに少しの時間掛けるのはいい。Emison氏は、”2日の計画と2週間の計画より、2週間の計画と2日の開発を好むこと”という例を出した。

この講演に関する情報は、QCon New Yorkカンファレンスのウェブサイトのスライドを確認してほしい。”サーバレスのスイートスポットを探る”というタイトルのトラックのプレゼンテーションもある。

Rate this Article

Adoption Stage
Style

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション
BT