SlideShare una empresa de Scribd logo
1 de 60
오픈 소스를 활용한 Batch처리 플랫폼 공유 사람과 사람, 오늘과 내일, 네트워크와 네트워크가 연결되는 세상,  NHN이 만들어 갑니다 NHN 김용환  knight1128@gmail.com
OVERVIEW 배경 Batch 처리 플랫폼 선택 Spring Batch 소개 Hudson 소개 적용사례
발표자 소개
배경 Batch 처리 플랫폼 선택 Spring Batch 소개 Hudson 소개 적용사례
배경 사용자의 추가적인 개입 없이 서비스를 지원하는 프로그램 또는 서비스 Front-End Back-End
배경 Batch 처리 플랫폼은 Back-end 서비스 중  중요한 솔루션 중 하나
배경 용어 정리  JOB JOB JOB JOB JOB JOB JOB JOB Batch Job  Batch 처리 플랫폼 Failover Log UI(Dashboard) Monitoring& Alert Scheduler LoadBalancing Batch Job : 시스템 사용자가 주기적으로 또는특정시간에  자동으로 실행되도록 하는 프로그램 Batch 처리 플랫폼 : Batch Job을 실행하는 기반 프로그램
배경 웹 서비스의 Batch Job 특징 ,[object Object]
 대부분 DB나 파일처리이다.
 성능을 위해서 java 이외의 언어로 해결할 수 있다.
특정 시간 안으로 끝내야 하는 것은 거의 없다.
초기 개발 외에는 유지보수는 거의 하지 않는다.
 잘해도 티 안 나고, 장애 발생하면 욕먹는다.
개발자의 성격이 드러나는 경우가 많다.
인수인계 할 때 빠트리는 경우가 많다.,[object Object]
 Web framework위에 Web Call 호출 방식
 Web framework위에 Quartz 이용
 자체 Framework / 플랫폼 개발- 일반적인 Batch - 서비스만의 특수한 상황을 해결 ,[object Object]
 Spring Batch ,[object Object]
테스트 못함(syntax 문제나 예측 불가능)
중복 실행
 잘못 만든 쿼리 문제
 코드 오류
서비스 DB연결에 대한 Timeout
 서버 장애
 API 연동 장애
Memory Leak
Batch 에 대한 정상 실행 여부에 대한 모니터링이 쉽지 않다. ,[object Object]
 Batch Job 실행 후, 문제 발생시 SMS/메일 알림
테스트 환경을 쉽게 재현,[object Object]
배경 Load Balancing Failover 확장성/ 안정성/ 생산성 / 유지보수성 확보
배경 Batch 처리플랫폼 요구사항 (1) ,[object Object]
쓸만한 UI
 Dashboard 를 통해 관리자 확인- Batch Job 리스트 - 다음 실행 시간을 확인 ,[object Object]
 Web에서의 Log 정보 확인
API 존재
 Batch Job Framework 와도 연동 가능성 ,[object Object]
 Fail over / Fail back  기능
확장 가능한 플러그인 지원
 믿을만한 오픈 소스 기반
 이해하기 쉽고 양질의문서
Retry 가능
기존에 사용하던 C, C++, shell script, Python, Perl 언어로 만들어진 Legacy Batch Job 실행가능 ,[object Object]
노드확장성,[object Object]
배경 2008년도 : Spring Batch 1 -> Spring Batch 2많은 변화 (구조개선, 안정화) 2010년도 : NHN 사내에 Batch 고도화 TF 결성 ,[object Object]
 Spring Batch Job을 잘 사용할 수 있는 Hudson 플러그인 개발,[object Object]
