SlideShare a Scribd company logo
1 of 56
Download to read offline
© 2017 IBM Corporation
홍상표
KSUG(Korea Spring User Group) 일꾼
Backend Developer in SK Planet
Spring Cloud Function
Serverless Framework
© 2017 IBM Corporation Page 2
Spring Cloud Function
Spring Cloud Function
– http://cloud.spring.io/spring-cloud-function
– 1.0.0.M1 Release
– https://spring.io/blog/2017/07/05/introducing-spring-cloud-function
– https://springoneplatform.io/sessions/serverless-spring
© 2017 IBM Corporation Page 3
Spring Cloud Function
© 2017 IBM Corporation Page 4
Goals
Spring Cloud Function
– Promote the implementation of business logic via functions.
– Decouple the development lifecycle of business logic from any specific runtime
target so that the same code can run as a web endpoint, a stream processor, or a
task.
– Support a uniform programming model across serverless providers, as well as the
ability to run standalone (locally or in a PaaS).
– Enable Spring Boot features (auto-configuration, dependency injection, metrics) on
serverless providers.
© 2017 IBM Corporation Page 5
영문자를 입력받아 대문자를 반환하는 함수
Spring Cloud Function
public class Application {
public Function<String, String> uppercase() {
return new Function<String, String>(){
@Override
public String apply(String value) {
return value.toUpperCase();
}
};
}
}
© 2017 IBM Corporation Page 6
영문자를 입력받아 대문자를 반환하는 함수
Spring Cloud Function
public class Application {
public Function<String, String> uppercase() {
return value -> value.toUpperCase();
}
}
© 2017 IBM Corporation Page 7
영문자를 입력받아 대문자를 반환하는 함수
Spring Cloud Function
public class Application {
public Function<String, String> uppercase() {
return value -> value.toUpperCase();
}
public static void main(String[] args) {
Application application = new Application();
String inStr = "korea spring user group";
String outStr = application.uppercase().apply(inStr);
System.out.println(outStr);
}
}
© 2017 IBM Corporation Page 8
Spring Cloud Function
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
영문자를 입력받아 대문자를 반환하는 함수
: Spring Web
© 2017 IBM Corporation Page 9
Spring Cloud Function
@SpringBootApplication
@RestController
public class ServerlessApplication {
public Function<String, String> uppercase() {
return value -> value.toUpperCase();
}
@RequestMapping("uppercase")
public String uppercase(@RequestBody String value) {
return uppercase().apply(value);
}
public static void main(String[] args) {
SpringApplication.run(ServerlessApplication.class, args);
}
}
영문자를 입력받아 대문자를 반환하는 함수
: Spring Web
© 2017 IBM Corporation Page 10
Spring Cloud Function
>curl -H "Content-Type: text/plain" localhost:8080/uppercase -d hello
>HELLO
영문자를 입력받아 대문자를 반환하는 함수
: Spring Web
© 2017 IBM Corporation Page 11
영문자를 입력받아 대문자를 반환하는 함수
: Spring Cloud Function
Spring Cloud Function
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-function-web</artifactId>
</dependency>
© 2017 IBM Corporation Page 12
영문자를 입력받아 대문자를 반환하는 함수
: Spring Cloud Function
Spring Cloud Function
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-function-web</artifactId>
</dependency>
Java 8, Springboot 1.5.x
© 2017 IBM Corporation Page 13
Spring Cloud Function
@SpringBootApplication
@RestController
public class ServerlessApplication {
public Function<String, String> uppercase() {
return value -> value.toUpperCase();
}
@RequestMapping("uppercase")
public String uppercase(@RequestBody String value) {
return uppercase().apply(value);
}
public static void main(String[] args) {
SpringApplication.run(ServerlessApplication.class, args);
}
}
영문자를 입력받아 대문자를 반환하는 함수
: Spring Web
© 2017 IBM Corporation Page 14
Spring Cloud Function
@SpringBootApplication
public class CloudFunctionApplication {
@Bean
public Function<String, String> uppercase() {
return value -> value.toUpperCase();
}
public static void main(String[] args) {
SpringApplication.run(CloudFunctionApplication.class, args);
}
}
영문자를 입력받아 대문자를 반환하는 함수
: Spring Cloud Function
© 2017 IBM Corporation Page 15
Spring Cloud Function
>curl -H "Content-Type: text/plain" localhost:8080/uppercase -d hello
>HELLO
영문자를 입력받아 대문자를 반환하는 함수
: Spring Cloud Function
© 2017 IBM Corporation Page
Functions
16
Spring Cloud Function Web
: Spring Cloud Function Web 흐름도.
Spring Cloud Function
HTTP Web
Spring Boot
Function
Function
© 2017 IBM Corporation Page 17
Spring Cloud Function
public interface Function<T, R> {
R apply(T t);
}
Spring Cloud Function
: java.util.function interface
© 2017 IBM Corporation Page 18
Spring Cloud Function
public interface Consumer<T> {
void accept(T t);
}
Spring Cloud Function
: java.util.function interface
© 2017 IBM Corporation Page 19
Spring Cloud Function
public interface Supplier<T> {
T get();
}
Spring Cloud Function
: java.util.function interface
© 2017 IBM Corporation Page 20
Spring Cloud Function Stream
Spring Cloud Function
@SpringBootApplication
public class Application {
@Bean
public Function<Flux<String>, Flux<String>> uppercase() {
return flux -> flux.map(value -> value.toUpperCase());
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
© 2017 IBM Corporation Page
Functions
21
Spring Cloud Function
Spring Boot
Function
FunctionStream
Message
Spring Cloud Function Stream
: Spring Cloud Function Stream 흐름도.
© 2017 IBM Corporation Page 22
Goals
Spring Cloud Function
– Promote the implementation of business logic via functions.
– Decouple the development lifecycle of business logic from any specific runtime target
so that the same code can run as a web endpoint, a stream processor, or a task.
– Support a uniform programming model across serverless providers, as well as the
ability to run standalone (locally or in a PaaS).
– Enable Spring Boot features (auto-configuration, dependency injection, metrics) on
serverless providers.
© 2017 IBM Corporation Page
Functions
23
Spring Cloud Function Adapter
Spring Cloud Function
HTTP
Serverless Provider
IBM Cloud Function
Function
Function
Adapter
Message
Serverless Provider
AWS Lamda
© 2017 IBM Corporation Page 24
Spring Cloud Function Adapter
Spring Cloud Function
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-function-adapter-openwhisk</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-function-adapter-aws</artifactId>
</dependency>
© 2017 IBM Corporation Page 25
예제
package functions;
import java.util.Optional;
import java.util.function.Function;
public class Uppercase implements Function<String, String> {
@Override
public String apply(String input) {
return Optional.ofNullable(input).map(String::toUpperCase).orElse("");
}
}
Spring Cloud Function
© 2017 IBM Corporation Page 26
예제
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-function-adapter-openwhisk</artifactId>
</dependency>
Spring Cloud Function
© 2017 IBM Corporation Page 27
Docker
Spring Cloud Function
https://docs.docker.com/docker-for-mac/install/
© 2017 IBM Corporation Page 28
Docker
Spring Cloud Function
© 2017 IBM Corporation Page 29
Docker
Spring Cloud Function
© 2017 IBM Corporation Page 30
예제
Spring Cloud Function
– Dockerfile
FROM openjdk:8-jdk-alpine
ADD build/libs/function.jar .
ENV JAVA_OPTS=""
ENTRYPOINT [ "java", "-jar", "function.jar", "--function.name=uppercase"]
EXPOSE 8080
© 2017 IBM Corporation Page 31
예제
Spring Cloud Function
> docker build -t hspmuse/function-on-spring-cloud-function .
© 2017 IBM Corporation Page 32
예제
Spring Cloud Function
> docker push hspmuse/function-on-spring-cloud-function
© 2017 IBM Corporation Page 33
예제
Spring Cloud Function
https://hub.docker.com
© 2017 IBM Corporation Page 34
예제
Spring Cloud Function
https://hub.docker.com/
© 2017 IBM Corporation Page 35
예제
Spring Cloud Function
> bx wsk
action create function-on-spring-cloud-function

-m 512
--docker hspmuse/function-on-spring-cloud-function
© 2017 IBM Corporation Page 36
예제
Spring Cloud Function
© 2017 IBM Corporation Page 37
예제
Spring Cloud Function
> bx wsk action invoke function-on-spring-cloud-function --param payload
ksug --result
© 2017 IBM Corporation Page 38
예제
Spring Cloud Function
© 2017 IBM Corporation Page 39
예제
Spring Cloud Function
© 2017 IBM Corporation Page 40
예제
Spring Cloud Function
© 2017 IBM Corporation Page 41
Spring Cloud Function
https://openwhisk.ng.bluemix.net/api/v1/namespaces/ksug_dev/actions/
function-on-spring-cloud-function
© 2017 IBM Corporation Page 42
Spring Cloud Function
Spring Cloud Function
© 2017 IBM Corporation Page 43
Serverless
Serverless
Server + less
© 2017 IBM Corporation Page 44
Serverless
Serverless
~ less : ~이 없는
Server + less
© 2017 IBM Corporation Page 45
Serverless
Serverless
Server + (manage)less
© 2017 IBM Corporation Page 46
Serverless Architecture
Serverless
– 특정이벤트에 동작하는 함수를 등록, 이벤트가 발생하면 함수가 실행.
– 서버 관리가 사라진 구조.
– 자동으로 스케일 업/다운.
– 사용한 만큼 비용 지불.
– Faas(Function as a Service)
© 2017 IBM Corporation Page 47
IBM Cloud Function 비용
Serverless
© 2017 IBM Corporation Page 48
3-tier Architecture
Serverless
참조 : https://martinfowler.com/articles/serverless.html
© 2017 IBM Corporation Page 49
Serverless Architecture
Serverless
참조 : https://martinfowler.com/articles/serverless.html
© 2017 IBM Corporation Page 50
Serverless Architecture
Serverless
참조 : https://martinfowler.com/articles/serverless.html
© 2017 IBM Corporation Page 51
Serverless 추가정보
Serverless
마틴파일러 사이트
https://martinfowler.com/articles/serverless.html
번역본
http://blog.aliencube.org/ko/2016/06/23/serverless-architectures/
© 2017 IBM Corporation Page 52
Serverless Provider
Serverless
– IBM Cloud Functions : OpenWhisk
– Amazon Lambda
– Google Cloud Functions.
– Azure Function.
– Fission
– Kubeless
– …….
© 2017 IBM Corporation Page 53
Serverless Provider
Serverless
– IBM Cloud Functions : OpenWhisk
– Amazon Lambda
– Google Cloud Functions.
– Azure Function.
– Fission
– Kubeless
– …….
© 2017 IBM Corporation Page 54
마무리.
Spring Cloud Function
– Spring Developer : 좀더 친숙하게 Function 개발.
– Function 개발자 : Spring을 알 필요 없음.
– 동일한 코드를 다양한 서버리스 프로바이더에서 실행.
– 서버리스 프로바이더에 독립.
– 동일한 deploy.
© 2017 IBM Corporation Page 55
참조.
Spring Cloud Function
– https://spring.io/blog/2017/07/05/introducing-spring-cloud-function
– http://cloud.spring.io/spring-cloud-function
– https://martinfowler.com/articles/serverless.html

( 번역 : http://blog.aliencube.org/ko/2016/06/23/serverless-architectures/ )
– https://www.youtube.com/watch?v=lJEYG2PjGNU

( 발표 PT : http://presos.dsyer.com/decks/road-to-serverless.html )
– http://www.kennybastani.com/2017/07/microservices-to-service-blocks-spring-
cloud-function-aws-lambda.html
© 2017 IBM Corporation Page 56
궁금한 점은..…
Spring Cloud Function
– KSUG 구글 그룹

https://groups.google.com/forum/#!categories/ksug

– KSUG 페이스북 그룹

https://www.facebook.com/groups/springkorea/?ref=bookmarks

More Related Content

What's hot

Spring Native and Spring AOT
Spring Native and Spring AOTSpring Native and Spring AOT
Spring Native and Spring AOTVMware Tanzu
 
ASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with OverviewASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with OverviewShahed Chowdhuri
 
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1tServerless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1tToshiaki Maki
 
Web Worker, Service Worker and Worklets
Web Worker, Service Worker and WorkletsWeb Worker, Service Worker and Worklets
Web Worker, Service Worker and WorkletsKeshav Gupta
 
Use Symfony Messenger Component and CQRS!
Use Symfony Messenger Component and CQRS!Use Symfony Messenger Component and CQRS!
Use Symfony Messenger Component and CQRS!Žilvinas Kuusas
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring FrameworkHùng Nguyễn Huy
 
Introduction to webassembly
Introduction to webassemblyIntroduction to webassembly
Introduction to webassemblyGabriele Falasca
 
Spring Boot on Amazon Web Services with Spring Cloud AWS
Spring Boot on Amazon Web Services with Spring Cloud AWSSpring Boot on Amazon Web Services with Spring Cloud AWS
Spring Boot on Amazon Web Services with Spring Cloud AWSVMware Tanzu
 
Microservices Design Patterns Explained | Edureka
Microservices Design Patterns Explained | EdurekaMicroservices Design Patterns Explained | Edureka
Microservices Design Patterns Explained | EdurekaEdureka!
 
Connecting Connect with Spring Boot
Connecting Connect with Spring BootConnecting Connect with Spring Boot
Connecting Connect with Spring BootVincent Kok
 
Reactive programming
Reactive programmingReactive programming
Reactive programmingSUDIP GHOSH
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecturetyrantbrian
 
Spring the Ripper by Evgeny Borisov
Spring the Ripper by Evgeny BorisovSpring the Ripper by Evgeny Borisov
Spring the Ripper by Evgeny BorisovJavaDayUA
 

What's hot (20)

Spring Native and Spring AOT
Spring Native and Spring AOTSpring Native and Spring AOT
Spring Native and Spring AOT
 
ASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with OverviewASP.NET Core MVC + Web API with Overview
ASP.NET Core MVC + Web API with Overview
 
Xke spring boot
Xke spring bootXke spring boot
Xke spring boot
 
Springboot Microservices
Springboot MicroservicesSpringboot Microservices
Springboot Microservices
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Spring boot
Spring bootSpring boot
Spring boot
 
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1tServerless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
 
Web Worker, Service Worker and Worklets
Web Worker, Service Worker and WorkletsWeb Worker, Service Worker and Worklets
Web Worker, Service Worker and Worklets
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Use Symfony Messenger Component and CQRS!
Use Symfony Messenger Component and CQRS!Use Symfony Messenger Component and CQRS!
Use Symfony Messenger Component and CQRS!
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
 
Introduction to webassembly
Introduction to webassemblyIntroduction to webassembly
Introduction to webassembly
 
Spring Boot on Amazon Web Services with Spring Cloud AWS
Spring Boot on Amazon Web Services with Spring Cloud AWSSpring Boot on Amazon Web Services with Spring Cloud AWS
Spring Boot on Amazon Web Services with Spring Cloud AWS
 
Spring boot
Spring bootSpring boot
Spring boot
 
Microservices Design Patterns Explained | Edureka
Microservices Design Patterns Explained | EdurekaMicroservices Design Patterns Explained | Edureka
Microservices Design Patterns Explained | Edureka
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Connecting Connect with Spring Boot
Connecting Connect with Spring BootConnecting Connect with Spring Boot
Connecting Connect with Spring Boot
 
Reactive programming
Reactive programmingReactive programming
Reactive programming
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
Spring the Ripper by Evgeny Borisov
Spring the Ripper by Evgeny BorisovSpring the Ripper by Evgeny Borisov
Spring the Ripper by Evgeny Borisov
 

Similar to Spring Cloud Function

Spring Cloud Function & Project riff #jsug
Spring Cloud Function & Project riff #jsugSpring Cloud Function & Project riff #jsug
Spring Cloud Function & Project riff #jsugToshiaki Maki
 
Serverless Spring by Stephane Maldini
Serverless Spring by Stephane MaldiniServerless Spring by Stephane Maldini
Serverless Spring by Stephane MaldiniVMware Tanzu
 
The Crazy Service Mesh Ecosystem
The Crazy Service Mesh EcosystemThe Crazy Service Mesh Ecosystem
The Crazy Service Mesh EcosystemAll Things Open
 
All things open 2019 crazy-sm-ecosystem
All things open 2019 crazy-sm-ecosystemAll things open 2019 crazy-sm-ecosystem
All things open 2019 crazy-sm-ecosystemLin Sun
 
Rest web service_with_spring_hateoas
Rest web service_with_spring_hateoasRest web service_with_spring_hateoas
Rest web service_with_spring_hateoasZeid Hassan
 
[Codemash] Caching Made "Bootiful"!
[Codemash] Caching Made "Bootiful"![Codemash] Caching Made "Bootiful"!
[Codemash] Caching Made "Bootiful"!Viktor Gamov
 
Let's play with adf 3.0
Let's play with adf 3.0Let's play with adf 3.0
Let's play with adf 3.0Eugenio Romano
 
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMwareEvent Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMwareHostedbyConfluent
 
A Walking Tour of (almost) all of Springdom
A Walking Tour of (almost) all of Springdom A Walking Tour of (almost) all of Springdom
A Walking Tour of (almost) all of Springdom Joshua Long
 
Cloud Application Blueprints with Apache Brooklyn by Alex Henevald
Cloud Application Blueprints with Apache Brooklyn by Alex HenevaldCloud Application Blueprints with Apache Brooklyn by Alex Henevald
Cloud Application Blueprints with Apache Brooklyn by Alex Henevaldbuildacloud
 
SpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSASpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSAOracle Korea
 
Simplify Cloud Applications using Spring Cloud
Simplify Cloud Applications using Spring CloudSimplify Cloud Applications using Spring Cloud
Simplify Cloud Applications using Spring CloudRamnivas Laddad
 
Breaking the Monolith Using AWS Container Services
Breaking the Monolith Using AWS Container ServicesBreaking the Monolith Using AWS Container Services
Breaking the Monolith Using AWS Container ServicesAmazon Web Services
 
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten ZiegelerNew and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegelermfrancis
 
Microservices with kubernetes @190316
Microservices with kubernetes @190316Microservices with kubernetes @190316
Microservices with kubernetes @190316Jupil Hwang
 
Codemotion Berlin 2017 - Event-driven and serverless applications with IBM Cl...
Codemotion Berlin 2017 - Event-driven and serverless applications with IBM Cl...Codemotion Berlin 2017 - Event-driven and serverless applications with IBM Cl...
Codemotion Berlin 2017 - Event-driven and serverless applications with IBM Cl...Frederic Lavigne
 
Extending uBuild and uDeploy with Plugins
Extending uBuild and uDeploy with PluginsExtending uBuild and uDeploy with Plugins
Extending uBuild and uDeploy with PluginsIBM UrbanCode Products
 
"Automating AWS Infrastructure with PowerShell", Martin Beeby, AWS Dev Day Ky...
"Automating AWS Infrastructure with PowerShell", Martin Beeby, AWS Dev Day Ky..."Automating AWS Infrastructure with PowerShell", Martin Beeby, AWS Dev Day Ky...
"Automating AWS Infrastructure with PowerShell", Martin Beeby, AWS Dev Day Ky...Provectus
 

Similar to Spring Cloud Function (20)

Spring Cloud Function & Project riff #jsug
Spring Cloud Function & Project riff #jsugSpring Cloud Function & Project riff #jsug
Spring Cloud Function & Project riff #jsug
 
Serverless Spring by Stephane Maldini
Serverless Spring by Stephane MaldiniServerless Spring by Stephane Maldini
Serverless Spring by Stephane Maldini
 
The Crazy Service Mesh Ecosystem
The Crazy Service Mesh EcosystemThe Crazy Service Mesh Ecosystem
The Crazy Service Mesh Ecosystem
 
All things open 2019 crazy-sm-ecosystem
All things open 2019 crazy-sm-ecosystemAll things open 2019 crazy-sm-ecosystem
All things open 2019 crazy-sm-ecosystem
 
Rest web service_with_spring_hateoas
Rest web service_with_spring_hateoasRest web service_with_spring_hateoas
Rest web service_with_spring_hateoas
 
[Codemash] Caching Made "Bootiful"!
[Codemash] Caching Made "Bootiful"![Codemash] Caching Made "Bootiful"!
[Codemash] Caching Made "Bootiful"!
 
Let's play with adf 3.0
Let's play with adf 3.0Let's play with adf 3.0
Let's play with adf 3.0
 
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMwareEvent Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
Event Streaming with Kafka Streams and Spring Cloud Stream | Soby Chacko, VMware
 
A Walking Tour of (almost) all of Springdom
A Walking Tour of (almost) all of Springdom A Walking Tour of (almost) all of Springdom
A Walking Tour of (almost) all of Springdom
 
Cloud Application Blueprints with Apache Brooklyn by Alex Henevald
Cloud Application Blueprints with Apache Brooklyn by Alex HenevaldCloud Application Blueprints with Apache Brooklyn by Alex Henevald
Cloud Application Blueprints with Apache Brooklyn by Alex Henevald
 
SpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSASpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSA
 
Simplify Cloud Applications using Spring Cloud
Simplify Cloud Applications using Spring CloudSimplify Cloud Applications using Spring Cloud
Simplify Cloud Applications using Spring Cloud
 
Breaking the Monolith Using AWS Container Services
Breaking the Monolith Using AWS Container ServicesBreaking the Monolith Using AWS Container Services
Breaking the Monolith Using AWS Container Services
 
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten ZiegelerNew and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
New and cool in OSGi R7 - David Bosschaert & Carsten Ziegeler
 
Microservices with kubernetes @190316
Microservices with kubernetes @190316Microservices with kubernetes @190316
Microservices with kubernetes @190316
 
Mashups
MashupsMashups
Mashups
 
Codemotion Berlin 2017 - Event-driven and serverless applications with IBM Cl...
Codemotion Berlin 2017 - Event-driven and serverless applications with IBM Cl...Codemotion Berlin 2017 - Event-driven and serverless applications with IBM Cl...
Codemotion Berlin 2017 - Event-driven and serverless applications with IBM Cl...
 
Extending uBuild and uDeploy with Plugins
Extending uBuild and uDeploy with PluginsExtending uBuild and uDeploy with Plugins
Extending uBuild and uDeploy with Plugins
 
Deep Dive - CI/CD on AWS
Deep Dive - CI/CD on AWSDeep Dive - CI/CD on AWS
Deep Dive - CI/CD on AWS
 
"Automating AWS Infrastructure with PowerShell", Martin Beeby, AWS Dev Day Ky...
"Automating AWS Infrastructure with PowerShell", Martin Beeby, AWS Dev Day Ky..."Automating AWS Infrastructure with PowerShell", Martin Beeby, AWS Dev Day Ky...
"Automating AWS Infrastructure with PowerShell", Martin Beeby, AWS Dev Day Ky...
 

Recently uploaded

Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 

Recently uploaded (20)

Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 

Spring Cloud Function

  • 1. © 2017 IBM Corporation 홍상표 KSUG(Korea Spring User Group) 일꾼 Backend Developer in SK Planet Spring Cloud Function Serverless Framework
  • 2. © 2017 IBM Corporation Page 2 Spring Cloud Function Spring Cloud Function – http://cloud.spring.io/spring-cloud-function – 1.0.0.M1 Release – https://spring.io/blog/2017/07/05/introducing-spring-cloud-function – https://springoneplatform.io/sessions/serverless-spring
  • 3. © 2017 IBM Corporation Page 3 Spring Cloud Function
  • 4. © 2017 IBM Corporation Page 4 Goals Spring Cloud Function – Promote the implementation of business logic via functions. – Decouple the development lifecycle of business logic from any specific runtime target so that the same code can run as a web endpoint, a stream processor, or a task. – Support a uniform programming model across serverless providers, as well as the ability to run standalone (locally or in a PaaS). – Enable Spring Boot features (auto-configuration, dependency injection, metrics) on serverless providers.
  • 5. © 2017 IBM Corporation Page 5 영문자를 입력받아 대문자를 반환하는 함수 Spring Cloud Function public class Application { public Function<String, String> uppercase() { return new Function<String, String>(){ @Override public String apply(String value) { return value.toUpperCase(); } }; } }
  • 6. © 2017 IBM Corporation Page 6 영문자를 입력받아 대문자를 반환하는 함수 Spring Cloud Function public class Application { public Function<String, String> uppercase() { return value -> value.toUpperCase(); } }
  • 7. © 2017 IBM Corporation Page 7 영문자를 입력받아 대문자를 반환하는 함수 Spring Cloud Function public class Application { public Function<String, String> uppercase() { return value -> value.toUpperCase(); } public static void main(String[] args) { Application application = new Application(); String inStr = "korea spring user group"; String outStr = application.uppercase().apply(inStr); System.out.println(outStr); } }
  • 8. © 2017 IBM Corporation Page 8 Spring Cloud Function <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> 영문자를 입력받아 대문자를 반환하는 함수 : Spring Web
  • 9. © 2017 IBM Corporation Page 9 Spring Cloud Function @SpringBootApplication @RestController public class ServerlessApplication { public Function<String, String> uppercase() { return value -> value.toUpperCase(); } @RequestMapping("uppercase") public String uppercase(@RequestBody String value) { return uppercase().apply(value); } public static void main(String[] args) { SpringApplication.run(ServerlessApplication.class, args); } } 영문자를 입력받아 대문자를 반환하는 함수 : Spring Web
  • 10. © 2017 IBM Corporation Page 10 Spring Cloud Function >curl -H "Content-Type: text/plain" localhost:8080/uppercase -d hello >HELLO 영문자를 입력받아 대문자를 반환하는 함수 : Spring Web
  • 11. © 2017 IBM Corporation Page 11 영문자를 입력받아 대문자를 반환하는 함수 : Spring Cloud Function Spring Cloud Function <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-function-web</artifactId> </dependency>
  • 12. © 2017 IBM Corporation Page 12 영문자를 입력받아 대문자를 반환하는 함수 : Spring Cloud Function Spring Cloud Function <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-function-web</artifactId> </dependency> Java 8, Springboot 1.5.x
  • 13. © 2017 IBM Corporation Page 13 Spring Cloud Function @SpringBootApplication @RestController public class ServerlessApplication { public Function<String, String> uppercase() { return value -> value.toUpperCase(); } @RequestMapping("uppercase") public String uppercase(@RequestBody String value) { return uppercase().apply(value); } public static void main(String[] args) { SpringApplication.run(ServerlessApplication.class, args); } } 영문자를 입력받아 대문자를 반환하는 함수 : Spring Web
  • 14. © 2017 IBM Corporation Page 14 Spring Cloud Function @SpringBootApplication public class CloudFunctionApplication { @Bean public Function<String, String> uppercase() { return value -> value.toUpperCase(); } public static void main(String[] args) { SpringApplication.run(CloudFunctionApplication.class, args); } } 영문자를 입력받아 대문자를 반환하는 함수 : Spring Cloud Function
  • 15. © 2017 IBM Corporation Page 15 Spring Cloud Function >curl -H "Content-Type: text/plain" localhost:8080/uppercase -d hello >HELLO 영문자를 입력받아 대문자를 반환하는 함수 : Spring Cloud Function
  • 16. © 2017 IBM Corporation Page Functions 16 Spring Cloud Function Web : Spring Cloud Function Web 흐름도. Spring Cloud Function HTTP Web Spring Boot Function Function
  • 17. © 2017 IBM Corporation Page 17 Spring Cloud Function public interface Function<T, R> { R apply(T t); } Spring Cloud Function : java.util.function interface
  • 18. © 2017 IBM Corporation Page 18 Spring Cloud Function public interface Consumer<T> { void accept(T t); } Spring Cloud Function : java.util.function interface
  • 19. © 2017 IBM Corporation Page 19 Spring Cloud Function public interface Supplier<T> { T get(); } Spring Cloud Function : java.util.function interface
  • 20. © 2017 IBM Corporation Page 20 Spring Cloud Function Stream Spring Cloud Function @SpringBootApplication public class Application { @Bean public Function<Flux<String>, Flux<String>> uppercase() { return flux -> flux.map(value -> value.toUpperCase()); } public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
  • 21. © 2017 IBM Corporation Page Functions 21 Spring Cloud Function Spring Boot Function FunctionStream Message Spring Cloud Function Stream : Spring Cloud Function Stream 흐름도.
  • 22. © 2017 IBM Corporation Page 22 Goals Spring Cloud Function – Promote the implementation of business logic via functions. – Decouple the development lifecycle of business logic from any specific runtime target so that the same code can run as a web endpoint, a stream processor, or a task. – Support a uniform programming model across serverless providers, as well as the ability to run standalone (locally or in a PaaS). – Enable Spring Boot features (auto-configuration, dependency injection, metrics) on serverless providers.
  • 23. © 2017 IBM Corporation Page Functions 23 Spring Cloud Function Adapter Spring Cloud Function HTTP Serverless Provider IBM Cloud Function Function Function Adapter Message Serverless Provider AWS Lamda
  • 24. © 2017 IBM Corporation Page 24 Spring Cloud Function Adapter Spring Cloud Function <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-function-adapter-openwhisk</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-function-adapter-aws</artifactId> </dependency>
  • 25. © 2017 IBM Corporation Page 25 예제 package functions; import java.util.Optional; import java.util.function.Function; public class Uppercase implements Function<String, String> { @Override public String apply(String input) { return Optional.ofNullable(input).map(String::toUpperCase).orElse(""); } } Spring Cloud Function
  • 26. © 2017 IBM Corporation Page 26 예제 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-function-adapter-openwhisk</artifactId> </dependency> Spring Cloud Function
  • 27. © 2017 IBM Corporation Page 27 Docker Spring Cloud Function https://docs.docker.com/docker-for-mac/install/
  • 28. © 2017 IBM Corporation Page 28 Docker Spring Cloud Function
  • 29. © 2017 IBM Corporation Page 29 Docker Spring Cloud Function
  • 30. © 2017 IBM Corporation Page 30 예제 Spring Cloud Function – Dockerfile FROM openjdk:8-jdk-alpine ADD build/libs/function.jar . ENV JAVA_OPTS="" ENTRYPOINT [ "java", "-jar", "function.jar", "--function.name=uppercase"] EXPOSE 8080
  • 31. © 2017 IBM Corporation Page 31 예제 Spring Cloud Function > docker build -t hspmuse/function-on-spring-cloud-function .
  • 32. © 2017 IBM Corporation Page 32 예제 Spring Cloud Function > docker push hspmuse/function-on-spring-cloud-function
  • 33. © 2017 IBM Corporation Page 33 예제 Spring Cloud Function https://hub.docker.com
  • 34. © 2017 IBM Corporation Page 34 예제 Spring Cloud Function https://hub.docker.com/
  • 35. © 2017 IBM Corporation Page 35 예제 Spring Cloud Function > bx wsk action create function-on-spring-cloud-function
 -m 512 --docker hspmuse/function-on-spring-cloud-function
  • 36. © 2017 IBM Corporation Page 36 예제 Spring Cloud Function
  • 37. © 2017 IBM Corporation Page 37 예제 Spring Cloud Function > bx wsk action invoke function-on-spring-cloud-function --param payload ksug --result
  • 38. © 2017 IBM Corporation Page 38 예제 Spring Cloud Function
  • 39. © 2017 IBM Corporation Page 39 예제 Spring Cloud Function
  • 40. © 2017 IBM Corporation Page 40 예제 Spring Cloud Function
  • 41. © 2017 IBM Corporation Page 41 Spring Cloud Function https://openwhisk.ng.bluemix.net/api/v1/namespaces/ksug_dev/actions/ function-on-spring-cloud-function
  • 42. © 2017 IBM Corporation Page 42 Spring Cloud Function Spring Cloud Function
  • 43. © 2017 IBM Corporation Page 43 Serverless Serverless Server + less
  • 44. © 2017 IBM Corporation Page 44 Serverless Serverless ~ less : ~이 없는 Server + less
  • 45. © 2017 IBM Corporation Page 45 Serverless Serverless Server + (manage)less
  • 46. © 2017 IBM Corporation Page 46 Serverless Architecture Serverless – 특정이벤트에 동작하는 함수를 등록, 이벤트가 발생하면 함수가 실행. – 서버 관리가 사라진 구조. – 자동으로 스케일 업/다운. – 사용한 만큼 비용 지불. – Faas(Function as a Service)
  • 47. © 2017 IBM Corporation Page 47 IBM Cloud Function 비용 Serverless
  • 48. © 2017 IBM Corporation Page 48 3-tier Architecture Serverless 참조 : https://martinfowler.com/articles/serverless.html
  • 49. © 2017 IBM Corporation Page 49 Serverless Architecture Serverless 참조 : https://martinfowler.com/articles/serverless.html
  • 50. © 2017 IBM Corporation Page 50 Serverless Architecture Serverless 참조 : https://martinfowler.com/articles/serverless.html
  • 51. © 2017 IBM Corporation Page 51 Serverless 추가정보 Serverless 마틴파일러 사이트 https://martinfowler.com/articles/serverless.html 번역본 http://blog.aliencube.org/ko/2016/06/23/serverless-architectures/
  • 52. © 2017 IBM Corporation Page 52 Serverless Provider Serverless – IBM Cloud Functions : OpenWhisk – Amazon Lambda – Google Cloud Functions. – Azure Function. – Fission – Kubeless – …….
  • 53. © 2017 IBM Corporation Page 53 Serverless Provider Serverless – IBM Cloud Functions : OpenWhisk – Amazon Lambda – Google Cloud Functions. – Azure Function. – Fission – Kubeless – …….
  • 54. © 2017 IBM Corporation Page 54 마무리. Spring Cloud Function – Spring Developer : 좀더 친숙하게 Function 개발. – Function 개발자 : Spring을 알 필요 없음. – 동일한 코드를 다양한 서버리스 프로바이더에서 실행. – 서버리스 프로바이더에 독립. – 동일한 deploy.
  • 55. © 2017 IBM Corporation Page 55 참조. Spring Cloud Function – https://spring.io/blog/2017/07/05/introducing-spring-cloud-function – http://cloud.spring.io/spring-cloud-function – https://martinfowler.com/articles/serverless.html
 ( 번역 : http://blog.aliencube.org/ko/2016/06/23/serverless-architectures/ ) – https://www.youtube.com/watch?v=lJEYG2PjGNU
 ( 발표 PT : http://presos.dsyer.com/decks/road-to-serverless.html ) – http://www.kennybastani.com/2017/07/microservices-to-service-blocks-spring- cloud-function-aws-lambda.html
  • 56. © 2017 IBM Corporation Page 56 궁금한 점은..… Spring Cloud Function – KSUG 구글 그룹
 https://groups.google.com/forum/#!categories/ksug
 – KSUG 페이스북 그룹
 https://www.facebook.com/groups/springkorea/?ref=bookmarks