Serverless Spring
오 충현( coh@pivotal.io )
Senior Solutions Architect
1
𝑓 𝑥 = 𝑃𝐹𝑆 +
𝑛=1
∞
𝑆𝑝𝑟𝑖𝑛𝑔
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Safe Harbor Statement
The following is intended to outline the general direction of Pivotal's offerings. It is
intended for information purposes only and may not be incorporated into any
contract. Any information regarding pre-release of Pivotal offerings, future
updates or other planned modifications is subject to ongoing evaluation by Pivotal
and is subject to change. This information is provided without warranty or any
kind, express or implied, and is not a commitment to deliver any material, code, or
functionality, and should not be relied upon in making purchasing decisions
regarding Pivotal's offerings. These purchasing decisions should only be based on
features currently available. The development, release, and timing of any features
or functionality described for Pivotal's offerings in this presentation remain at the
sole discretion of Pivotal. Pivotal has no obligation to update forward looking
information in this presentation.
2
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
3
• Serverless? FaaS?
• Pivotal Function
Service
• PFS Demo
• Spring Cloud Function
Serverless? FaaS?
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
The Serverless wave is happening!
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
“Serverless architectures refer to applications that
significantly depend on third-party services (Backend as a
Service or BaaS) or on custom code that's run in ephemeral
containers (Function as a Service or FaaS)”
Serverless
‘서버는 존재하지만, 관리 대상이 아님’
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
왜 서버리스인가?
7
운영 효율개발 생산성
리소스
최적 활용
 Narrowly-scoped units
of code, and the
simplicity of built-in
event integration,
contribute to software
 Functions which don't
consume resources
when idle can provide
significant resource
efficiencies
 Zero Admin
 Auto self-scaling
 Automated event-
