Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Spring I/O 2023 - Spring Boot in a Cloud-Native Polyglot World
Search
Salaboy
May 19, 2023
Technology
0
470
Spring I/O 2023 - Spring Boot in a Cloud-Native Polyglot World
for more info, visit:
https://www.salaboy.com/spring-io-2023
Salaboy
May 19, 2023
Tweet
Share
More Decks by Salaboy
See All by Salaboy
Voxxed Days Zurich 24' - Wiring Cloud Native Applications for Local Development
salaboy
0
6
KCD Sao Paulo - Brazil Feb 2024
salaboy
0
84
SouJava - Dapr for Java Developers
salaboy
0
80
Wiring Cloud Native Applications for local development
salaboy
0
540
KubeCon China 2023: Adventures in Platform Building
salaboy
0
360
devbcn-2023-barcelona.pdf
salaboy
0
270
Enabling Developers in a Multi-Cloud World :: GOTO Aarhus 2023
salaboy
0
290
Other Decks in Technology
See All in Technology
スクラムマスター不在でスクラムをやるのは(とても辛いので)やめておけ! #scrumfukuoka
nulabinc
PRO
4
900
技育祭2024春 LT Finatextホールディングス
kevinrobot34
1
120
Webエンジニアのためのデータエンジニアリング概説
mtoriyama000
5
400
プロデザ! BY リクルートvol.17_『じゃらんnet』公式アプリの高速リニューアル事例を大公開
recruitengineers
PRO
5
110
スクラムガイドに載っていないスクラムのはじめかた - チームでスクラムをはじめるときに知っておきたい5個のコツ - / How to start Scrum that is not written in the Scrum Guide
takaking22
14
5.3k
SecurityCamp2023基板作るコース講義資料/Security Camp 2023 Lecture Materials
tnishinaga
5
1.3k
ECS on FargateへのSeekable OCI導入レポート
iwamot
0
260
二刀流でWinActorを活用してみた話
tamai_63
0
120
SSMエージェントはIAMロールの夢を見るか/ Do SSM Agents Dream Of IAM Roles?
yukihirochiba
0
1.4k
皆がすなるカオスエンジアリングといふものを、ネットワークオペレーションでもしてみむとてするなり
tjmtrhs
0
130
【Cyber-sec+】ログの森で出会ったCloudTrail との奇妙な旅
hssh2_bin
1
230
5分で理解するWebAssemblyのWebの外の話 PHPはマイコンの夢を見るか?
usuyuki
3
200
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.8k
Building Adaptive Systems
keathley
29
1.8k
Building Applications with DynamoDB
mza
88
5.5k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
111
35k
Building a Scalable Design System with Sketch
lauravandoore
455
32k
Reflections from 52 weeks, 52 projects
jeffersonlam
343
19k
Robots, Beer and Maslow
schacon
PRO
154
7.9k
Fontdeck: Realign not Redesign
paulrobertlloyd
75
4.8k
Embracing the Ebb and Flow
colly
78
4.1k
Agile that works and the tools we love
rasmusluckow
323
20k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
56
13k
Transcript
@salaboy - Spring I/O - Barcelona 2023 Spring Boot in
a Polyglot Cloud- Native World With Dapr
Agenda • Our Spring Boot Cloud-Native Applications • Common patterns
and abstractions • The relationship betwee apps and infra • Kubernetes = Deploy + Run • Platform Building in the Cloud-Native Space • Platform Capabilities • Dapr on K8s • Dapr and TestContainers
MAURICIO SALATINO / WWW.SALABOY.COM @SALABOY
PLATFORMS ON K8S 40% DISCOUNT: SALATINO40
PLATFORMS ON K8S SALATINO40 😢 😢 😢 😢 😢 😢
#1: How many Java Developers are in the room? Time:
10
#1: How many Java Developers are in the room? Time:
8
#1: How many Java Developers are in the room? Time:
5
#1: How many Java Developers are in the room? Time:
3
#1: How many Java Developers are in the room? Time
Out!
Fetching results
Fetching results….
Fetching results………
Fetching results………..…
Fetching results………………
Java Developers Java/Spring Developers: 80% Others (WASM, C (””,#,++), Go,
Flash): 20%
#2: Do you have more than one Application?
Applications One App -> 30% More than one -> 70%
No Apps -> ??
#3: Does your applications read or write data? (From storage,
db, files, buckets)
Data? Or no Data? Most of them -> 70% Nope
-> 20% I don’t understand the question -> 10%
#4: Does your applications consume or emit events/messages?
Async Messages Some of them -> 30% Nope -> 50%
I don’t understand the question -> 20%
#5: Does your applications to talk to each other?
Chatty apps Yes using REST -> 40% Yes using GRPC
-> 40% Other -> 30% No / I don’t understand the question -> 30%
Facts / Results App A App B App C
None
INFRASTRUCTURE
DATA Spring Boot Data JPA Redis MongoDB Oracle PostgreSQL MySQL
MongoDB Client Redis Client Drivers / CIients JOOQ JBDC Abstractions
MESSAGING Spring Boot Integration JMS RabbitMQ Kafka Client RabbitMQ Client
CIients AMQP Kafka Rsocket Pulsar Pulsar Client AMQP Clients Abstractions/Protocols
12-factor / Cloud-Native Envrionment Variables Development Testing Staging Production
Upgrading App A 1.5.0 V3.4.X V1.2.X Redis Client V3.4.3 Kafka
Client V1.2.3 App B 3.4.0 Redis Client V3.5.1 Kafka Client V2.2.3
[Apps + Deps ] <==> Infra
[Apps + Framework + Deps] <==> Infra
Polyglot? App A 1.5.0 (Java) V3.4.X V1.2.X Redis Client V3.4.3
Kafka Client V1.2.3 App B 3.4.0 (Go) Redis Client V3.4.3 Kafka Client V1.2.3 Abstractions / Frameworks Abstractions / Frameworks
KUBERNETES
DEPLOY AND RUN
WHY?
YAML {
Demo #1 Let’s do it!
YAML {
We will need some tools! 🛠🪓
🤯
THE PLATFORM ENGINEERING BUZZ 🤔
👷🔧 🪓👷 Devs Infra SREs Data Scientists { } THE
PLATFORM TEAM
My Platform Platform APIs Self Service Golden Paths THE PLATFORM
CNCF TAG APP DELIVERY https://tag-app-delivery.cncf.io/whitepapers/platforms/
Apps APIs Exchanging Messages/ Events Storing and Reading Data Observability
Resiliency Dynamic Scaling Release Strategies Feature Flags Work f lows Traf f ic Management PLATFORM CAPABILITIES Tools Capabilities
https://www.aviransplace.com/post/platform-as-a-runtime-paar-beyond-platform-engineering
None
DISCLAIMER
None
->
App A 1.5.0 (Java) App B 3.4.0 (Go) Abstractions /
Frameworks Abstractions / Frameworks Dapr Sidecar Dapr Sidecar Local HTTP/GRPC Local HTTP/GRPC Dapr StateStore Component Dapr PubSub Component Dapr Resiliency Policies
Read App Write App Subscribe App Frontend App Dapr StateStore
Component Dapr PubSub Component Dapr Resiliency Policies Dapr Service Discovery
Demo #2
Read App Write App Subscribe App Frontend App Dapr StateStore
Component Dapr PubSub Component Dapr Resiliency Policies Dapr Service Discovery Do Some SQL 5% 95%
None
💻🤔
❤ ❤ ❤ ❤ ❤❤ ❤ ❤ ❤ ❤ 🥳
Read App Write App Subscribe App Dapr StateStore Dapr PubSub
Dapr Resiliency Policies Dapr Service Discovery Dapr PubSub Dapr Resiliency Policies Dapr StateStore 🪄
Demo #3
Takeaways
Use the right abstractions to enable teams to go faster
Break dependencies from infra
For language-agnostic application level APIs
Wire cloud native apps locally
Thanks @Salaboy
PLATFORMS ON K8S 40% DISCOUNT: SALATINO40