SlideShare une entreprise Scribd logo
1  sur  93
Télécharger pour lire hors ligne
지금 
핫한 
Real-­‐'me 
In-­‐memory 
Stream 
Processing 
이야기 
tedwon 
iamtedwon@gmail.com
우리 나라 사람들이 
특히 좋아하는 이야기
빠르면 빠를 수록 좋치요~
About 
me 
• JBoss 
User 
Group 
Korea 
온오프라인 개발자 커뮤니티 운영자 
• Facebook 그룹 실시간빅데이터처리기술 온라인 커뮤니티 운영자 
• 실시간 빅데이터 플랫폼 전문 개발자 
• 현 DaumKakao 
개발자 
• 전 kth 
DAISY 
개발자 
• www.facebook.com/tedwon 
• tedwon.atlassian.net
언제 어디서 
Streaming 
기술이 
유용할까요??
Streaming 
기술의 
Use 
Cases 
알고리즘 주식 트레이딩 
지난 30분간의 주문 상품 Top10 
온라인몰 사용자 클릭 스트림기반 개인화 추천 
모바일 광고 타겟팅 서비스 
실시간 금융 사기 방지
Streaming 
기술의 
Use 
Cases 
• 테러 방지 
• 실시간 분석/추천/광고 
• 실시간 모니터링 
• 제조 공정 관리 
• 보안 관제 
• 금융/통신 
• 의료/헬스케어 
• IoT(Internet 
of 
Things)
Streaming 
기술의 
Use 
Cases
Streaming 
시스템의 
Data 
Flow
지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기
Fast 
Data
funcEon(events, 
Eme)
실시간의 개념부터 살짝 
정리하고 시작합시다!
실시간 
Searching 
실시간 Batch 
Job 
실시간 Streaming
Real-­‐'me 
== 
Streaming 
전제하에 이야기를 
진행 하겠습니다
Real-­‐Eme 
시스템의 특징 
• EDA 
기반 아키텍처로 구현해야 함! 
– Event-­‐driven 
Architecture 
• 실시간이란 상대적인 개념 
• 요건에 따라 실시간의 범위가 정의될 수 있음 
• 실시간 서비스 수준 정의가 필요 
• 실시간 시스템의 SLA 정의 및 합의 필요
Real-­‐Eme 
시스템의 키포인트 
• 낮은 
수준의 
지연 
시간 
– Low 
latency 
• 일정한 
응답 
속도의 
보장 
– RegulariEes 
in 
Response 
Eme 
• 예측 
가능한 
성능 
제공 
– Providing 
predictable 
performance 
ü 결국 낮은 지연 시간을 일정하게 최대한 오래 유지 (24/7)
Real-­‐Eme 
서비스 수준 정의 
• Latency 
정규 분포 통계 계산 
Throughput 995,900 (active 0 pending 0) 
나노세컨드 단위 측정 
5 μs 수준의 성능
Real-­‐Eme 
서비스 수준 정의 
• Near 
Real-­‐'me 
– Minutes 
수준의 
지연 
시간 
보장 
• Real-­‐'me 
– Seconds, 
Milliseconds 
수준 
보장 
• Real 
Real-­‐'me 
– Microseconds 
수준 
보장 
ü 구체적인 
범위 
정의는 
비즈니스 
SLA 
요구 
수준에 
따라 
결정됨
Streaming의 EDA 아키텍처 
• EDA기반으로 사람의 감각 기관 및 반응 구조와 유사 
– Event-­‐driven 
Architecture 
눈, 귀 등의 감각 기관 생각, 판단 손, 발의 반응
Streaming과 일반 방식의 비교 
배치, 요청/응답 방식 
스트리밍 방식 
Request/Response 
EDA 
동기 처리 
비동기 처리 
Response 
ReacEon 
선저장 후처리 
선처리 후저장
가장 먼저 
실시간 로그 수집부터 이슈
실시간 분산 로그 수집기
Apache 
KaVa 
이야기
Apache 
KaVa 
이야기
Apache 
KaVa 
이야기
Apache 
KaVa 
이야기 
• Publish-­‐subscribe 
방식의 고성능 분산 메시징 시스템 
• Topic과 Queue 
개념이 합쳐진 모델 
• LinkedIn 
SNA팀에서 개발하고 서비스에 사용 중 
– 2011년 시작 
– Scala, 
Java 구현 
• LinkedIn에서 2014년 기준 300개가 넘는 브로커 운영 
– 18,000개의 토픽 
– 하루에 2,200억 메세지 처리
Apache 
KaVa 
이야기 
h^p://www.slideshare.net/fullscreen/cloudera/introducEon-­‐to-­‐apache-­‐kaVa/1
Apache 
KaVa 
이야기 
• 사용하기 쉬운 API, 
설정 옵션 
• Zero-­‐copy 
방식으로 고성능 읽기 기능 
• Scale-­‐out 
아키텍처 
• Producer측에서 파티셔너를 구현해 분산 저장 조절 
• 배치 단위 전송, 
압축 기능등 효율적인 전송 기능 
• 성능을 위해 OS와 Log 
디스크 드라이브를 분리 
• KaVa 
+ 
Stream 
Processor 
조합으로 활용
KaVa 
in 
Neclix 
h^ps://gigaom.com/2013/12/09/neclix-­‐open-­‐sources-­‐its-­‐data-­‐traffic-­‐cop-­‐suro
Apache 
KaVa 
이야기 
h^p://www.cloudera.com/content/cloudera/en/developers/home/cloudera-­‐labs/apache-­‐kaVa.html
지금 핫한 Real-time In-memory Stream Processing 이야기
Apache 
KaVa 
이야기 
주키퍼 시작 
> bin/zookeeper-server-start.sh config/zookeeper.properties 
카프카 서버 시작 
> bin/kafka-server-start.sh config/server.properties 
토픽 생성 
> bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 
--partitions 1 --topic test 
로그 생성 
> bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test 
로그 처리 
> bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test 
--from-beginning
Apache 
KaVa 
이야기 
High 
Level 
Consumer 
API 
Simple 
Consumer 
API
Apache 
KaVa 
모니터링 
• JBoss 
RHQ 
모니터링 통합 플랫폼
Apache 
KaVa 
모니터링 
• QuanEfind의 KaVa 
Offset 
Monitor
Apache 
KaVa 
모니터링 
• QuanEfind의 KaVa 
Offset 
Monitor
써보니 결국 각자 
R&R이 있었습니다
Complex 
Event 
Processing
Esper 
CEP 
이야기 
• 1990년대부터 시작된 전통적인 Event 
Stream 처리 기술 
• Complex 
Event 
Processing을 구현 오픈 소스 Esper 
• 복합적인 event를 참조하여 패턴을 알아 차리는 기술 
• Data 
Window, 
Pa^ern 
matching 
기능이 핵심 
• ConEnuous 
Query 
EPL 
제공 
• 10억분의 1초(ns) 단위의 성능 è 초고성능 가능
Esper 
이야기 
• Esper 
기본 아키텍처
Esper 
이야기 
• 실시간 ETL 
처리 후 HDFS 저장 
Thrift Server Hadoop FileSystem API 
ETL EPL 작성 
(Extract, Transform, Load)
Esper 
CEP 
이야기 
최근 30분내 강남에 있었던 급여가 10M 
이상이며 
나이가 30~35세 이상이고 취미가 쇼핑인 여성 
select * from customer(age=‘30~35’, 
gender=‘female’, salary>10M, location=‘강남’, 
hobby=‘shopping’).win:time(30 min)
Esper 
CEP 
이야기 
“Asset이 서로 다른 Zone으로 이동 후 
10초 이상 머무르면, 
경보를 알려라” 
select Part.zone from pattern [ 
every Part=CountZone(cnt in (1, 2)) -> 
( not CountZone(zone=Part.zone, cnt in (0, 3)) 
and timer:interval(10 sec) )]
Esper 
CEP 
이야기 
단일 노드(JVM)의 한계
Apache 
Storm 
이야기
Apache 
Storm 
이야기 
• Twi^er의 실시간 스트리밍 데이터 분석 솔루션 
• Real-­‐Eme 
Hadoop 같은 존재 
• 스트림 분산 처리 아키텍처 
• Transac'onal 스트림 처리 기능 
• 분산 RPC 
기능 
• 이벤트 처리 보장 기능 
• 지속적인 버전업 중, 커뮤니티 활발 
• 국내 레퍼런스 많음
Apache 
Storm 키워드 
Nimbus 
Supervisor 
Worker 
Spout/Bolt 
Transac'onal 
Spout/Bolt 
Trident
Apache 
Storm 
이야기 
JobTracker 
• Real-­‐Eme 
MapReduce 
TaskTracker
Apache 
Storm 
이야기
Apache 
Storm 
이야기
KaVa 
+ 
Storm 
IntegraEon 
• Storm 
프로젝트의 통합 모듈에 포함 
– h^ps://github.com/apache/storm/tree/master/external/storm-­‐kaVa 
• Simple 
Consumer 
API로 구현 
• Storm 
Spout에서 KaVa 
메세지 offset 
직접 관리 
• KaVa 
+ 
Storm 
조합 사용 사례 많음 
• ProducEon 
적용 가능 수준 상태
Apache 
Storm 
이야기
Apache 
Storm 
Distributed 
RPC
Apache 
Storm 
Trident 
• Codes
Apache 
Storm 
Trident 
• Compile 
Down
지금 핫한 Real-time In-memory Stream Processing 이야기
Apache 
Storm 
이야기 
좀 더 간단하면 안되겠니??
현재 실시간 플랫폼의 아쉬운점 
• 실시간 분산 환경에서 고성능으로 데이터 공유의 어려움 
• 분산 환경에서 Time 
Window 
제공이 어려움 
• 로우 레벨 코드 작업이 큼 
• 배치 분석 시스템과 개별 운영 공수 필요 
• 클러스터 리소스 공유의 어려움
실시간 시스템 아키텍처 사례
JBoss 
Infinispan 
이야기 
• JBoss 
커뮤니티의 오픈 소스 프로젝트 
– Scala, 
Java 
• Data 
Grid, 
In-­‐memory 
NoSQL, 
분산 케시 
• In-­‐memory 
HDFS 같은 존재 
• 메모리 기반의 대용량 데이터 저장소 
• 운영 중 노드 추가 가능, replica 
기능 지원 
• 안정적인 클러스터 운영 기능
JBoss 
Infinispan 
이야기 
• 메타 데이터 관리 è 시스템 관리 
• 성능/에러 모니터링 데이터 저장소 è Live 
Charts 
로 연동 
• 마이닝 데이터 저장소 è 추천 
• 실시간 데이터 저장소 
• 등등 포텐 대박!!
새로운 분석 플랫폼의 등장
새로운 분석 플랫폼 Apache 
Spark 
One 
pla[orm 
to 
rule 
them 
all 
… 
and 
blurs 
boundary 
between 
SQL, 
machine 
learning, 
streams 
& 
graphs
현재 분석 플랫폼의 아키텍처 
h^p://spark-­‐summit.org/wp-­‐content/uploads/2013/10/Stoica-­‐SparkSummit-­‐Ion.final_.pdf
지금 핫한 Real-time In-memory Stream Processing 이야기
Spark 
Streaming 
새로운 스트리밍 플랫폼
Spark 
Streaming 이야기 
RDD 
Resilient 
Distributed 
Datasets 
Immutable 
Parallelized 
Collec6ons
Spark 
Streaming 이야기 
DStreams 
Discre6zed 
Streams 
연속된 RDD
Spark 
Streaming 이야기
Spark 
Streaming 이야기
Spark 
Streaming 이야기
Spark 
Streaming 
이야기 
• 초단위 latency 
• Streaming도 작은 배치의 연속으로 구현 
• Storm의 TransacEonal 
토폴로지와 유사한 개념 
• 실제 실행은 마이크로 배치 잡처럼 수행 
• 배치 윈도우 시간 내에 처리 가능하도록 만들어줘야함 
• 각 배치 사이즈를 시간 간격 설정으로 조절 가능
Spark 
Streaming 
이야기 
• Simple한 프로그래밍 모델 제공 
• 분산 처리 환경에서 Time 
Window 
API 
제공 
• Stateful 
스트림 프로세싱 기능 가능 
• Task 
실패시 재시도 기능 제공 è 
fault-­‐tolerance 
• CMS 
GC가 잘 동작 
• Spark 
배치와 동일한 관리자 UI 
제공 
• 로컬 테스트 용이
Spark 
Streaming 튜닝 핵심 개념 
SparkStreamingContext 
'me 
window: 
10sec 
blockInterval: 
500ms 
으로 정의하면, 
RDD당 20개의 par''on 
생성 (10,000/500) 
20개의 태스크가 수행됨 
YARN에서 executor 
1개 5개 vCore 할당시, 
1vCore당 4개(20/5) 
4개의 태스크 수행
Spark 
Streaming 
이야기
Spark 
Streaming 이야기 
Stream을 
Transforma6on 
하고 또 해서 
Ac6on 하는 스토리 
요런게 스트림 그래프 (DAG)
Spark 
Streaming 이야기 
• Transforma'on 
API 
map(func) 
filter(func) 
flatMap(func) 
mapPar''ons(func) 
union(otherDataset) 
repar''on(numPar''ons) 
groupByKey([numTasks]) 
reduceByKey(func, 
[numTasks]) 
updateStateByKey(func)
Spark 
Streaming 이야기 
• Ac'on 
API 
print() 
foreachRDD(func) 
saveAsTextFiles(prefix, 
[suffix]) 
saveAsHadoopFiles(prefix, 
[suffix]) 
saveAsObjectFiles(prefix, 
[suffix])
Spark 
Streaming 이야기 
Scala로된 샘플 코드 한 번 보실래요?
Spark 
Streaming 이야기
Spark 
Streaming 이야기
Spark 
Streaming 이야기
Spark 
Streaming 
on 
YARN
KaVa 
+ 
Spark 
IntegraEon 
• KaVa 
프로젝트 통합 모듈 존재 
– KaVaInputDStream.scala 
– h^ps://github.com/apache/spark/tree/master/external/kaVa 
• High-­‐level 
Consumer 
API로 구현 
• ProducEon 
용은 아직 아닌 듯 
• 1.2.x 
버전에서는 해결 될 듯 
– ReliableKaVaReceiver.scala 추가
Summary 
• 실시간 프로젝트를 위한 기본 개념은 필수 
• 각 오픈 소스의 장점을 활용한 아키텍처 구성 필요 
• 안정적인 데이터 수집 관리를 위해서는 KaVa는 현재 최고의 선택 
• 운영 중 동적인 스트리밍 처리 로직 변경이 필요한 경우는 Esepr 
• 실시간 분산 전처리용으로 Storm, 
Spark 
Streaming 
• 인메모리 프로세싱과 Infinsipan은 찰떡 궁합 
• 실시간의 특성상 성능 관리와 모니터링 중요
Summary 
h^p://www.reacEvemanifesto.org 
• ReacEve 
Manifesto
Streaming 
기술이 
더욱 활발히 적용되길 바랍니다.
Special 
thanks 
to 
co-­‐workers!
Thank 
you!
개발자 커뮤니티에서 함께해요~ 
hjps://www.facebook.com/groups/jbossusergroup 
hjps://www.facebook.com/groups/open.real'mecep
References 
• h^p://kaVa.apache.org 
• h^p://esper.codehaus.org 
• h^p://storm.apache.org 
• h^p://spark.apache.org/docs/latest/programming-­‐guide.html 
• h^ps://www.usenix.org/system/files/conference/nsdi12/nsdi12-­‐final138.pdf 
• h^p://berlinbuzzwords.de/sites/berlinbuzzwords.de/files/media/documents/ 
andrew_psalEs_-­‐_sparkstreaming.pdf 
• h^p://www.michael-­‐noll.com/blog/2014/10/01/kaVa-­‐spark-­‐streaming-­‐integraEon-­‐example-­‐ 
tutorial 
• h^p://www.slideshare.net/ptgoetz/apache-­‐storm-­‐vs-­‐spark-­‐streaming 
• h^p://infinispan.org/infinispan-­‐7.0 
• h^p://blog.cloudera.com/blog/2014/07/jay-­‐kreps-­‐apache-­‐kaVa-­‐architect-­‐visits-­‐cloudera 
• h^p://www.slideshare.net/tedwon/realEmecepv26 
• h^p://www.slideshare.net/tedwon/real-­‐Eme-­‐bigdataanalyEcspracEcewithunstructureddata 
• h^p://www.slideshare.net/tedwon/complex-­‐event-­‐processing-­‐with-­‐esper-­‐11106262 
• h^p://www.slideshare.net/tedwon/red-­‐hat-­‐forum-­‐2012-­‐jboss-­‐rhq

Contenu connexe

Tendances

ksqlDB로 실시간 데이터 변환 및 스트림 처리
ksqlDB로 실시간 데이터 변환 및 스트림 처리ksqlDB로 실시간 데이터 변환 및 스트림 처리
ksqlDB로 실시간 데이터 변환 및 스트림 처리confluent
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축Ji-Woong Choi
 
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)Ji-Woong Choi
 
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법Ji-Woong Choi
 
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門Daiyu Hatakeyama
 
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...Amazon Web Services Korea
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache KafkaJeff Holoman
 