Batch처리 플랫폼 선택 서비스 부서에서 사용하는 Batch 처리 사례 및쓸만한 오픈 소스 확인 Linux/crontab Python/ Perl/PHP/C/C++ Shell Script Hadoop Spring Batch GridGain Hudson SSH/RSH Rsync Common java Custom Admin Quartz MQ 내부  솔루션 Spring Batch Admin Control-Tier
Batch처리 플랫폼 선택 Batch Job이 성격이 너무 다양하기 때문에다양한 해결 방법은 당연 다만, java 개발자가 처음쓰기에 괜찮은..        Batch Job을 쉽게 개발할 수 있는.. 유지보수가 편한.. 서로 공유할 수 있는..괜찮은 Batch Job Framework와       Batch 처리 플랫폼이 있으면 좋겠다
Batch처리 플랫폼 선택 Spring Source의 Spring Batch Admin  ,[object Object]
Launch Job
Inspect Executions
Stop an Execution▶ 기능이 많지 않음
Batch처리 플랫폼 선택 Hudson  ▶쓸만한 기능이 많음
Batch처리 플랫폼 선택
배경 Batch 처리 플랫폼 선택 Spring Batch 소개 Hudson 소개 적용사례
Spring Batch 소개 History SpringSource와 컨설팅 회사 Accenture가 협업해서  개발한 Framework 실제 개발 사례를 바탕으로 표준화된 API를 개발 1.0 Release (2008.2) 2.1.8.Release (2011.6.1)
Spring Batch 소개 Concept “bash$ java CommandLineJobRunner endOfDayJob.xml endOfDayschedule.date(date)=2011/06/19” Shell Script JMS File DB CommandLineJobRunner BO JMS File DB 문서 참조 http://static.springsource.org/spring-batch/reference/html/domain.html
Spring Batch 소개 Concept
Spring Batch 소개 Concept
Spring Batch 소개 Job example <job id="ioSampleJob">      <step name="step1">           <tasklet>                 <chunk reader="fooReader" processor=“fooProcessor"                        writer="foobarWriter“ commit-interval="10“/>           </tasklet>      </step> </job>

Más contenido relacionado

La actualidad más candente

AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017
AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017
AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017
Amazon Web Services Korea
 

La actualidad más candente (20)

アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
 
Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교
Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교
Amazon DocumentDB vs MongoDB 의 내부 아키텍쳐 와 장단점 비교
 
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
 
Oracle Data Guard による高可用性
Oracle Data Guard による高可用性Oracle Data Guard による高可用性
Oracle Data Guard による高可用性
 
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
大量のデータ処理や分析に使えるOSS Apache Spark入門(Open Source Conference 2021 Online/Kyoto 発表資料)
 
Serverless Computing
Serverless ComputingServerless Computing
Serverless Computing
 
오라클 DB를 AWS 데이터베이스로 마이그레이션 하기 - 윤기원 :: AWS Database Modernization Day 온라인
오라클 DB를 AWS 데이터베이스로 마이그레이션 하기 - 윤기원 :: AWS Database Modernization Day 온라인오라클 DB를 AWS 데이터베이스로 마이그레이션 하기 - 윤기원 :: AWS Database Modernization Day 온라인
오라클 DB를 AWS 데이터베이스로 마이그레이션 하기 - 윤기원 :: AWS Database Modernization Day 온라인
 
AWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormationAWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormation
 
AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017
AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017
AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017
 
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...
Terraform을 기반한 AWS 기반 대규모 마이크로서비스 인프라 운영 노하우 - 이용욱, 삼성전자 :: AWS Summit Seoul ...
 
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
 
KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較KafkaとAWS Kinesisの比較
KafkaとAWS Kinesisの比較
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
 
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
 
Flyway使いたい
Flyway使いたいFlyway使いたい
Flyway使いたい
 
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身
 
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
[GKE & Spanner 勉強会] Cloud Spanner の技術概要[GKE & Spanner 勉強会] Cloud Spanner の技術概要
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
 
Oracle DB를 AWS로 이관하는 방법들 - 서호석 클라우드 사업부/컨설팅팀 이사, 영우디지탈 :: AWS Summit Seoul 2021
Oracle DB를 AWS로 이관하는 방법들 - 서호석 클라우드 사업부/컨설팅팀 이사, 영우디지탈 :: AWS Summit Seoul 2021Oracle DB를 AWS로 이관하는 방법들 - 서호석 클라우드 사업부/컨설팅팀 이사, 영우디지탈 :: AWS Summit Seoul 2021
Oracle DB를 AWS로 이관하는 방법들 - 서호석 클라우드 사업부/컨설팅팀 이사, 영우디지탈 :: AWS Summit Seoul 2021
 
オンプレを少しずつコンテナ化する
オンプレを少しずつコンテナ化するオンプレを少しずつコンテナ化する
オンプレを少しずつコンテナ化する
 

Similar a 오픈소스를 활용한 Batch_처리_플랫폼_공유

