fn project爆誕

15
Fn Project 爆誕!! @hhiroshell

Upload: hiroshi-hayakawa

Post on 21-Jan-2018

280 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Fn project爆誕

Fn Project 爆誕!!

@hhiroshell

Page 2: Fn project爆誕

自己紹介

早川 博(はやかわ ひろし)

@hhiroshell

• 日本オラクル 所属

• Pre-Sales Engineer / Tech Evangelist (new!)

• Java SE/EE, Microservices/DevOps

OSSやってもいいって!\(^o^)/

Page 3: Fn project爆誕

Fn Projecthttp://fnprojcet.io/

→ サーバーレス・フレームワーク

Page 4: Fn project爆誕

• Easy !• 全ての操作はシンプルなCLI。考え抜かれた開発者エクスペリエンス

• (このあとデモします。)

Open & Easy• Open !

Open Source (Apache 2.0)

どこでも動く• ラップトップ、サーバー、クラウド

マルチ言語サポート• Go, Java, Node, PHP,

Python, Ruby, Rust

Page 5: Fn project爆誕

FunctionFunction

Function

Function

FunctionFunction

Function

Function

Fn Serverfn-app/hello-node

fn-app/hello-java

構成• Fn Server上にFunction

が乗るDinD(Docker in Docker)構成

• トリガーがキックされる度に対応するFunctionのコンテナを立ち上げる

• コンテナ群の管理はCLIが隠蔽

Page 6: Fn project爆誕

Demo

Page 7: Fn project爆誕

• 複数のファンクションの連結を手続き的記述で実現

Fn Flow

※Flowは現在Javaのみ対応。随時対応言語を増やしていくとのこと

Page 8: Fn project爆誕

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• 並列・非同期処理

Page 9: Fn project爆誕

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• エラーハンドリング

Page 10: Fn project爆誕

• 複数のファンクションの連結を手続き的記述で実現

• 何がいいの?テストしやすいデバッグしやすい

Fn Flow

読んで理解しやすいエラー処理で死なない

Page 11: Fn project爆誕

Fn Projecthttp://fnprojcet.io/

→ Open & Easy

Page 12: Fn project爆誕

おまけ

Page 13: Fn project爆誕

手を動かしながら学ぶ!

「Kubernetes ときどき Serverless」-- CNDJP第1回 --

勉強会します!

http://bit.ly/cndjp1

Page 14: Fn project爆誕
Page 15: Fn project爆誕

Fin.