SW 아키텍처 분석방법
SW 아키텍처 분석방법 SW 아키텍처 분석방법
SW 아키텍처 분석방법 YoungSu Son
 
ProxySQL Tutorial - PLAM 2016
ProxySQL Tutorial - PLAM 2016ProxySQL Tutorial - PLAM 2016
ProxySQL Tutorial - PLAM 2016Derek Downey
 
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?VMware Tanzu Korea
 
Introduction to Kafka Streams
Introduction to Kafka StreamsIntroduction to Kafka Streams
Introduction to Kafka StreamsGuozhang Wang
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요Jo Hoon
 
Kafka to the Maxka - (Kafka Performance Tuning)
Kafka to the Maxka - (Kafka Performance Tuning)Kafka to the Maxka - (Kafka Performance Tuning)
Kafka to the Maxka - (Kafka Performance Tuning)DataWorks Summit
 
Best practices for MySQL High Availability Tutorial
Best practices for MySQL High Availability TutorialBest practices for MySQL High Availability Tutorial
Best practices for MySQL High Availability TutorialColin Charles
 
Introduction to Kafka connect
Introduction to Kafka connectIntroduction to Kafka connect
Introduction to Kafka connectKnoldus Inc.
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴Terry Cho
 
Tips & Tricks for Apache Kafka®
Tips & Tricks for Apache Kafka®Tips & Tricks for Apache Kafka®
Tips & Tricks for Apache Kafka®confluent
 
