2. GigaSpaces 회사 소개
• 설립 : 2000년
• Offices : NY, San-Francisco, Paris, London, Israel
• Investors: Intel Capital, BRM Capital, Formula Systems
• 대용량 트랜잭션 처리와 고성능을 요구하는 시스템에 극한의 성능과 선형적인 확장성
확장성을
제공하기 위해 “스페이스 기반 아키텍처
스페이스 아키텍처”를 사용하는 Infrastructure Software를 제공
2
3. GigaSpaces 회사 소개
“우리의 모든 네트웍 구간에서 동적으로 서비스들을 디플로이하는 것이 우리의 핵심 요구사항이었고
GigaSpaces의 Service Grid기능은 우리의 요구사항에 꼭 맞는 기능이었다”
“GigaSpaces덕분에 애플리케이션이 동시에 실행되는 동안 필요할 때마다 자원의 공급을 조절할
수 있기 때문에, 우리는 급증하는 부하에 대한 걱정을 하지 않게 되었다.
- Alberto Santini
Head of Development Monte Paschi Asset Management.
분산 시스템 환경에서 고성능과 신뢰할 수 있는 데이터의 공유,분산, 복제를 필요로 하는
애플리케이션을 개발해야 하는 사용자들은 전통적인 아키텍처의 성능을 향상시키기 위해서 분산 공유
메모리 플래폼인 GigaSpaces를 심각히 고려해야 한다.
- Massimo Pezzini
VP & Distinguished Analyst,Gartner February,2006
3
4. XTP 소개
• XTP(eXtreme Transaction Processing)의 등장
극한의 성능과 선형적 확장성을 요구하는 대규모,트랜잭션 중심의 애플리케이션의 구현을
목표로 하는 새로운 애플리케이션 스타일.
13 February 2007
• XTP 등장 배경
‣ Network 발전으로 거래량 폭발적으로 증가
‣ 비즈니스 민첩성에 대한 요구 증대
‣ 실시간 정보에 대한 요구증대
새로운 Architecture 필요성 등장
4
5. XTP 소개
• XTP가 필요로 하는 새로운 Architecture의 기능
• 데이터 캐싱
• 병렬 처리
• 대용량 데이터 캐싱
• 클러스터 전역에 걸친 Event처리
• 그리드 컴퓨팅을 이용한 효율적인 자원사용 및 서비스
TCO 가용성 증대
5
6. 와
XTP와 티어 기반 아키텍처
• 멀티 티어 아키텍처
모든 티어별로 병목 구간 존재
데이터 억세스
애플리케이션간 통신
극한의 성능을 낼 수 없음
시스템 복잡도 증가
티어 기반 아키텍처는
XTP의 요구에
의
시스템이 복잡해짐에 따라서 아키텍처에서의 병목 발생
적합하지 않은 아키텍처
제한된 확장성
성능상의 병목이 되는 티어를 찾기 어려움
일부 티어만 증설한다고 전체 성능이 확장되지 않음
6
7. GigaSpaces 개요
• GigaSpaces
‣ 스페이스 기반 아키텍처를 사용하여 신규 또는 기존의 애플리케이션을 쉽게
무제한의 확장성과 극한의 성능을 가진 강력한 서비스로 전환할 수 있도록 해주는
미들웨어 플랫폼
XTP
7
9. 스페이스 기반 아키텍처
• Space - 네트워크상의 분산 공유 메모리
클러스터 스페이스
스페이스
‣ 분산 환경의 Java 표준 기술인 Jini와
JavaSpaces 사용.
데이터 메시지
‣ 메시지와 데이터의 단일 저장소 기능
‣ 내장된 클러스터 기능을 통한 고 가용성
‣ Java오브젝트 기반
9
10. 스페이스 기반 아키텍처
• 4가지 기본 Space Operation
‣ Write - 스페이스에 오브젝트를 write
‣ Read - 스페이스에서 오브젝트를 read
‣ Take - 스페이스에서 오브젝트를 read & delete
‣ Notify - 스페이스에 있는 데이터의 변화(Write/Delete/Update)에 대한 notify
• 스페이스 기반 아키텍처(Space Based Architecture)는 분산 환경에서
‣ 데이터 캐싱
‣ 메시지 및 이벤트 처리
‣ 병렬 처리
를 사용하여 확장성과 고성능을 필요로 하는 애플리케이션의 구축을 위한 소프트웨어
아키텍처
10
11. 스페이스 기반 아키텍처
• 애플리케이션의 모든 티어를 스페이스에 통합
‣ 데이터 억세스 티어
‣ 메시징 티어
‣ 비즈니스 로직 티어
• 애플리케이션의 성능 증대
‣ 애플리케이션의 티어간 호출을 제거
‣ 데이터를 애플리케이션에 가장 가깝게 배치
‣ 데이터 억세스를 메모리에서 함으로 Disk I/O 최소화
• 선형적 확장성 확보
‣ 독립된 처리단위(Processing Unit)에서 모든 처리가
이루어 짐으로써 선형적인 확장성을 확보
11
12. 스페이스 기반 아키텍처
• Processing Unit(Self Sufficient Unit)
메시지,데이터,비즈니스 로직을 포함하는 단일 처리단위
12
13. 스페이스 기반 아키텍처
• PU(Processing Unit)의 장점
‣ 아키텍처
예측 가능한 확장성
확장방법이 용이함
‣ 개발
테스트가 용이해짐
단일 JVM 환경에서 모든 테스트가 가능
POJO기반의 애플리케이션 지원
‣ 운영
SLA기반의 서비스 가용성 – SLA에 의해 서비스 셧다운/리스타트 및 확장
내장된 HA기능 – Primary PU장애시 Backup PU의 Primary전환
대규모 환경에서의 애플리케이션 디플로이가 용이함
모니터링 및 관리의 단일화
13
14. GigaSpaces 기능
• Grid기반의 메시지 서버
메시징 • JMS방식, JavaSpace방식 모두 지원
서버
• 메시지와 데이터의 동일 저장소 기능
데이터 • 클러스터 전역에 걸친 Event처리
캐싱
• 대량 컴퓨팅 연산이 필요한 Job에 대한 병렬 컴퓨팅
병렬처리 처리기능
14
15. GigaSpaces 기능
• 메시징 처리
‣ 엔터프라이즈 기업이 필요로 하는 다양한 메시징 처리 기능.
‣ JavaSpace및 JMS기반의 혁신적인 메시징 처리 기능.
‣ 단순하고 강력하며 유연한 분산 메시징 처리 기능.
JMS 메시징 JavaSpace 메시징
15
16. GigaSpaces 기능
• 메시징 처리 특징
‣ 분산 서비스 간의 데이터 전송과 이벤트 전송
‣ 다양한 메시지 전송 시나리오 지원
동기 및 비동기 방식
P2P
Publish/Subscribe
‣ 복잡한 메시지 전송 시나리오 지원
FIFO
Workflow
Master/Worker
‣ 클러스터 기능 지원
메시지 복제
페일 오버
로드 밸런싱
16
17. GigaSpaces 기능
• 메시징 처리 특징
‣ 기존 JMS 클라이언트와의 통합 용이
‣ 기존 JMS 서버에 In-memory Data Grid가 통합 됨으로 처리 속도가 극대화
‣ 기존 JMS 서버에 Grid기반의 확장성과 클러스터링 기능이 통합
17
19. GigaSpaces 기능
• 데이터 캐싱
‣ Space라는 가상의 저장공간(Java Heap메모리)에 Java오브젝트 형태로
데이터를 저장, 애플리케이션에 가깝게 배치함으로써 응답 지연을 최소화 .
19
20. GigaSpaces 기능
• 데이터 캐싱
‣ 신뢰할 수 있는 데이터 저장소 기능
Partitioning - 대용량 데이터의 저장 .
Replication - 장애 발생시 데이터 손실을 방지하기 위한 데이터 복제.
Failover - 장애 발생시 Primary노드에서 Backup노드로의 서비스 전환.
Persistency - 분산 데이터 간의 데이터 정합성 보장.
20
21. GigaSpaces 기능
• 데이터 캐싱 특징
‣ 분산 캐싱 - 같은 정보를 참조하는 다수의 분산 Cache 인스턴스
‣ 메모리 관리 - Cache 인스턴스의 메모리 사용에 대한 제어 및 최적화 기능
‣ 선두 O/R 맵핑 기술과 통합 - 하이버네이트, JDO
‣ 트랜잭션 처리기능 - 2PC 지원, Leasing 모델
‣ 진보된 질의 기능 - SQL 및 정규 표현식 지원
‣ 다양한 캐시 모델 - 로컬 캐시, 로컬 뷰 등 다양한 시나리오에 최적화된 캐시 기능
21
22. GigaSpaces 기능
• 데이터 캐싱 특징
‣ SQL 방식 지원
• All Basic SQL statements: SELECT, INSERT, DELETE, UPDATE, CREATE TABLE, DROP
TABLE.
• AND/OR operators to join two or more conditions in a WHERE clause.
• Aggregate functions: COUNT, MAX, MIN, SUM, AVG.
• All basic logical operations to create conditions: =, <>, <,>, >=, <=, [NOT] like, is [NOT] null, IN.
• Multiple tables select – the join feature is now available, allowing selection from two tables, as
well as the possibility of interrelated conditions.
• ORDER BY for multiple columns.
출처 : http://www.gigaspaces.com/wiki/display/GS6/JDBC+Supported+Features+-+6.0
22
23. GigaSpaces 기능
• 병렬 처리
‣ 병렬처리의 장점
대량의 연산이 필요한 Job을 여러 개의 Task로 분리하여 동시에 처리함으로써
응답시간 향상
‣ 병렬처리 동작 원리
내장된 Master/Worker 패턴기능
Master가 Job을 여러 개의 Task로 분리하여 스페이스에 write하면 Worker들이
동시에 처리 후 Master에게 전송
23
24. GigaSpaces 기능
• 서비스 그리드
‣ 서비스를 동적으로 확장 및 관리하는 기능
‣ 향상된 애플리케이션 가용성
부하발생시나 장애 발생시 SLA에 기반하여 감지/복구 및 확장
‣ 서비스 디플로이 용이성
대규모 분산환경에서의 자동화된 정책기반(SLA) 디플로이 자동화
‣ 기존 IT조직의 모니터링 툴과 통합
JConsole 및 JMX플러그 인 제공
24
25. GigaSpaces 기능
• 서비스 그리드
‣ 관리 콘솔
Primary 및 Backup 스페이스의 상태를
GUI또는 ComandLine 관리콘솔에서
모니터링 및 디플로이 작업을 할 수 있다.
25
26. GigaSpaces 기능
• 서비스 그리드
‣ 관리 콘솔 - 세부 기능
발생중인 Transaction의 상태에 대해서 확인
SQL방식으로 Caching된 데이터 및 메시지에
대한 Query결과를 조회
발생중인 작업(Read/Write/Take/Notify)
상태 확인
GigaSpaces가 설치된 장비의 성능을 확인해
볼 수 있도록 자체 Benchmark툴이 내장
26
27. GigaSpaces 기능
• 서비스 그리드
‣ 관리 콘솔 – 부하 발생 통계 모니터링
Space에서 발생하는 작업
(Read/Write/Take/Notify)의
발생건수 현황을 모니터링할 수 있다.
27
28. GigaSpaces 기능
• 서비스 그리드
‣ 보안 기능
‣ 인증 : Username/password 사용
‣ 권한 : 스페이스 작업(Write/Read/Take/Notify)에 대한 역할과 권한 부여
‣ 암호화 : SSL을 이용한 메시지 암호화
28
29. Key Messages
• Tier의 통합
고성능 애플리케이션 • Data Cache
• Parallel Processing
선형적인 확장성 • Processing Unit
• GigaSpaces Service Grid
고 가용성 (SLA Driven Container)
이 기종 환경과 통합 • C++, .NET, Java 클라이언트 API 제공
29
30. Case Study Exchange Trading Monitoring
• Business Challenge: • Results:
‣ 자동화 트레이딩과 파생상품으로 인한 ‣ Before : 2 million trades in
전례없는 트레이딩 볼륨의 증가. 13 hours
‣ 전체 비즈니스를 확장할 수 있는 ‣ After GigaSpaces: 8 million
효율적인 방법. trades in 2 hours
• Technical Challenge:
‣ 선형적인 확장성과 고성능을 ‣ 처리량 약 26배 증가
배
만족시키고 개방형 표준을 준수하는
애플리케이션의 재 구축.
• Solution:
‣ JavaSpaces standard기반
애플리케이션 설계
‣ GigaSpaces 를 사용해서
고성능,확장성,신뢰성 만족.
30
31. Case Study Surveiliance Application
• GigaSpaces 적용 전
31
32. Case Study Surveiliance Application
• GigaSpaces를 이용한 ETL 병렬처리 구조
를
32