この記事は、 Serverless Advent Calendar 2017 - Qiita の3日目となります。1日遅れてしまい申し訳ありません。(にもかかわらずWIPな状態でごめんなさい。)
この投稿で何がやりたいかというと「イケてる世界中のサーバレスな講演を聴いてまとめていくことで、イケてるサーバレスな考え方を身につけていこう」です。実は聴くべき講演が20以上あるのですが、現状1つしかまとめられていません。個人アドベントカレンダー的に12/25までにコンプリートしたいと考えています。では始めていきます。
今感じていること
先日まで re:Invent 2017 に参加させていただきました。2日目のキーノートの下記のスライドが最も印象に残っています。
「お前らはサービスを差別化することに全力投球しろ。そうでないところは俺らでやっとくから。」という意味だと理解しています。AWSのどのサービスにも言えることなのですが、特にサーバレスなアーキテクチャと用いる大きな利点がこのスライドに凝縮されていると思います。
しかし、私は簡単な小さいサービスをサーバレスアーキテクチャで作ったことはあるものの、中規模・大規模なシステムにおいてサーバレスな仕組み・設計を導入できたことはありません。というのも、
- なんだかんだでサーバありアーキテクチャにしておく方が、あとあと潰しが効くんじゃないか
- 特にDBレイヤに DynamoDB を用いる場合、①バックアップできないし②GSI は5つまでしか定義できないし、構築時にデータの用いられ方がFIXできないと辛いところあるんじゃないの?
などといった言い訳が心の奥底にあったからです。
今回の re:Invent の中で DynamoDB (というか NoSQL?)の事例から、グッドデザインパターンを学ぶワークショップがありました。このワークショップで過去の事例を学び②については克服できそうだと感じています。(①については、今年のアップデートで対応がありましたね!歓喜!)
よくよく考えてみると、世の中にはこのようなグッドパターンの事例が多々共有されているはずで、なんで自分から取りに行かなかったんだろう、と反省しています。世界中のサーバレス事例をかき集めて、良いナレッジ、悪いナレッジを貯める動きをしていかないと、いいアーキテクチャなんて組めるはずないですよね。
過去の事例から学ぶ
というわけで、有名どころの記事を抑えにいきたいと考えています。今年の re:Invent の中で、「Evolution of Serverless Architectures through the Lens of Community」というセッションがあったのですが、この中で2017年の有名なサーバレス関連発表として下記が挙げられていました。
* Tooling * How infrastructure Tooling wil make or break Serverless Infrastructure by Florian Motlik * Human Factors * Less is more - thought from a pragmatic CTO by Paul Johnston * Enterprise * Serving Transactions Serverless: Modernizing mainframe data - Srini Uppalapati * https://www.youtube.com/watch?v=-FTGOx5n5WE * Accenture Cloud Platform Serverless Journey - Tom Myers * Leapfrog into Serverless: An Amtrak-Deloitte Case study by Gary Arora * Startups * How GreenQ manages the Internet of Garbage by using a serverless OpenWhisk-based architecture by Edy Candel & Shlomy Ashkezi * The Story of a Serverless Startup by Sam Kroonengurg * Security * What's Left To Protect? by GuyPodjamy * Serverless - minimizing the attack surface by Avi Shulman * Outlook * Event-driven Architectures: Are We Ready for the Paradigm Shift? By Ben Kehoe * Best Practice * The Best Practices and Hard Lessons Learned of Serverless Aplications by Chris Munns * Migrations * Break-up with Your Server, but Don't Commit to a Cloud Pratform by Linda Nichols * Pains and gains on migrating to Serverless by Marcia Villalba * Performance Optimizations * Performance Lessons from Running Chrome Inside Aws Lambda By Clay Smith * Fast as a Service: Performance at the Scale of Serverless by Avner Braverman * Patterns * 【★まとめ済】Applied Serverless Design Patterns by Yochay Kiriaty * Advanced design patterns in action by Chris Anderson * Serverless Design Patterns by Tim Wagner, Yochay Kirlaty & Peter Sbarski * Data * Data Layer in the Serverless World by Alex Debrie * The Serverless Database by Chris Anderson * Practical Data Analytics Made Serverless by Qifan Pu
これらをまずはしっかり理解することで、サーバレスの先端的な考え方に少しでも近づけるのではないかと考えています。
読んで(聴いて)まとめてみる
というわけで、スライドや講演動画が公開されているものについては、ひたすら聴いてメモやら所感やらを残していこうと考えています。最初に書きましたが、12/4現在、21セッション中1セッションしかまとめられていないのですが、年末までにはこの下にズラッと関連記事が投稿されているようにしたいと思います。