Handle Large Messages In Apache Kafka
Handle Large Messages In Apache KafkaHandle Large Messages In Apache Kafka
Handle Large Messages In Apache KafkaJiangjie Qin
 

Tendances (20)

ksqlDB로 실시간 데이터 변환 및 스트림 처리
ksqlDB로 실시간 데이터 변환 및 스트림 처리ksqlDB로 실시간 데이터 변환 및 스트림 처리
ksqlDB로 실시간 데이터 변환 및 스트림 처리
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
 
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
 
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
 
KAFKA 3.1.0.pdf
KAFKA 3.1.0.pdfKAFKA 3.1.0.pdf
KAFKA 3.1.0.pdf
 
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門SQL Server 使いのための Azure Synapse Analytics - Spark 入門
SQL Server 使いのための Azure Synapse Analytics - Spark 入門
 
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
 
SW 아키텍처 분석방법
SW 아키텍처 분석방법 SW 아키텍처 분석방법
SW 아키텍처 분석방법
 
ProxySQL Tutorial - PLAM 2016
ProxySQL Tutorial - PLAM 2016ProxySQL Tutorial - PLAM 2016
ProxySQL Tutorial - PLAM 2016
 
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
MSA 전략 2: 마이크로서비스, 어떻게 구현할 것인가?
 