based scheduling
 Pay-per-use
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Function as a Service
8
PaaS FaaS
runs apps runs functions
push app to deploy server register function and bind it to a trigger
server runs and waits for requests function doesn't run until triggered
server listens to network platform deploys and invokes functions
server handles lots of requests functions handle events and then go away
scale out manually or by policy auto-scale based on concurrent event load
pay per instance pay per use – time & memory
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
현재 사용할 수 있는 FaaS
9
[ Cloud Service ] [ Open Source Project ]
Pivotal Function Service
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Pivotal Function Service
11
PFS는 개발자에게
자신의 ‘쿠버네티스’ 환경에
’함수’를 실행할 수 있는 서비스 제공(FaaS)
주요 기능
• Spring Cloud Data Flow 지원: Integration, ETL, EAI, 이벤트 스트림 처리
• 함수의 다양한 생명주기 지원: Jobs, warm container pools, streams,
suspend/resume
• 플러그인 가능한 함수 처리기: Shell, Node.js, Python, Spring/Java, …
• 플러그인 가능한 이벤트 브로커: Kafka, RabbitMQ
• 쿠버네티스 기반: Custom Resource Definitions, controllers, API aggregation
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
ICE 법칙
12
쿠버네티스기반 서버리스는 2개만 선택
Immediate
Instant-on
Consistent
Immutable
Containers
Efficient
Scale to Zero
• 요청 발생 시 함수 컨테이너 실행
=> 최초 실행 느림
• 실행 중인 컨테이너에 함수 코드 주입
=> 컨테이너 환경의 일관성 저해
• 함수 컨테이너를 계속 실행
=> 요청 없어도 리소스 점유(비용)
* Mark Fisher, Sep 2017
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Riff 프로젝트: Open Source FaaS
13
Riff는 ‘쿠버네티스’ 환경에
이벤트에 응대하여 ’함수’를
실행할 수 있는 서비스 제공
- PFS의 OSS 프로젝트
Features
★ event streaming
★ polyglot
★ Kubernetes-native
Events
f(x)
f(x)
f(x)
Functions
f(x)
riff
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
14
echo "hello $1"
greeter.sh
module.exports = (x) => x ** 2
square.js
개발자: 함수 코드 작성
public class Greeter implements Function<String, String> { public String
apply(String name) {
return "Hello " + name;
}
}
Greeter.java
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
플랫폼: 함수를 컨테이너에 탑재해서 배포
15
Function
Invoker
함수 컨테이너
기본 이미지
함수 레이어
함수 컨테이너
레지스트리
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
플랫폼: 이벤트 발생 시 함수 호출
16
Function Pod
Function ContainerSidecar Container
Event
Broker
broker-specific
API
binder dispatcher invoker function
HTTP
gRPC
stdio
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
17
플랫폼: 함수/토픽을 쿠버네티스 리소스로 관리
Function
Controller
Function YAML
- name
- input / output topics
- artifact / params
Topic YAML
- name
- params
KafkaHttp Gateway
Topic Controller
Sc Fn
Pod
Sc Fn
Pod
Sc Fn
Pod
k8s API
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
플랫폼: 이벤트 증가에 따라 자동 확장
riff function controller
★ interacts with K8s API
★ scales functions 0-1 and 1-N
★ monitors event-lag in Kafka
18
Function
Controller
Event Broker
f(x)
f(x)
f(x)
k8s API
Pivotal Function Service(Riff) 데모
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
20
helm init
helm repo add riffrepo https://riff.charts.storage.googleapps.com
helm repo update
Helm Chart로 설치
helm install riffrepo/riff --name s1p 
--set httpGateway.service.type=NodePort
Spring Cloud Function
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
“All the benefits of serverless, but with full access to Spring
and build tools. Decouple lifecycle of business logic from
runtime platform.”
Spring Cloud Function
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Cloud Function 특장점
• FaaS 서비스 제공자에 종속되지
않음
• 독립된 클래스로드를 사용한 스프링
부트로 실행 (JVM Packaging)
• 자바 8의 기본 함수 인터페이스 사용
• 자동 함수 컴포넌트 스캔
• 자바 함수 문자열을 동적 컴파일
• 클라우드 FaaS 에서 실행을 위한
Adapters 제공
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Cloud Function Web
24
HTTP
User Function
Web
Spring Boot
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
프로그램밍 모델: Function, Consumer,
Supplier
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
프로그램밍 모델: @Beans
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
프로그램밍 모델: Plain Old Function
package functions;
import java.util.function.Function;
public class Greeter implements Function<String, String> {
@Override
public String apply(String s) {
return "Serverless Spring:: " + s;
}
}
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Cloud Function Stream
28
HTTP
User Function
Stream
Spring Boot
Message
Web
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
29
public class VoteStreamProcessor
implements Function<Flux<String>, Flux<Map<String, Object>>> {
public Flux<Map<String, Object>> apply( Flux<String> words) {
return words.window(Duration.ofSeconds(60), Duration.ofSeconds(2))
.concatMap(w -> w.collect(VoteAggregate::new,
VoteAggregate::sum)
.map(VoteAggregate::windowMap), Integer.MAX_VALUE);
}
}
Programming Model: Streams using Reactor
VoteStreamProcessor.java
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Cloud Function Adapter
30
HTTP
User Function
Serverless Provider
Spring Boot
Message
Adapter
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
데모 : Streams using Reactor
31
HTTP
Gateway
Kafka
f(x)
f(x)
vote-counter
vote-stream
processor
votes
topic
redis
Wrap-up
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Enterprise PaaS
Unless otherwise indicated, these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Enterprise FaaS
Learn More. Stay Connected.
github.com/projectriff/riff
cloud.spring.io/spring-cloud-function
35
#springone@s1p
36
링크: https://goo.gl/53aEtB
행사 종료 후
설문에 참여한 분들께는
보온병을 선물로 드립니다.
등록데스크에서 설문 완료 페이지를
보여주시고 선물을 받아가시길 바랍니다
실시간 Q&A
질문 등록하기!
설문지 이벤트
참여하기!

