SlideShare ist ein Scribd-Unternehmen logo
1 von 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>

Weitere ähnliche Inhalte

Was ist angesagt?

김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
min woog kim
 

Was ist angesagt? (20)

대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐
 
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) 마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
 
Windows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPWindows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCP
 
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
 
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴
 
MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드MSA ( Microservices Architecture ) 발표 자료 다운로드
MSA ( Microservices Architecture ) 발표 자료 다운로드
 
Airflow를 이용한 데이터 Workflow 관리
Airflow를 이용한  데이터 Workflow 관리Airflow를 이용한  데이터 Workflow 관리
Airflow를 이용한 데이터 Workflow 관리
 
마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관
마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관
마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관
 
[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영
 
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
 
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
 
Airflow at WePay
Airflow at WePayAirflow at WePay
Airflow at WePay
 
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
 
[AIS 2018] [Team Tools_Advanced] Confluence 100배 활용하기 - 커브
[AIS 2018] [Team Tools_Advanced] Confluence 100배 활용하기 - 커브[AIS 2018] [Team Tools_Advanced] Confluence 100배 활용하기 - 커브
[AIS 2018] [Team Tools_Advanced] Confluence 100배 활용하기 - 커브
 
엘라스틱서치, 로그스태시, 키바나
엘라스틱서치, 로그스태시, 키바나엘라스틱서치, 로그스태시, 키바나
엘라스틱서치, 로그스태시, 키바나
 
[오픈소스컨설팅]Atlassian Confluence User Guide_Full
[오픈소스컨설팅]Atlassian Confluence User Guide_Full[오픈소스컨설팅]Atlassian Confluence User Guide_Full
[오픈소스컨설팅]Atlassian Confluence User Guide_Full
 
Plazma - Treasure Data’s distributed analytical database -
Plazma - Treasure Data’s distributed analytical database -Plazma - Treasure Data’s distributed analytical database -
Plazma - Treasure Data’s distributed analytical database -
 
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
(발표자료) CentOS EOL에 따른 대응 OS 검토 및 적용 방안.pdf
 
Apache airflow
Apache airflowApache airflow
Apache airflow
 

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

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

Ähnlich wie 오픈소스를 활용한 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
 

Mehr von 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_처리_플랫폼_공유