Apache Kafka Best Practices
Apache Kafka Best PracticesApache Kafka Best Practices
Apache Kafka Best Practices
 
Introduction to Kafka Streams
Introduction to Kafka StreamsIntroduction to Kafka Streams
Introduction to Kafka Streams
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
 
Kafka to the Maxka - (Kafka Performance Tuning)
Kafka to the Maxka - (Kafka Performance Tuning)Kafka to the Maxka - (Kafka Performance Tuning)
Kafka to the Maxka - (Kafka Performance Tuning)
 
Best practices for MySQL High Availability Tutorial
Best practices for MySQL High Availability TutorialBest practices for MySQL High Availability Tutorial
Best practices for MySQL High Availability Tutorial
 
Introduction to Kafka connect
Introduction to Kafka connectIntroduction to Kafka connect
Introduction to Kafka connect
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴
 
Tips & Tricks for Apache Kafka®
Tips & Tricks for Apache Kafka®Tips & Tricks for Apache Kafka®
Tips & Tricks for Apache Kafka®
 
Handle Large Messages In Apache Kafka
Handle Large Messages In Apache KafkaHandle Large Messages In Apache Kafka
Handle Large Messages In Apache Kafka
 

Similaire à 지금 핫한 Real-time In-memory Stream Processing 이야기

Streaming platform Kafka in SK planet
Streaming platform Kafka in SK planetStreaming platform Kafka in SK planet
Streaming platform Kafka in SK planetByeongsu Kang
 
Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안
Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안
Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안Opennaru, inc.
 
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...Amazon Web Services Korea
 
[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영NAVER D2
 
2020년 10월 24일 개발자 이야기
2020년 10월 24일 개발자 이야기2020년 10월 24일 개발자 이야기
2020년 10월 24일 개발자 이야기Jay Park
 
Open source apm scouter를 통한 관제 관리 jadecross 정환열 수석
Open source apm scouter를 통한 관제  관리 jadecross 정환열 수석Open source apm scouter를 통한 관제  관리 jadecross 정환열 수석
Open source apm scouter를 통한 관제 관리 jadecross 정환열 수석uEngine Solutions
 
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...Amazon Web Services Korea
 
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos uEngine Solutions
 
Play node conference
Play node conferencePlay node conference
Play node conferenceJohn Kim
 
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdfOpen Source Consulting
 
[DDD] 모바일 게임을 만들기 위한 AWS 고군분투기 (2019)
[DDD] 모바일 게임을 만들기 위한 AWS 고군분투기 (2019)[DDD] 모바일 게임을 만들기 위한 AWS 고군분투기 (2019)
[DDD] 모바일 게임을 만들기 위한 AWS 고군분투기 (2019)용호 최
 
Introduction to Apache Tajo
Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache TajoGruter
 
20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)
20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)
20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)Amazon Web Services Korea
 
1711 azure-live
1711 azure-live1711 azure-live
1711 azure-live세준 김
 
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)정명훈 Jerry Jeong
 
Monitoring System Targeting OpenStack, Baremetal, and Network Fabric
Monitoring System Targeting OpenStack, Baremetal, and Network FabricMonitoring System Targeting OpenStack, Baremetal, and Network Fabric
Monitoring System Targeting OpenStack, Baremetal, and Network FabricJaesuk Ahn
 
