Exploring New Options

SpringOne Platform 2017
정윤진, Principal Technologist
Pivotal Labs, San Francisco
yjeong@pivotal.io
1
“
”
It is not the strongest of the
species that survives, nor the most
intelligent, but the one most
adaptable to change.
— Leon C. Megginson Professor Emeritus
The best technical design advice I’ve ever
received is you will get it wrong, optimize for
making your code easy to modify in the future.
How does Spring help you to
adapt?
?? ?
How does Spring help you to
adapt?
Nokia 6610
725kb 780mAh
2000 less than iPhone XStill runs Java
128x1284096 color
(micro edition)
Nokia 6610
725kb 780mAh
2000 less than iPhone XStill runs Java
128x1284096 color
(micro edition)
Nokia 6610
Nokia 6610
“
”
Software maintenance is not
‘keep it working like before’
It is ‘keep it being useful in a
changing world’
— Jessica Kerr Atomist
View Technologies
0%
25%
50%
75%
100%
December
January
February
March
April
May
June
July
August
September
October
November
Thymeleaf FreeMarker Mustache Groovy Templates Velocity
Velocity
Groovy Templates
Mustache
FreeMarker
Thymeleaf
July August
NoSQL
Is SQLDead?
Are SQL Databases Dead?
Bat Child
Found In Cave!
The relational model is dead, SQL is
dead,and I don’t feel so good myself.
** sigmodrecord.org/publications/sigmodRecord/1306/pdfs/11.reports.atzeni.pdf
A good developer is like a werewolf: Afraid of
silver bullets.
oSQLN
o SQLNot nly
o SQLNearly nlyNo
0%
25%
50%
75%
100%
December
January
February
March
April
May
June
July
August
September
October
November
JPA MongoDB Redis Elasticsearch Cassandra
Solr Neo4J Couchbase GemFire
MongoDB
Redis
Elasticsearch
Cassandra
Solr
Neo4J
Couchbase
Twelve-Factor Apps
Cloud Native Applications
Cloud Native Applications
Platform as a Service
+
Cloud Application Platform
Serverless
Cloud Native Applications
+
Serverless
+
&
Build software that is easy to
keep
useful
maintain
“
”
There are a thousand no’s for
every yes.
— Jony Ive Apple
“
”
There are a thousand no’s for
every yes.
— Jony Ive Apple
Stagnation VolatilityUseful
😡😴 🙂
Some new choices
Some new choices
Some new choices
Kotlin
@SpringBootApplication
class App {
@Bean
fun router(htmlHandler: HtmlHandler, blogHandler: BlogHandler) = router {
"/api/blog" and accept(APPLICATION_JSON).nest {
GET("/", blogHandler::findAll)
GET("/{slug}", blogHandler::findOne)
POST("/", blogHandler::save)
DELETE("/{slug}", blogHandler::delete)
}
accept(TEXT_HTML).nest {
GET("/", htmlHandler::blog)
(GET("/{slug}") and !GET("/favicon.ico")).invoke(htmlHandler::blog)
}
}
}
fun main(args: Array<String>) {
runApplication<App>(*args)
}
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
0%
25%
50%
75%
100%
December
January
February
March
April
May
June
July
August
September
October
November
Kotlin Groovy
Some new choices
Some new choices
Reactive
Event
Driven
Requests
Trigger
Register
Complete
Intensive Op
Data Security
WebFlux
Boot
WebClient
@RestController
public class CarController {
// ...
@PostMapping("/booking")
public Mono<ResponseEntity<Void>> book() {
return webClient.get().uri("/cars")
.retrieve()
.bodyToFlux(Car.class)
.doOnNext(car -> logger.debug("Trying to book " + car))
.take(5)
.flatMap(this::requestCar)
.next()
.doOnNext(car -> logger.debug("Booked car " + car));
}
}
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
What
The… ?
What
The… ?
Nokia
😴🙂😡 I’m
Confused
Don’t Worry
We’re here to help you learn
😀
💡
Go fast, forever.
Platform
Tools
Process & Culture
Platform
Tools
Process & Culture
😀
Learning
💡
Platform
Tools
Process & Culture
😀Learning
💡
🎉 Success! 🎉
Platform
Tools
Process & Culture
😀Learning
💡
🎉 Success! 🎉
👂
Kroger
Express Scripts
Raytheon
Intuit
FedEx
Citi
Turkcell
Great American Insurance Group
MasterCard
Scotiabank
United States Air Force
Comcast
Charles Schwab
The Home Depot
Health Care Services Corporation
West Corp
Boeing
Ford Motor Company
Liberty Mutual Insurance
Allstate
Northern Trust
Boston Scientific
T-Mobile
CoreLogic
Southwest Airlines
Kroger
Express Scripts
Raytheon
Intuit
FedEx
Citi
Turkcell
Great American Insurance Group
MasterCard
Scotiabank
United States Air Force
Comcast
Charles Schwab
The Home Depot
Health Care Services Corporation
West Corp
Boeing
Ford Motor Company
Liberty Mutual Insurance
Allstate
Northern Trust
Boston Scientific
T-Mobile
CoreLogic
Southwest Airlines
📣
Kroger
Express Scripts
Raytheon
Intuit
FedEx
Citi
Turkcell
Great American Insurance Group
MasterCard
Scotiabank
United States Air Force
Comcast
Charles Schwab
The Home Depot
Health Care Services Corporation
West Corp
Boeing
Ford Motor Company
Liberty Mutual Insurance
Allstate
Northern Trust
Boston Scientific
T-Mobile
CoreLogic
Southwest Airlines
🚘✈📺🏦🏥📦💊🔬📱
❤
❤
3
45
6
7
8
9
:
;
O
<
=
>
?
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
😀
Learn Together
💡
😀
Learn how to learn Together
💡
😀 ☺
💡
Quick Preview
Quick Preview
Announcements
~23
(~12 minutes)
⏰
Check the Agenda!
💡
Synchronous
Blocking I/O
Synchronous
Blocking I/O
Works well for many problems…
Synchronous
Blocking I/O
…but is inefficient when there’s a lot of blocking I/O.
Works well for many problems…
Synchronous
Blocking I/O
Memory 📈 Latency 📈
…but is inefficient when there’s a lot of blocking I/O.
Works well for many problems…
Asynchronous
Non-Blocking I/O
programming models
are typically more efficient
BUT
Synchronous
Blocking I/O
Asynchronous
Non-Blocking I/O
Totally different technology stacks
and programming models
🤔
Synchronous
Blocking I/O
Asynchronous
Non-Blocking I/O
Picking between these models
is an expensive choice!
😩
Reactor
💡
Reactor
💡
Brings the Asynchronous Non-Blocking I/O Paradigm to Spring
Asynchronous
Non-Blocking I/O
🙂
Familiar, consistent, programming stack…
Synchronous
Blocking I/O
Asynchronous
Non-Blocking I/O
😀
Synchronous
Blocking I/O
…with powerful, elegant, and well-documented reactive patterns.
Asynchronous
Non-Blocking I/O
😃
Synchronous
Blocking I/O
Gives you choice
Boot 2.0
Spring Framework 5.0
Boot 2.0
Spring Framework 5.0
Phil Webb
Boot 2.0
Spring Framework 5.0
Phil Webb
💡
🔨
Developer Tooling Needs to Evolve
🔨
<xml> @
Developer Tooling Needs to Evolve
🔨
<xml> @
Developer Tooling Needs to Evolve
🔨
<xml> @
Developer Tooling Needs to Evolve
Spring Tools 4
💡
Spring Tools 4Built-for-Boot
@
💡
Spring Tools 4Built-for-Boot IDE Agnostic
@
💡
Spring Tools 4Built-for-Boot IDE Agnostic
Super Fast
⚡
@
💡
💡
💡
Choice
❤
WebSphere Open Liberty as a commercially supported
embedded server option for Spring Boot
❤
Spring Cloud Stream connectivity into the IBM ecosystem
💡
💡
👍
❤
🏡
❤🏡
💾❤
💡
💾❤
Elastic Runtime
Pivotal Application Service
💾❤
Elastic Runtime
Driving force behind
our Customers’ success
Enables Developer Productivity
cf push
Here is my source code
Run it on the cloud for me
I do not care how
💡
💡🆔App
💻cf-local
multibuildpacks
isolation | segments
container networking
⚡↑logging throughput
↑routing performance
📈custom metrics
http-autoscaling
scheduler
↑upgrade stability
💡Choice
❤
Commercial IBM Liberty Buildpack support for PAS
👍
👍
💡
Windows Server 2016
Windows Server 2016
Native Windows
Server Containers
Coming in our next release
~
Feature Parity to .Net
Workloads
❤
💡
💡
Many thousands
of Apps
💡
Many thousands
of Apps
Hundreds of
VMs
👍 at scale
built to run at scale
default footprint = 20 VMs
💡
💡choice
Small Footprint PAS
👣
Small Footprint PAS
A full-featured, HA, horizontally scalable PAS in 6 VMs
👣
Small Footprint PAS
Available now on all supported clouds
👣
A full-featured, HA, horizontally scalable PAS in 6 VMs
Try it with one click on the
marketplace
Small Footprint PAS
👣
A full-featured, HA, horizontally scalable PAS in 6 VMs
Available now on all supported clouds
🆔App
💻cf-local
multibuildpacks
isolation | segments
container networking
⚡↑logging throughput
↑routing performance
📈custom metrics
http-autoscaling
scheduler
↑upgrade stability
👣
Makes the impossible
possible
☺😊

