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
Data Streaming für Cloud Natives
Search
Nicolas Byl
May 04, 2017
Technology
44
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Data Streaming für Cloud Natives
Nicolas Byl
May 04, 2017
More Decks by Nicolas Byl
See All by Nicolas Byl
Platform Engineering ❤️ Developer Experience
nbyl
0
65
Die Flucht aus der Prototypen-Hölle
nbyl
0
61
Lean Prototyping for Industrial-IoT Projects
nbyl
0
77
DevSecOps - Vom Unikum zur gut geölten Maschine
nbyl
0
120
Securing your software supply chain
nbyl
0
400
Keeping-Up-WithUpstream.pdf
nbyl
0
200
Dr. Kube und der Helm - Anatomie einer CD-Pipeline
nbyl
0
160
Securing the "other" supply chain
nbyl
0
340
Kubernetes - Auf die Cluster, Fertig, Los!
nbyl
0
220
Other Decks in Technology
See All in Technology
[DroidKaigi 2026] Making UI specifications visible: Android UI development in the AI agent era supported by Compose Screenshot Testing and galleries
syarihu
0
600
PfEingのアプローチで働こう
rindrics
0
190
WAF 運用改善の承認サイクル/SRE_BizReach_MIXI_1
visional_engineering_and_design
1
350
AIで開発は速くなったのに、なぜ現場は楽にならないのか 〜あなたの組織のボトルネックを突き止めるワークショップ〜
jacopen
1
270
薬剤師(ドメインエキスパート)と一緒に育てる薬局向けAIアシスタント
kakehashi
PRO
2
120
GuardDuty 検知対応を DevOps Agent で効率化しようとしている話 / GuardDuty Investigations with DevOps Agent
masahirokawahara
1
330
データエンジニアリングワークショップ:Auto LoaderとSparkで学ぶデータパイプライン構築
databricksjapan
PRO
0
210
AIで実装は速くなった。なのにプロダクトは速くならない。職能の壁を越えて価値のフローを設計する
nwiizo
7
7.4k
『止めない』を設計する — 制約の中で、事業の根幹を支える判断
hiroyaterui
0
220
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
PRO
1
300
Webとヘルスデータ
yukukotani
1
200
V8コントリビュート超入門
riyaamemiya
0
150
Featured
See All Featured
From π to Pie charts
rasagy
0
360
Rails Girls Zürich Keynote
gr2m
96
14k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
520
Side Projects
sachag
455
43k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
510
Optimizing for Happiness
mojombo
378
71k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
Ruling the World: When Life Gets Gamed
codingconduct
0
320
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.2k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
Transcript
1 DATA STREAMING FÜR CLOUD NATIVES building IoT 2017 Nicolas
Byl, codecentric AG
2 . 1 Stream Processing, anyone?
2 . 2 Spring Cloud Dataflow
3 . 1 PROCESSING MODELL
3 . 2 Streams kleinste Einheit von Spring Cloud Dataflow
Verarbeitungsstrecke
3 . 3 Stream Struktur Source als Datenquelle Multiple Processor
Instanzen für nachfolgende Verarbeitungsschritte Sink als Ende der Verarbeitungskette
None
3 . 4 3 . 5 Verarbeitung Jeder Instanz der
Verarbeitungskette ist eine Spring Boot Applikation Pufferung zwischen Verarbeitungsschritten in Queue Pull Mechanismus für nächste Datensatz
3 . 6 Queueing
4 . 1 ARCHITEKTUR
None
4 . 2 4 . 3 Building Blocks Spring Boot
Spring Integration Spring Batch
4 . 4 Deployables Spring Boot Applikationen Spring Cloud Stream
Starters Spring Cloud Stream Spring Cloud Task
4 . 5 Deployer Spring Cloud Deployer - SPI
4 . 6 Interfaces Command Line Interface Dashboard Flo Editor
REST
5 . 1 BUILDING STREAMS
5 . 2 Command Line Interface Definition und Management der
vorhandenen Streams DSL zur Verkettung von Applikation mittels |
5 . 3 Beispiel 1: Ticktack stream create --name ticktock
--definition "time | log" --deploy
5 . 4 Beispiel 2: HTTP-Request stream create --name test
--definition "http | log" stream deploy test --properties "app.http.spring.cloud.deployer.kubernetes.c http post --target http://<IP>:8080 --data "Hello"
5 . 5 Grafischer Editor
6 . 1 CUSTOM APPLICATIONS
6 . 2 Programmiermodell - Spring Cloud Stream Source, Sink
& Processor sind normale Spring Beans Kopplung an Spring Integration Binding an den jeweiligen Typen Abstraktion des Queueing Providers durch das Framework
6 . 3 Beispiel 1: Direkte Bearbeitung in der Beans
@EnableBinding(Processor.class) public class TransformProcessor { @Autowired VotingService votingService; @StreamListener(Processor.INPUT) @SendTo(Processor.OUTPUT) public VoteResult handle(Vote vote) { return votingService.record(vote); } }
6 . 4 Beispiel 2: Spring Integration als Source @EnableBinding(Source.class)
public class TimerSource { @Value("${format}") private String format; @Bean @InboundChannelAdapter(value = Source.OUTPUT, poller = @Poller(fixedDelay public MessageSource<String> timerMessageSource() { return () -> new GenericMessage<>(new SimpleDateFormat(format).format( } }
6 . 5 Beispiel 3: Reative Processor @EnableRxJavaProcessor public class
RxJavaTransformer { private static Logger logger = LoggerFactory.getLogger(RxJavaTransformer @Bean public RxJavaProcessor<String,String> processor() { return inputStream -> inputStream.map(data -> { logger.info("Got data = " + data); return data; }) .buffer(5) .map(data -> String.valueOf(avg(data))); } [...] }
7 . 1 BEISPIELE
7 . 2 Beispiel 3: Twitter Analyse stream create --name
twitter-demo --definition "twitterstream --twitter.credentials.consumer-key=<...> [..] | field-value-counter --field-value-counter.fieldName=entities.hashtags.text --field-value-counter.name=hashtags"
8 . 1 ZUSAMMENFASSUNG
8 . 2 Andere Anwendungen Analytics Monitoring CRM ...
8 . 3 The End Copyright 2017