AWS re:Invent 2018 콘테이너 신규 서비스 기능 살펴보기 - 윤석찬, AWS 테크에반젤리스트
AWS re:Invent 2018 콘테이너 신규 서비스 기능 살펴보기 - 윤석찬, AWS 테크에반젤리스트AWS re:Invent 2018 콘테이너 신규 서비스 기능 살펴보기 - 윤석찬, AWS 테크에반젤리스트
AWS re:Invent 2018 콘테이너 신규 서비스 기능 살펴보기 - 윤석찬, AWS 테크에반젤리스트Amazon Web Services Korea
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...hoondong kim
 
Spark streaming tutorial
Spark streaming tutorialSpark streaming tutorial
Spark streaming tutorialMinho Kim
 
cdit hci zerto '소통하는 세미나' 소개자료(201705)
cdit hci zerto '소통하는 세미나' 소개자료(201705)cdit hci zerto '소통하는 세미나' 소개자료(201705)
cdit hci zerto '소통하는 세미나' 소개자료(201705)CDIT-HCI
 

Similaire à 지금 핫한 Real-time In-memory Stream Processing 이야기 (20)

Streaming platform Kafka in SK planet
Streaming platform Kafka in SK planetStreaming platform Kafka in SK planet
Streaming platform Kafka in SK planet
 
Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안
Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안
Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안
 
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
 
[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영
 
2020년 10월 24일 개발자 이야기
2020년 10월 24일 개발자 이야기2020년 10월 24일 개발자 이야기
2020년 10월 24일 개발자 이야기
 
Open source apm scouter를 통한 관제 관리 jadecross 정환열 수석
Open source apm scouter를 통한 관제  관리 jadecross 정환열 수석Open source apm scouter를 통한 관제  관리 jadecross 정환열 수석
Open source apm scouter를 통한 관제 관리 jadecross 정환열 수석
 
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...
 
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos
 
Play node conference
Play node conferencePlay node conference
Play node conference
 
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
 
[DDD] 모바일 게임을 만들기 위한 AWS 고군분투기 (2019)
[DDD] 모바일 게임을 만들기 위한 AWS 고군분투기 (2019)[DDD] 모바일 게임을 만들기 위한 AWS 고군분투기 (2019)
[DDD] 모바일 게임을 만들기 위한 AWS 고군분투기 (2019)
 
Introduction to Apache Tajo
Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache Tajo
 
20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)
20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)
20140528 AWS Meister BlackBelt - Amazon Kinesis (Korean)
 
1711 azure-live
1711 azure-live1711 azure-live
1711 azure-live
 
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
 
Monitoring System Targeting OpenStack, Baremetal, and Network Fabric
Monitoring System Targeting OpenStack, Baremetal, and Network FabricMonitoring System Targeting OpenStack, Baremetal, and Network Fabric
Monitoring System Targeting OpenStack, Baremetal, and Network Fabric
 
AWS re:Invent 2018 콘테이너 신규 서비스 기능 살펴보기 - 윤석찬, AWS 테크에반젤리스트
AWS re:Invent 2018 콘테이너 신규 서비스 기능 살펴보기 - 윤석찬, AWS 테크에반젤리스트AWS re:Invent 2018 콘테이너 신규 서비스 기능 살펴보기 - 윤석찬, AWS 테크에반젤리스트
AWS re:Invent 2018 콘테이너 신규 서비스 기능 살펴보기 - 윤석찬, AWS 테크에반젤리스트
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
 
Spark streaming tutorial
Spark streaming tutorialSpark streaming tutorial
Spark streaming tutorial
 
cdit hci zerto '소통하는 세미나' 소개자료(201705)
cdit hci zerto '소통하는 세미나' 소개자료(201705)cdit hci zerto '소통하는 세미나' 소개자료(201705)
cdit hci zerto '소통하는 세미나' 소개자료(201705)
 

Plus de Ted Won

Undertow RequestBufferingHandler 소개
Undertow RequestBufferingHandler 소개Undertow RequestBufferingHandler 소개
Undertow RequestBufferingHandler 소개Ted Won
 
JBoss EAP 7 & JDG 7 최신 기술 소개
JBoss EAP 7 & JDG 7 최신 기술 소개JBoss EAP 7 & JDG 7 최신 기술 소개
JBoss EAP 7 & JDG 7 최신 기술 소개Ted Won
 
JBoss Modules Internal
JBoss Modules InternalJBoss Modules Internal
JBoss Modules InternalTed Won
 
오픈 소스 컨트리뷰션 가이드
오픈 소스 컨트리뷰션 가이드오픈 소스 컨트리뷰션 가이드
오픈 소스 컨트리뷰션 가이드Ted Won
 
Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...
Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...
Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...Ted Won
 
Jenkins X - automated CI/CD solution for cloud native applications on Kubernetes
Jenkins X - automated CI/CD solution for cloud native applications on KubernetesJenkins X - automated CI/CD solution for cloud native applications on Kubernetes
Jenkins X - automated CI/CD solution for cloud native applications on KubernetesTed Won
 
Hawkular overview
Hawkular overviewHawkular overview
Hawkular overviewTed Won
 
Complex Event Processing with Esper
Complex Event Processing with EsperComplex Event Processing with Esper
Complex Event Processing with EsperTed Won
 
JDG 7 & Spark Integration
JDG 7 & Spark IntegrationJDG 7 & Spark Integration
JDG 7 & Spark IntegrationTed Won
 
Nara - Personalized Web Recommendation Service Quick Review
Nara - Personalized Web Recommendation Service Quick ReviewNara - Personalized Web Recommendation Service Quick Review
Nara - Personalized Web Recommendation Service Quick ReviewTed Won
 
JBoss Community's Application Monitoring Platform
JBoss Community's Application Monitoring PlatformJBoss Community's Application Monitoring Platform
JBoss Community's Application Monitoring PlatformTed Won
 
Real-time Big Data Analytics Practice with Unstructured Data
Real-time Big Data Analytics Practice with Unstructured DataReal-time Big Data Analytics Practice with Unstructured Data
Real-time Big Data Analytics Practice with Unstructured DataTed Won
 
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...Ted Won
 