Serverless Spring 오충현

  • 1.
    Serverless Spring 오 충현(coh@pivotal.io ) Senior Solutions Architect 1 𝑓 𝑥 = 𝑃𝐹𝑆 + 𝑛=1 ∞ 𝑆𝑝𝑟𝑖𝑛𝑔
  • 2.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Safe Harbor Statement The following is intended to outline the general direction of Pivotal's offerings. It is intended for information purposes only and may not be incorporated into any contract. Any information regarding pre-release of Pivotal offerings, future updates or other planned modifications is subject to ongoing evaluation by Pivotal and is subject to change. This information is provided without warranty or any kind, express or implied, and is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions regarding Pivotal's offerings. These purchasing decisions should only be based on features currently available. The development, release, and timing of any features or functionality described for Pivotal's offerings in this presentation remain at the sole discretion of Pivotal. Pivotal has no obligation to update forward looking information in this presentation. 2
  • 3.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 3 • Serverless? FaaS? • Pivotal Function Service • PFS Demo • Spring Cloud Function
  • 4.
  • 5.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ The Serverless wave is happening!
  • 6.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ “Serverless architectures refer to applications that significantly depend on third-party services (Backend as a Service or BaaS) or on custom code that's run in ephemeral containers (Function as a Service or FaaS)” Serverless ‘서버는 존재하지만, 관리 대상이 아님’
  • 7.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 왜 서버리스인가? 7 운영 효율개발 생산성 리소스 최적 활용  Narrowly-scoped units of code, and the simplicity of built-in event integration, contribute to software  Functions which don't consume resources when idle can provide significant resource efficiencies  Zero Admin  Auto self-scaling  Automated event- based scheduling  Pay-per-use
  • 8.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Function as a Service 8 PaaS FaaS runs apps runs functions push app to deploy server register function and bind it to a trigger server runs and waits for requests function doesn't run until triggered server listens to network platform deploys and invokes functions server handles lots of requests functions handle events and then go away scale out manually or by policy auto-scale based on concurrent event load pay per instance pay per use – time & memory
  • 9.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 현재 사용할 수 있는 FaaS 9 [ Cloud Service ] [ Open Source Project ]
  • 10.
  • 11.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Pivotal Function Service 11 PFS는 개발자에게 자신의 ‘쿠버네티스’ 환경에 ’함수’를 실행할 수 있는 서비스 제공(FaaS) 주요 기능 • Spring Cloud Data Flow 지원: Integration, ETL, EAI, 이벤트 스트림 처리 • 함수의 다양한 생명주기 지원: Jobs, warm container pools, streams, suspend/resume • 플러그인 가능한 함수 처리기: Shell, Node.js, Python, Spring/Java, … • 플러그인 가능한 이벤트 브로커: Kafka, RabbitMQ • 쿠버네티스 기반: Custom Resource Definitions, controllers, API aggregation
  • 12.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ ICE 법칙 12 쿠버네티스기반 서버리스는 2개만 선택 Immediate Instant-on Consistent Immutable Containers Efficient Scale to Zero • 요청 발생 시 함수 컨테이너 실행 => 최초 실행 느림 • 실행 중인 컨테이너에 함수 코드 주입 => 컨테이너 환경의 일관성 저해 • 함수 컨테이너를 계속 실행 => 요청 없어도 리소스 점유(비용) * Mark Fisher, Sep 2017
  • 13.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Riff 프로젝트: Open Source FaaS 13 Riff는 ‘쿠버네티스’ 환경에 이벤트에 응대하여 ’함수’를 실행할 수 있는 서비스 제공 - PFS의 OSS 프로젝트 Features ★ event streaming ★ polyglot ★ Kubernetes-native Events f(x) f(x) f(x) Functions f(x) riff
  • 14.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 14 echo "hello $1" greeter.sh module.exports = (x) => x ** 2 square.js 개발자: 함수 코드 작성 public class Greeter implements Function<String, String> { public String apply(String name) { return "Hello " + name; } } Greeter.java
  • 15.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 플랫폼: 함수를 컨테이너에 탑재해서 배포 15 Function Invoker 함수 컨테이너 기본 이미지 함수 레이어 함수 컨테이너 레지스트리
  • 16.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 플랫폼: 이벤트 발생 시 함수 호출 16 Function Pod Function ContainerSidecar Container Event Broker broker-specific API binder dispatcher invoker function HTTP gRPC stdio
  • 17.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 17 플랫폼: 함수/토픽을 쿠버네티스 리소스로 관리 Function Controller Function YAML - name - input / output topics - artifact / params Topic YAML - name - params KafkaHttp Gateway Topic Controller Sc Fn Pod Sc Fn Pod Sc Fn Pod k8s API
  • 18.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 플랫폼: 이벤트 증가에 따라 자동 확장 riff function controller ★ interacts with K8s API ★ scales functions 0-1 and 1-N ★ monitors event-lag in Kafka 18 Function Controller Event Broker f(x) f(x) f(x) k8s API
  • 19.
  • 20.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 20 helm init helm repo add riffrepo https://riff.charts.storage.googleapps.com helm repo update Helm Chart로 설치 helm install riffrepo/riff --name s1p --set httpGateway.service.type=NodePort
  • 21.
  • 22.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ “All the benefits of serverless, but with full access to Spring and build tools. Decouple lifecycle of business logic from runtime platform.” Spring Cloud Function
  • 23.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Cloud Function 특장점 • FaaS 서비스 제공자에 종속되지 않음 • 독립된 클래스로드를 사용한 스프링 부트로 실행 (JVM Packaging) • 자바 8의 기본 함수 인터페이스 사용 • 자동 함수 컴포넌트 스캔 • 자바 함수 문자열을 동적 컴파일 • 클라우드 FaaS 에서 실행을 위한 Adapters 제공
  • 24.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Cloud Function Web 24 HTTP User Function Web Spring Boot
  • 25.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 프로그램밍 모델: Function, Consumer, Supplier
  • 26.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 프로그램밍 모델: @Beans
  • 27.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 프로그램밍 모델: Plain Old Function package functions; import java.util.function.Function; public class Greeter implements Function<String, String> { @Override public String apply(String s) { return "Serverless Spring:: " + s; } }
  • 28.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Cloud Function Stream 28 HTTP User Function Stream Spring Boot Message Web
  • 29.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 29 public class VoteStreamProcessor implements Function<Flux<String>, Flux<Map<String, Object>>> { public Flux<Map<String, Object>> apply( Flux<String> words) { return words.window(Duration.ofSeconds(60), Duration.ofSeconds(2)) .concatMap(w -> w.collect(VoteAggregate::new, VoteAggregate::sum) .map(VoteAggregate::windowMap), Integer.MAX_VALUE); } } Programming Model: Streams using Reactor VoteStreamProcessor.java
  • 30.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Cloud Function Adapter 30 HTTP User Function Serverless Provider Spring Boot Message Adapter
  • 31.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 데모 : Streams using Reactor 31 HTTP Gateway Kafka f(x) f(x) vote-counter vote-stream processor votes topic redis
  • 32.
  • 33.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Enterprise PaaS
  • 34.
    Unless otherwise indicated,these slides are © 2013 -2018 Piv otal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Enterprise FaaS
  • 35.
    Learn More. StayConnected. github.com/projectriff/riff cloud.spring.io/spring-cloud-function 35 #springone@s1p
  • 36.
    36 링크: https://goo.gl/53aEtB 행사 종료후 설문에 참여한 분들께는 보온병을 선물로 드립니다. 등록데스크에서 설문 완료 페이지를 보여주시고 선물을 받아가시길 바랍니다 실시간 Q&A 질문 등록하기! 설문지 이벤트 참여하기!