Upgrade to Pro — share decks privately, control downloads, hide ads and more …

What is Jeffy ?? - Why did we create a new framework

What is Jeffy ?? - Why did we create a new framework

Masashi Terui

July 01, 2020
Tweet

More Decks by Masashi Terui

Other Decks in Technology

Transcript

  1. What is Jeffy??
    Why did we create a new framework??

    View full-size slide

  2. Masashi TERUI
    Cloud Architect/Developer
    札幌在住兼業リモートワーカー
    Serverlessconf 2016,2017,2018 Speaker
    ServerlessDays 2019 Co-Chair
    AWS Premier Partner
    https://www.serverworks.co.jp
    01. Serverworks 02.
    Serverless, DevOps etc
    https://willy.works/
    Freelancer

    View full-size slide

  3. Serverless “Application” Framework
    https://github.com/serverless-operations/jeffy

    View full-size slide

  4. The major frameworks in the world.
    メジャーな世界のフレームワーク達
    Serverless
    • GitHub Star No.1
    • Plugin Eco-system
    • 強力なコミュニティ
    AWS SAM
    • AWS公式
    • CFn拡張
    • リスかわいい
    Chalice
    • 簡単に使える
    • WAF(Flask) like
    • なぜ聖杯…

    View full-size slide

  5. The major frameworks in the world.
    メジャーな世界のフレームワーク達
    Serverless
    • GitHub Star No.1
    • Plugin Eco-system
    • 強力なコミュニティ
    AWS SAM
    • AWS公式
    • CFn拡張
    • リスかわいい
    Chalice
    • 簡単に使える
    • WAF(Flask) like
    • なぜ聖杯…

    View full-size slide

  6. The major frameworks in the world.
    メジャーな世界のフレームワーク達
    Serverless
    • GitHub Star No.1
    • Plugin Eco-system
    • 強力なコミュニティ
    AWS SAM
    • AWS公式
    • CFn拡張
    • リスかわいい
    Chalice
    • 簡単に使える
    • WAF(Flask) like
    • なぜ聖杯…

    View full-size slide

  7. ServerlessのFrameworkとは?
    デプロイツール…?WAF like…?

    View full-size slide

  8. Serverlessなアプリケーションフレームワークなんて
    まだ世の中に一つもない(俺調べ)

    View full-size slide

  9. 標準構造
    Serverless Applicationの
    標準構造とは?
    ライブラリの集まり
    開発者の手間を省く
    具体的な実装を隠蔽

    View full-size slide

  10. ライブラリの集まり
    どんな機能が必要?(例えばDAZN Lambda Power Tools)
    • トレースのためのID付与
    • ↑のためのSDK Wrapper
    • 各イベントソース向けのハンドラ実装補助
    • 自動ロギング
    • 以上・・・! (゚∇゚ ;)エッ!?

    View full-size slide

  11. Jeffyにあるもの(2020.07.01現在 v1.1)
    リクエストお待ちしてます(・∀・)
    • トレースのためのID付与
    • ↑のためのSDK Wrapper
    • 自動ロギング
    • 各イベントソース向けのハンドラ実装補助 (Decorator)
    • イベントメッセージの自動エンコーディング (主にJSON)
    • イベントメッセージバリデーター (JSON Schema)
    • およびそれらのカスタマイズ性
    まだまだこれから…!

    View full-size slide

  12. 近日公開v1.2の追加機能
    リクエストお待ちしてます(2回目)
    • ログ出力先のカスタマイズ
    • Kinesis Firehose
    • 柔軟なイベントハンドリングのためのDecorator
    • 標準はメタデータなどをあえて切り捨てて
    できるだけシンプルにしている
    • 任意のSQSメッセージだけ削除したりするのに使う
    • Decoratorはもっと増やしていきたい

    View full-size slide

  13. 今後の追加機能
    変わる可能性はあります
    • Datadog Logsへのログ出力
    • Decoratorの追加
    • SQSでエラーがあったメッセージだけをキューに戻す
    • KinesisでエラーがあったメッセージだけをPutしなおして正常終了
    • これらを簡単な方法で実装できるようにする
    • ProtocolBuffersによるイベントメッセージ交換
    リクエストお待ちしてます…!(3回目)

    View full-size slide

  14. Serverless Applicationの標準構造ってなんだろう

    View full-size slide

  15. Event Drivenが
    良いらしい

    View full-size slide

  16. 複雑化しがち
    隠蔽したい…!

    View full-size slide

  17. 例えばRuby on Rails
    その名の通りレールに乗ると幸せになれる
    CoC
    • 設定より規約
    • 規約に則ることで
    設定ファイルを無くす
    DRY
    • Don’t Repeat Yourself
    • 同じことを繰り返さない
    • 共通化
    REST
    • 分かりやすいURL表現
    • Routing
    • Mapping

    View full-size slide

  18. Serverlessの世界にFull-stack Frameworkは要らない
    でも、より気持ちよく理想的なServerless Applicationを作りたい

    View full-size slide

  19. どうすればそんなフレームワークに
    なるのだろうか…?
    ただのツールセットを公開しても…
    ツールセットでも十分やん!
    とりあえず公開してフィードバック回して
    改善してけばええんや!!

    View full-size slide

  20. まだまだこれから進化していきます

    View full-size slide

  21. We are waiting for
    Your contribution!!

    View full-size slide