Building Real-time CEP Application with Open Source Projects
Building Real-time CEP Application with Open Source Projects Building Real-time CEP Application with Open Source Projects
Building Real-time CEP Application with Open Source Projects Ted Won
 
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기Ted Won
 
JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링
JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링
JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링Ted Won
 
RHQ 공감 Seminar 6th
RHQ 공감 Seminar 6thRHQ 공감 Seminar 6th
RHQ 공감 Seminar 6thTed Won
 
Complex Event Processing with Esper
Complex Event Processing with EsperComplex Event Processing with Esper
Complex Event Processing with EsperTed Won
 

Plus de Ted Won (18)

Undertow RequestBufferingHandler 소개
Undertow RequestBufferingHandler 소개Undertow RequestBufferingHandler 소개
Undertow RequestBufferingHandler 소개
 
JBoss EAP 7 & JDG 7 최신 기술 소개
JBoss EAP 7 & JDG 7 최신 기술 소개JBoss EAP 7 & JDG 7 최신 기술 소개
JBoss EAP 7 & JDG 7 최신 기술 소개
 
JBoss Modules Internal
JBoss Modules InternalJBoss Modules Internal
JBoss Modules Internal
 
오픈 소스 컨트리뷰션 가이드
오픈 소스 컨트리뷰션 가이드오픈 소스 컨트리뷰션 가이드
오픈 소스 컨트리뷰션 가이드
 
Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...
Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...
Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...
 
Jenkins X - automated CI/CD solution for cloud native applications on Kubernetes
Jenkins X - automated CI/CD solution for cloud native applications on KubernetesJenkins X - automated CI/CD solution for cloud native applications on Kubernetes
Jenkins X - automated CI/CD solution for cloud native applications on Kubernetes
 
Hawkular overview
Hawkular overviewHawkular overview
Hawkular overview
 
Complex Event Processing with Esper
Complex Event Processing with EsperComplex Event Processing with Esper
Complex Event Processing with Esper
 
JDG 7 & Spark Integration
JDG 7 & Spark IntegrationJDG 7 & Spark Integration
JDG 7 & Spark Integration
 
Nara - Personalized Web Recommendation Service Quick Review
Nara - Personalized Web Recommendation Service Quick ReviewNara - Personalized Web Recommendation Service Quick Review
Nara - Personalized Web Recommendation Service Quick Review
 
JBoss Community's Application Monitoring Platform
JBoss Community's Application Monitoring PlatformJBoss Community's Application Monitoring Platform
JBoss Community's Application Monitoring Platform
 
Real-time Big Data Analytics Practice with Unstructured Data
Real-time Big Data Analytics Practice with Unstructured DataReal-time Big Data Analytics Practice with Unstructured Data
Real-time Big Data Analytics Practice with Unstructured Data
 
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...
 
Building Real-time CEP Application with Open Source Projects
Building Real-time CEP Application with Open Source Projects Building Real-time CEP Application with Open Source Projects
Building Real-time CEP Application with Open Source Projects
 
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기
 
JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링
JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링
JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링
 
RHQ 공감 Seminar 6th
RHQ 공감 Seminar 6thRHQ 공감 Seminar 6th
RHQ 공감 Seminar 6th
 
Complex Event Processing with Esper
Complex Event Processing with EsperComplex Event Processing with Esper
Complex Event Processing with Esper
 

