Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Fn project爆誕

450 views

Published on

Node学園28時限目でFn ProjectについてLTした時の資料です。

Published in: Software
  • Be the first to comment

Fn project爆誕

  1. 1. Fn Project 爆誕!! @hhiroshell
  2. 2. 自己紹介 早川 博(はやかわ ひろし) @hhiroshell • 日本オラクル 所属 • Pre-Sales Engineer / Tech Evangelist (new!) • Java SE/EE, Microservices/DevOps OSSやってもいいって!\(^o^)/
  3. 3. Fn Project http://fnprojcet.io/ → サーバーレス・フレームワーク
  4. 4. • Easy ! • 全ての操作はシンプルなCLI。考え抜かれた開発者エクスペリエンス • (このあとデモします。) Open & Easy • Open ! Open Source (Apache 2.0) どこでも動く • ラップトップ、サーバー、クラウド マルチ言語サポート • Go, Java, Node, PHP, Python, Ruby, Rust
  5. 5. FunctionFunction Functio n Functio n FunctionFunction Functio n Functio n Fn Serverfn-app/hello-node fn-app/hello-java 構成 • Fn Server上にFunction が乗るDinD(Docker in Docker)構成 • トリガーがキックされる度に対応 するFunctionのコンテナを立ち 上げる • コンテナ群の管理はCLIが隠蔽
  6. 6. Demo
  7. 7. • 複数のファンクションの連結を手続き的記述で実現 Fn Flow ※ Flowは現在Javaのみ対応。随時対応言語を増やしていくとのこと
  8. 8. Flow fl = Flows.currentFlow(); FlowFuture<String> f1 = fl.supply(() -> { try { Thread.sleep((long)(Math.random() * 5000)); } catch(Exception e) {} return "Hello"; }); FlowFuture<String> f2 = fl.supply(() -> { try { Thread.sleep((long)(Math.random() * 5000)); } catch(Exception e) {} return "World"; }); fl.anyOf(f1, f2).thenApply(result -> ((String)result).toUpperCase()); Fn Flow • 並列・非同期処理
  9. 9. Flow fl = Flows.currentFlow(); FlowFuture<String> f1 = fl.supply(() -> { if (System.currentTimeMillis() % 2L == 0L) { throw new RuntimeException("Error in stage"); } return 100; }).handle((val, err) -> { if (err != null){ return "An error occurred in this function"; } else { return "The result was good: " + val; } }); Fn Flow • エラーハンドリング
  10. 10. • 複数のファンクションの連結を手続き的記述で実現 • 何がいいの? テストしやすい デバッグしやすい Fn Flow 読んで理解しやすい エラー処理で死なない
  11. 11. Fn Project http://fnprojcet.io/ → Open & Easy
  12. 12. おまけ
  13. 13. 手を動かしながら学ぶ! 「Kubernetes ときどき Serverless」-- CNDJP第1回 -- 勉強会します! http://bit.ly/cndjp1
  14. 14. Fin.

×