😃😜
☺😊

😃😜
Run regular
platform upgrades
☺😊

😃😜
Run regular
platform upgrades
Apply security
patches
☺😊

😃😜
Run regular
platform upgrades
Apply security
patches
💡
🤔🤔

🤔😜
Run regular
platform upgrades
Apply security
patches
💡
? ?
💡
☺😊

😃😜 ❤
💡
GA in our next release
🤔🤔

🤔😜
Run regular
platform upgrades
Apply security
patches
💡
? ?
😡😡
😡😜
Run regular
platform upgrades
Apply security
patches
💡
! !
⏰
Investing in
Upgrade Speed and Stability
⚡
Next release will shave hours
off the upgrade time.
⚡
Installation and Upgrade Pipelines…
…that automatically download and apply upgrades.
Makes the impossible
possible
💡 Choice
💡
Hybrid Cloud
Beta support in our next release
STACK
💡
#000001 👀
STACK
💡
Fully Managed Infrastructure
Running a Fully Managed PCF⚡
💡
Coming soon: the Pivotal Ready System
Collapse the amount of time it takes to
stand up PCF in the data center⚡
☺😊😃😜
💡
Fully Managed Dedicated Services
As easy as
cf create-service
Delivering a fully-managed service
on-premise is incredibly complex.
💡
🗻
🌋
💩
🥊
🚨
⏰
💸
🐡
🎱
🍔
🎮
💣
🚽
🔪
🦂
🌧
🐫
⚔
⚰
🥑
🗑 ✂
⌛
🤔
Learning
😀
💡
🗻
🌋
💩
🥊
🚨
⏰
💸
🐡
🎱
🍔
🎮
💣
🚽
🔪
🦂
🌧
🐫
⚔
⚰
🥑
🗑 ✂
⌛
🤔
Gradually evolving the feature set
😀
💡
1 - Customizable on-demand services
😀 ❤ Choice
💡
😀 ❤ Choice
💡
🎟🚫
2 - Single Node => Multi Node
3 - Layering on Richer Feature Sets
💾
🌎
💡
Cov
Covers a broad set of
workloads…
Cov
…but not all workloads
Optimized for developer productivity
Opinionated to help developers move fast
Opinionated to help developers move fast
😃
Opinionated to help developers move fast
😃
Challenging to run certain classes of workloads
😕
Challenging to run certain classes of workloads
😕
Commercial-Off-The-Shelf
Software
😕
Commercial-Off-The-Shelf
Software
Workloads with complex
networking, persistence,
and lifecycle requirements
(typically some legacy workloads)
Challenging to run certain classes of workloads
😕
Commercial-Off-The-Shelf
Software
Workloads with complex
networking, persistence,
and lifecycle requirements
(typically some legacy workloads)
Challenging to run certain classes of workloads
??
😕
Commercial-Off-The-Shelf
Software
Workloads with complex
networking, persistence,
and lifecycle requirements
(typically some legacy workloads)
⚙
⚙
🔩
🔩
🛎
🔋
📎
Challenging to run certain classes of workloads
??
😕
Commercial-Off-The-Shelf
Software
Workloads with complex
networking, persistence,
and lifecycle requirements
(typically some legacy workloads)
⚙
⚙
🔩
🔩
🛎
🔋
📎
✅ ✅
??
Challenging to run certain classes of workloads
Less Opinionated
😕
Commercial-Off-The-Shelf
Software
Workloads with complex
networking, persistence,
and lifecycle requirements
(typically some legacy workloads)
⚙
⚙
🔩
🔩
🛎
🔋
📎
✅ ✅
??
Lower Developer Productivity
☹
Commercial-Off-The-Shelf
Software
Workloads with complex
networking, persistence,
and lifecycle requirements
(typically some legacy workloads)
⚙
⚙
🔩
🔩
🛎
🔋
📎
✅ ✅
Lower Developer Productivity
☹
Commercial-Off-The-Shelf
Software
Workloads with complex
networking, persistence,
and lifecycle requirements
(typically some legacy workloads)
⚙
⚙
🔩
🔩
🛎
🔋
📎
✅ ✅
🚫
🚫
Trusted Partner
Kroger
Express Scripts
Raytheon
Intuit
FedEx
Citi
Turkcell
Great American Insurance Group
MasterCard
Scotiabank
United States Air Force
Comcast
Charles Schwab
The Home Depot
Health Care Services Corporation
West Corp
Boeing
Ford Motor Company
Liberty Mutual Insurance
Allstate
Northern Trust
Boston Scientific
T-Mobile
CoreLogic
Southwest Airlines
😃Maintain Developer
Joy & Productivity
😃Maintain Developer
Joy & Productivity
Commercial-Off-The-Shelf
Software
Workloads with complex
networking, persistence,
and lifecycle requirements
And be the trusted partner for all workloads.
Commercial-Off-The-Shelf
Software
Workloads with complex
networking, persistence,
and lifecycle requirements
??
Commercial-Off-The-Shelf
Software
Workloads with complex
networking, persistence,
and lifecycle requirements
OR
OR
ANDOR
AND
💡
Cov
Cov
Cov
Pivotal Container Service
PKS
PKS
PKS
☺😊😃😜
PKS
Deploy Fleets of On-Demand
Vanilla Kubernetes Clusters
☺😊😃😜
PKS
Manage Seamless Upgrades
and Security Patches
☺😊😃😜
PKS
Stay up-to-date with
OSS Kubernetes
☺😊😃😜
PKS
☺😊😃😜
Constant Compatibility
Commercially Supported IBM Docker Images for PKS
IIB
❤
Unified Platform Experience
Unified Platform Experience
Shared Logging and Metrics
Shared Networking
Shared Security
Unified Platform Experience
Shared Logging and Metrics
Shared Security
💡 Shared NetworkingShared Networking
❤
Unified Platform Experience
Shared Logging and Metrics
Shared Networking
Shared Security
Unified Platform Experience
Shared Logging and Metrics
Shared Networking
Shared Security
We want to be the trusted partner
for all our customers’ workloads
Biggest Release Ever
PCF 2.0
Shared Logging and Metrics
Shared Networking
Shared Security
PCF 2.0
Sets us up for the future
💡
Continue to learn
with our customers
For example…
💡You want to explore
Functions-as-a-Service
😉We want to explore
Functions-as-a-Service
Introducing
An OSS Functions-as-a-Service Platform
Introducing
An OSS Functions-as-a-Service Platform 🎸
Mark Fisher
Shared Logging and Metrics
Shared Networking
Shared Security
Shared Logging and Metrics
Shared Networking
Shared Security
Pivotal Function Service - Later in 2018
PCF 2.0 And Beyond…
PCF 2.0 And Beyond…
Richard Seroter
💡
Go fast, forever.
It’s all going on
springoneplatform.io
링크:	https://goo.gl/53aEtB
행사	종료	후		
설문에	참여한	분들께는	
보온병을	선물로	드립니다.	
등록데스크에서	설문	완료	페이지를		
보여주시고	선물을	받아가시길	바랍니다	
실시간 Q&A 질문 등록하기! 설문지 이벤트 참여하기!
THANK YOU!
Pivotal Software Inc.
Younjin Jeong
yjeong@pivotal.io
276

SpringOne Platform recap 정윤진