지금 핫한 Real-time In-memory Stream Processing 이야기

  • 1. 지금 핫한 Real-­‐'me In-­‐memory Stream Processing 이야기 tedwon iamtedwon@gmail.com
  • 2. 우리 나라 사람들이 특히 좋아하는 이야기
  • 4. About me • JBoss User Group Korea 온오프라인 개발자 커뮤니티 운영자 • Facebook 그룹 실시간빅데이터처리기술 온라인 커뮤니티 운영자 • 실시간 빅데이터 플랫폼 전문 개발자 • 현 DaumKakao 개발자 • 전 kth DAISY 개발자 • www.facebook.com/tedwon • tedwon.atlassian.net
  • 5. 언제 어디서 Streaming 기술이 유용할까요??
  • 6. Streaming 기술의 Use Cases 알고리즘 주식 트레이딩 지난 30분간의 주문 상품 Top10 온라인몰 사용자 클릭 스트림기반 개인화 추천 모바일 광고 타겟팅 서비스 실시간 금융 사기 방지
  • 7. Streaming 기술의 Use Cases • 테러 방지 • 실시간 분석/추천/광고 • 실시간 모니터링 • 제조 공정 관리 • 보안 관제 • 금융/통신 • 의료/헬스케어 • IoT(Internet of Things)
  • 14. 실시간의 개념부터 살짝 정리하고 시작합시다!
  • 15. 실시간 Searching 실시간 Batch Job 실시간 Streaming
  • 16. Real-­‐'me == Streaming 전제하에 이야기를 진행 하겠습니다
  • 17. Real-­‐Eme 시스템의 특징 • EDA 기반 아키텍처로 구현해야 함! – Event-­‐driven Architecture • 실시간이란 상대적인 개념 • 요건에 따라 실시간의 범위가 정의될 수 있음 • 실시간 서비스 수준 정의가 필요 • 실시간 시스템의 SLA 정의 및 합의 필요
  • 18. Real-­‐Eme 시스템의 키포인트 • 낮은 수준의 지연 시간 – Low latency • 일정한 응답 속도의 보장 – RegulariEes in Response Eme • 예측 가능한 성능 제공 – Providing predictable performance ü 결국 낮은 지연 시간을 일정하게 최대한 오래 유지 (24/7)
  • 19. Real-­‐Eme 서비스 수준 정의 • Latency 정규 분포 통계 계산 Throughput 995,900 (active 0 pending 0) 나노세컨드 단위 측정 5 μs 수준의 성능
  • 20. Real-­‐Eme 서비스 수준 정의 • Near Real-­‐'me – Minutes 수준의 지연 시간 보장 • Real-­‐'me – Seconds, Milliseconds 수준 보장 • Real Real-­‐'me – Microseconds 수준 보장 ü 구체적인 범위 정의는 비즈니스 SLA 요구 수준에 따라 결정됨
  • 21. Streaming의 EDA 아키텍처 • EDA기반으로 사람의 감각 기관 및 반응 구조와 유사 – Event-­‐driven Architecture 눈, 귀 등의 감각 기관 생각, 판단 손, 발의 반응
  • 22. Streaming과 일반 방식의 비교 배치, 요청/응답 방식 스트리밍 방식 Request/Response EDA 동기 처리 비동기 처리 Response ReacEon 선저장 후처리 선처리 후저장
  • 23. 가장 먼저 실시간 로그 수집부터 이슈
  • 28. Apache KaVa 이야기 • Publish-­‐subscribe 방식의 고성능 분산 메시징 시스템 • Topic과 Queue 개념이 합쳐진 모델 • LinkedIn SNA팀에서 개발하고 서비스에 사용 중 – 2011년 시작 – Scala, Java 구현 • LinkedIn에서 2014년 기준 300개가 넘는 브로커 운영 – 18,000개의 토픽 – 하루에 2,200억 메세지 처리
  • 29. Apache KaVa 이야기 h^p://www.slideshare.net/fullscreen/cloudera/introducEon-­‐to-­‐apache-­‐kaVa/1
  • 30. Apache KaVa 이야기 • 사용하기 쉬운 API, 설정 옵션 • Zero-­‐copy 방식으로 고성능 읽기 기능 • Scale-­‐out 아키텍처 • Producer측에서 파티셔너를 구현해 분산 저장 조절 • 배치 단위 전송, 압축 기능등 효율적인 전송 기능 • 성능을 위해 OS와 Log 디스크 드라이브를 분리 • KaVa + Stream Processor 조합으로 활용
  • 31. KaVa in Neclix h^ps://gigaom.com/2013/12/09/neclix-­‐open-­‐sources-­‐its-­‐data-­‐traffic-­‐cop-­‐suro
  • 32. Apache KaVa 이야기 h^p://www.cloudera.com/content/cloudera/en/developers/home/cloudera-­‐labs/apache-­‐kaVa.html
  • 34. Apache KaVa 이야기 주키퍼 시작 > bin/zookeeper-server-start.sh config/zookeeper.properties 카프카 서버 시작 > bin/kafka-server-start.sh config/server.properties 토픽 생성 > bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test 로그 생성 > bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test 로그 처리 > bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
  • 35. Apache KaVa 이야기 High Level Consumer API Simple Consumer API
  • 36. Apache KaVa 모니터링 • JBoss RHQ 모니터링 통합 플랫폼
  • 37. Apache KaVa 모니터링 • QuanEfind의 KaVa Offset Monitor
  • 38. Apache KaVa 모니터링 • QuanEfind의 KaVa Offset Monitor
  • 39. 써보니 결국 각자 R&R이 있었습니다
  • 41. Esper CEP 이야기 • 1990년대부터 시작된 전통적인 Event Stream 처리 기술 • Complex Event Processing을 구현 오픈 소스 Esper • 복합적인 event를 참조하여 패턴을 알아 차리는 기술 • Data Window, Pa^ern matching 기능이 핵심 • ConEnuous Query EPL 제공 • 10억분의 1초(ns) 단위의 성능 è 초고성능 가능
  • 42. Esper 이야기 • Esper 기본 아키텍처
  • 43. Esper 이야기 • 실시간 ETL 처리 후 HDFS 저장 Thrift Server Hadoop FileSystem API ETL EPL 작성 (Extract, Transform, Load)
  • 44. Esper CEP 이야기 최근 30분내 강남에 있었던 급여가 10M 이상이며 나이가 30~35세 이상이고 취미가 쇼핑인 여성 select * from customer(age=‘30~35’, gender=‘female’, salary>10M, location=‘강남’, hobby=‘shopping’).win:time(30 min)
  • 45. Esper CEP 이야기 “Asset이 서로 다른 Zone으로 이동 후 10초 이상 머무르면, 경보를 알려라” select Part.zone from pattern [ every Part=CountZone(cnt in (1, 2)) -> ( not CountZone(zone=Part.zone, cnt in (0, 3)) and timer:interval(10 sec) )]
  • 46. Esper CEP 이야기 단일 노드(JVM)의 한계
  • 48. Apache Storm 이야기 • Twi^er의 실시간 스트리밍 데이터 분석 솔루션 • Real-­‐Eme Hadoop 같은 존재 • 스트림 분산 처리 아키텍처 • Transac'onal 스트림 처리 기능 • 분산 RPC 기능 • 이벤트 처리 보장 기능 • 지속적인 버전업 중, 커뮤니티 활발 • 국내 레퍼런스 많음
  • 49. Apache Storm 키워드 Nimbus Supervisor Worker Spout/Bolt Transac'onal Spout/Bolt Trident
  • 50. Apache Storm 이야기 JobTracker • Real-­‐Eme MapReduce TaskTracker
  • 53. KaVa + Storm IntegraEon • Storm 프로젝트의 통합 모듈에 포함 – h^ps://github.com/apache/storm/tree/master/external/storm-­‐kaVa • Simple Consumer API로 구현 • Storm Spout에서 KaVa 메세지 offset 직접 관리 • KaVa + Storm 조합 사용 사례 많음 • ProducEon 적용 가능 수준 상태
  • 56. Apache Storm Trident • Codes
  • 57. Apache Storm Trident • Compile Down
  • 59. Apache Storm 이야기 좀 더 간단하면 안되겠니??
  • 60. 현재 실시간 플랫폼의 아쉬운점 • 실시간 분산 환경에서 고성능으로 데이터 공유의 어려움 • 분산 환경에서 Time Window 제공이 어려움 • 로우 레벨 코드 작업이 큼 • 배치 분석 시스템과 개별 운영 공수 필요 • 클러스터 리소스 공유의 어려움
  • 62. JBoss Infinispan 이야기 • JBoss 커뮤니티의 오픈 소스 프로젝트 – Scala, Java • Data Grid, In-­‐memory NoSQL, 분산 케시 • In-­‐memory HDFS 같은 존재 • 메모리 기반의 대용량 데이터 저장소 • 운영 중 노드 추가 가능, replica 기능 지원 • 안정적인 클러스터 운영 기능
  • 63. JBoss Infinispan 이야기 • 메타 데이터 관리 è 시스템 관리 • 성능/에러 모니터링 데이터 저장소 è Live Charts 로 연동 • 마이닝 데이터 저장소 è 추천 • 실시간 데이터 저장소 • 등등 포텐 대박!!
  • 65. 새로운 분석 플랫폼 Apache Spark One pla[orm to rule them all … and blurs boundary between SQL, machine learning, streams & graphs
  • 66. 현재 분석 플랫폼의 아키텍처 h^p://spark-­‐summit.org/wp-­‐content/uploads/2013/10/Stoica-­‐SparkSummit-­‐Ion.final_.pdf
  • 68. Spark Streaming 새로운 스트리밍 플랫폼
  • 69. Spark Streaming 이야기 RDD Resilient Distributed Datasets Immutable Parallelized Collec6ons
  • 70. Spark Streaming 이야기 DStreams Discre6zed Streams 연속된 RDD
  • 74. Spark Streaming 이야기 • 초단위 latency • Streaming도 작은 배치의 연속으로 구현 • Storm의 TransacEonal 토폴로지와 유사한 개념 • 실제 실행은 마이크로 배치 잡처럼 수행 • 배치 윈도우 시간 내에 처리 가능하도록 만들어줘야함 • 각 배치 사이즈를 시간 간격 설정으로 조절 가능
  • 75. Spark Streaming 이야기 • Simple한 프로그래밍 모델 제공 • 분산 처리 환경에서 Time Window API 제공 • Stateful 스트림 프로세싱 기능 가능 • Task 실패시 재시도 기능 제공 è fault-­‐tolerance • CMS GC가 잘 동작 • Spark 배치와 동일한 관리자 UI 제공 • 로컬 테스트 용이
  • 76. Spark Streaming 튜닝 핵심 개념 SparkStreamingContext 'me window: 10sec blockInterval: 500ms 으로 정의하면, RDD당 20개의 par''on 생성 (10,000/500) 20개의 태스크가 수행됨 YARN에서 executor 1개 5개 vCore 할당시, 1vCore당 4개(20/5) 4개의 태스크 수행
  • 78. Spark Streaming 이야기 Stream을 Transforma6on 하고 또 해서 Ac6on 하는 스토리 요런게 스트림 그래프 (DAG)
  • 79. Spark Streaming 이야기 • Transforma'on API map(func) filter(func) flatMap(func) mapPar''ons(func) union(otherDataset) repar''on(numPar''ons) groupByKey([numTasks]) reduceByKey(func, [numTasks]) updateStateByKey(func)
  • 80. Spark Streaming 이야기 • Ac'on API print() foreachRDD(func) saveAsTextFiles(prefix, [suffix]) saveAsHadoopFiles(prefix, [suffix]) saveAsObjectFiles(prefix, [suffix])
  • 81. Spark Streaming 이야기 Scala로된 샘플 코드 한 번 보실래요?
  • 86. KaVa + Spark IntegraEon • KaVa 프로젝트 통합 모듈 존재 – KaVaInputDStream.scala – h^ps://github.com/apache/spark/tree/master/external/kaVa • High-­‐level Consumer API로 구현 • ProducEon 용은 아직 아닌 듯 • 1.2.x 버전에서는 해결 될 듯 – ReliableKaVaReceiver.scala 추가
  • 87. Summary • 실시간 프로젝트를 위한 기본 개념은 필수 • 각 오픈 소스의 장점을 활용한 아키텍처 구성 필요 • 안정적인 데이터 수집 관리를 위해서는 KaVa는 현재 최고의 선택 • 운영 중 동적인 스트리밍 처리 로직 변경이 필요한 경우는 Esepr • 실시간 분산 전처리용으로 Storm, Spark Streaming • 인메모리 프로세싱과 Infinsipan은 찰떡 궁합 • 실시간의 특성상 성능 관리와 모니터링 중요
  • 89. Streaming 기술이 더욱 활발히 적용되길 바랍니다.
  • 90. Special thanks to co-­‐workers!
  • 92. 개발자 커뮤니티에서 함께해요~ hjps://www.facebook.com/groups/jbossusergroup hjps://www.facebook.com/groups/open.real'mecep
  • 93. References • h^p://kaVa.apache.org • h^p://esper.codehaus.org • h^p://storm.apache.org • h^p://spark.apache.org/docs/latest/programming-­‐guide.html • h^ps://www.usenix.org/system/files/conference/nsdi12/nsdi12-­‐final138.pdf • h^p://berlinbuzzwords.de/sites/berlinbuzzwords.de/files/media/documents/ andrew_psalEs_-­‐_sparkstreaming.pdf • h^p://www.michael-­‐noll.com/blog/2014/10/01/kaVa-­‐spark-­‐streaming-­‐integraEon-­‐example-­‐ tutorial • h^p://www.slideshare.net/ptgoetz/apache-­‐storm-­‐vs-­‐spark-­‐streaming • h^p://infinispan.org/infinispan-­‐7.0 • h^p://blog.cloudera.com/blog/2014/07/jay-­‐kreps-­‐apache-­‐kaVa-­‐architect-­‐visits-­‐cloudera • h^p://www.slideshare.net/tedwon/realEmecepv26 • h^p://www.slideshare.net/tedwon/real-­‐Eme-­‐bigdataanalyEcspracEcewithunstructureddata • h^p://www.slideshare.net/tedwon/complex-­‐event-­‐processing-­‐with-­‐esper-­‐11106262 • h^p://www.slideshare.net/tedwon/red-­‐hat-­‐forum-­‐2012-­‐jboss-­‐rhq