(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
탑크리에듀(구로디지털단지역3번출구 2분거리)
 

Similar a 오픈소스를 활용한 Batch_처리_플랫폼_공유 (20)

03.실행환경 교육교재(배치처리)
03.실행환경 교육교재(배치처리)03.실행환경 교육교재(배치처리)
03.실행환경 교육교재(배치처리)
 
Ahea Team Spring batch
Ahea Team Spring batchAhea Team Spring batch
Ahea Team Spring batch
 
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions
 
Spring batch와 함께 하는 TDD
Spring batch와 함께 하는 TDDSpring batch와 함께 하는 TDD
Spring batch와 함께 하는 TDD
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
 
Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기Laravel로 스타트업 기술 스택 구성하기
Laravel로 스타트업 기술 스택 구성하기
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
 
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨
 
Better Scalable Flexible Soa Platform 0.8.0
Better Scalable Flexible Soa Platform 0.8.0Better Scalable Flexible Soa Platform 0.8.0
Better Scalable Flexible Soa Platform 0.8.0
 
practical perf testing - d2startup
practical perf testing - d2startuppractical perf testing - d2startup
practical perf testing - d2startup
 
Performance Testing using Loadrunner
Performance Testingusing LoadrunnerPerformance Testingusing Loadrunner
Performance Testing using Loadrunner
 
레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화레가시 프로젝트의 빌드 자동화
레가시 프로젝트의 빌드 자동화
 
2015 oce specification
2015 oce specification2015 oce specification
2015 oce specification
 
[H3 2012] Bridge over troubled water : make plug-in for Appspresso
[H3 2012] Bridge over troubled water : make plug-in for Appspresso[H3 2012] Bridge over troubled water : make plug-in for Appspresso
[H3 2012] Bridge over troubled water : make plug-in for Appspresso
 
DzinnyPing(포트폴리오)-정재훈
DzinnyPing(포트폴리오)-정재훈DzinnyPing(포트폴리오)-정재훈
DzinnyPing(포트폴리오)-정재훈
 
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기
 
hexa core
hexa corehexa core
hexa core
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)
 
Eclipse RAP - Single Source
Eclipse RAP - Single SourceEclipse RAP - Single Source
Eclipse RAP - Single Source
 

Más de knight1128 (19)

Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)
Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)
Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)
 
Comet
CometComet
Comet
 
Apache avro
Apache avroApache avro
Apache avro
 
Apache Thrift
Apache ThriftApache Thrift
Apache Thrift
 
Redis
RedisRedis
Redis
 
Spring MVC 3 Restful
Spring MVC 3 RestfulSpring MVC 3 Restful
Spring MVC 3 Restful
 
Jersey framework
Jersey frameworkJersey framework
Jersey framework
 
Google Protocol buffer
Google Protocol bufferGoogle Protocol buffer
Google Protocol buffer
 
Jdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamicJdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamic
 
Jdk(java) 7 - 6 기타기능
Jdk(java) 7 - 6 기타기능Jdk(java) 7 - 6 기타기능
Jdk(java) 7 - 6 기타기능
 
Jdk 7 4-forkjoin
Jdk 7 4-forkjoinJdk 7 4-forkjoin
Jdk 7 4-forkjoin
 
Jdk 7 3-nio2
Jdk 7 3-nio2Jdk 7 3-nio2
Jdk 7 3-nio2
 
공유 Jdk 7-2-project coin
공유 Jdk 7-2-project coin공유 Jdk 7-2-project coin
공유 Jdk 7-2-project coin
 
공유 Jdk 7-1-short introduction
공유 Jdk 7-1-short introduction공유 Jdk 7-1-short introduction
공유 Jdk 7-1-short introduction
 
아마존 Aws 서비스_연구
아마존 Aws 서비스_연구아마존 Aws 서비스_연구
아마존 Aws 서비스_연구
 
속도체크
속도체크속도체크
속도체크
 
구글크롬Os
구글크롬Os구글크롬Os
구글크롬Os
 
하이브리드앱
하이브리드앱하이브리드앱
하이브리드앱
 
Ssl 하드웨어 가속기를 이용한 성능 향상
Ssl 하드웨어 가속기를 이용한 성능 향상Ssl 하드웨어 가속기를 이용한 성능 향상
Ssl 하드웨어 가속기를 이용한 성능 향상
 

오픈소스를 활용한 Batch_처리_플랫폼_공유