enterprise 환경에서 tomcat - kosta · 2015. 7. 17. · enterprise tomcat – 전체...
TRANSCRIPT
-
2015. 7. 16
Enterprise 환경에서 Tomcat 사용을 위한 한계와 해결
문종민 차장
제8회 2015 한국 소프트웨어 아키텍트 대회
-
1. 기본사항
2. 운영자 중심의 관리
3. Tomcat 기능보완 및 확장 4. 모니터링, 진단/대응
목차
-
2
Tomcat 개요 1. 기본사항
Apache 재단의 open source WAS(Servlet Container)로 전세계에서 가장 많이 사용되고 있음
Fast and Light, Flexible and Scalable, Stable and Mature한 것이 주요 특징임
Apache Tomcat Architecture
Server
Service Engine
Host
Context(*)
Connector Valve Valve
Valve
Global Resource
Realm
Realm
Realm
Wrapper(*)
Servlet Valve
Listener
Listener
Listener
Listener
Resource
Executor
Loader Manager
JMX Support JSP Support Security
Utility Logger
-
3
기업형 시스템 구축 시 주요요건
수많은 시스템 구축경험과 운영조직의 의견 취합결과 기업형 시스템 구축 시 필요한 대표적인 요건이 있음
Tomcat을 단독으로 사용할 경우에는 이러한 요구사항을 충족할 수 없으며, 별도의 작업을 요함
1 운영자 중심의 서버관리
• WAS configuration 편의성
• WAS start, stop, 상태 체크
• application deploy 지원 등
• 동일 instance의 설정 동기화
• rule 기반의 서비스 제어
• 편리한 WAS install
2 Java EE Support
• 상용 WAS는 Java EE spec을
구현하나 실제로 대부분은 사용하지 않음
• EJB, JTA/XA, JMS 등 특정 기능이 필요함
3 Tomcat 기능보완 요건
• Database 접속 정보 암호화
• clustering한계, tomcat에서 제공하는 방식
은 서버가 많을 수록 부하가 크게 증가함
4 모니터링, 진단/대응
• 서버 상태, cpu, memory dash board
• WAS heap, thread, connection 정보
• 특정 상황하 dump, 자체 대응
5 Open Source 활성화
• Vendor 종속성 탈피
• 비용절감(cut cost)
• complexity 감소
1. 기본사항
Tomcat
for
Enterprise System
-
Enterprise Tomcat – Runtime
Enterprise Tomcat Runtime
Apache Tomcat 아키텍처 기반 위에 기업형 시스템 구축 시 필요한 추가적인 기능들 add-on.
Tomcat의 단순성 유지, 아키텍처 overhead를 최소화, 기존 Tomcat만 사용 시 나타나는 제약을 극복
Java EE
EJB JTA/XA JMS
JAX-WS
Clustering Support
Stand Alone
Embedded
Server
Service Engine
Host
Context(*)
Connector Valve Valve
Valve
Global Resource
Realm
Realm
Realm
Wrapper(*)
Servlet Valve
Listener
Listener
Listener
Listener
Resource
Executor
Loader Manager
JAX-RS …
JMX Support JSP Support Security
Utility Logger Service Control
Tomcat 기능확장
1. 기본사항
4
-
Enterprise Tomcat – 전체 Architecture
Enterprise Tomcat Architecture
하나의 management로 여러 대의 서버 관리가능 (서버 신규 설치 시마다 management에 등록가능)
Management의 제어 명령을 Node agent가 수행 (shell 수행, 설정 file 변경, MBean 제어)
Enterprise Tomcat 별 Server Agent를 통한 모니터링 및 진단정보 추출
1. 기본사항
5
Apache Web Server #1
Apache Web Server #2
Apache Web Server #3
Node agent
Enterprise Tomcat #1
Enterprise Tomcat #2
Enterprise Tomcat #3
Node agent
Enterprise Tomcat #1
Enterprise Tomcat #3
Node agent
Machine #2
Machine #3
제어명령 수행
제어명령 Machine #1
Enterprise Tomcat #2
Management
Socket
Server
Server
Agent
Server
Agent
Server
Agent
Server
Agent
Server
Agent
Server
Agent
추출정보 수집
신규설치
Repository
-
6
Enterprise Tomcat – Management
WEB / WAS / Session 서버 통합관리, 운영자 중심의 서버 관리 시스템 제공
원격지 Enterprise Tomcat 서버 환경설정(Backup / Restore), 기동/종료, 상태확인
Multi Server 기반 설정 동기화, application deploy, 서버 install 등 중앙관리
Management
Application #1 Application #2 Web Server #1 Node agent
Application #1 Application #2 Web Server #2 Node agent
Application #1 Session Server #1 Node agent
config
Management
config
config config config
config
config
config
- 통합관리 - 중앙관리
Machine #1
Machine #2
Machine #3
Appl. View, Cluster
synchronization
Propagation
2. 운영자 중심의 관리
-
7
Enterprise Tomcat – 운영자 권한관리
운영자가 담당하는 Server, Cluster, Application에 대해서만 management 접근이 가능하도록 권한 부여
운영자 별 관리대상 서버, application이 다른 경우 활용, 운영 안정성 향상
Management 권한관리
Management
userN user2 user1
Node Group1
Node Group2
서버1-1
서버1-2
서버2-1
서버2-2
사용자 별 권한부여
Cluster Group1
Cluster1-1
Cluster1-2 …
Cluster Group2
Cluster2-1
Cluster2-2 …
Application Group1
Application1-1
Application1-2
…
Application Group2
Application2-1
Application2-2
…
Node1
Node2
권한별 접근 가능한 리소스에 접근 권한 없는 리소스에 대한 접근 제어
O X
2. 운영자 중심의 관리
-
8
Enterprise Tomcat – Server Cluster
Server Cluster 기능을 통해 여러 Server의 설정 비교, 동기화, 특정 시점으로 설정 복원
시스템 확장, Server 다중화 관리 시 운영 생산성, 안정성 향상
Server Cluster
Server Cluster
Server ⓢ
Server ⓢ
Server ⓜ
① Server Cluster 구성 ② Master Server 변경 ③ Sync
[Server Cluster 관리 절차]
Server 수정
Server Cluster
Server ⓢ
Server ⓢ
Server ⓜ
Server 및 Sync 대상 설정 Sync
Server Cluster
Server ⓢ
Server ⓢ
Server ⓜ
Server Cluster
Server ⓢ
Server ⓢ
Server ⓜ
①’ 서버 불일치 발생 ②’ 비동기 상태 알림
Compare
Server Cluster
Server ⓢ
Server ⓢ
Server ⓜ
검증
개별 Server 수정
ⓘ
2. 운영자 중심의 관리
-
9
Enterprise Tomcat – 서비스 제어
Tomcat의 Value 메커니즘을 기반으로 사용자 요청을 Rule에 따라 실시간으로 허용/제한
유효하지 않은 요청, Test 기간 동안의 요청, 배치 작업 시 데이터 경합회피 등을 제어
Management에서 rule 및 적용 서버 선택으로 실시간 설정가능
서비스 제어
사용자
[시간 기반 예] 핵심 배치작업 수행 시 경합 최소화를 위한 온라인 서비스 제어
[IP 기반 예] 악성 사용자 제한
[시간 및 URL 기반 예] 문제 발생 업무 일시 제한
Enterprise Tomcat
Web Application
서비스 제어 Valve
x월 x일 x시~x시까지 모든 요청 제한
실시간 서비스 제어
악성 사용자
Enterprise Tomcat
Web Application
서비스 제어 Valve
IP가 xxx.xxx.xxx.xxx인 사용자 요청 제한
정상 사용자 그 외의 요청 허용
Enterprise Tomcat
Web Application
서비스 제어 Valve
URL이 /xxx/xxx인 요청을 x월 x일 x시~x시까지 제한
사용자 그 외의 요청 허용
Management
Tomcat Valve
Node agent
Node agent
Node agent
2. 운영자 중심의 관리
MBean
MBean
MBean
-
10
Enterprise Tomcat – Auto Install/Clone
CLI / WEB(Management GUI) 방식을 통한 간편한 서버 설치 가능
기존 서버의 Local 및 Remote Machine 복제 기능 제공
2. 운영자 중심의 관리
Auto Install/Clone
서버설치
Management 서버설치(WEB-UI)
Node agent
Machine #1
Installer console
서버설치(CLI – Command Line Interface)
서버복제
Management
Install
서버복제(WEB-UI)
Machine #1
Machine #1
Machine #1 Machine #2
Machine #4 Machine #3
Machine #1 Clone (Local)
Clone (Remote)
Servers
1
2
1
2
N.A.
N.A. N.A.
N.A. N.A.
-
11
Enterprise Tomcat – Auto Patch
Auto Patch 기능을 통한 보안 취약점 patch 및 서버 버전 up 지원
문제 발생 시 패치 이전 시점으로의 Recovery기능 제공
Auto Patch
서버패치 Machine #1
Management
서버패치(WEB-UI)
서버 별 버전확인
패치 대상서버 선택
원격패치적용
Backup/Restore
1
2
3
4
Node agent
Installer
Backup Storage
Backup Restore
Servers
Patch (단일/ 다중서버)
Machine #2
Machine #n
…
2. 운영자 중심의 관리
-
12
Enterprise Tomcat – JavaEE feature
Open Source Apache Tomee 기반 JavaEE 기능 제공 (EJB, JTA/XA(2PC), JMS, JAX-WS, JAX-RS등)
Tomee 기능 확장, Tomcat의 단순성 유지, 아키텍처 overhead 최소화
Server startup, Application deploy 성능 향상
Tomcat Architecture
Tomee Architecture
Enterprise loader 기능 확장
Java EE feature
SPEC loader 기능확장
EJB JMS
JTA …
SPEC loading
최적화
Application Deployer 기능확장
이전사용
Deploy
Descriptor
이전사용
spec config
Configuration Factory 기능확장
memory로
즉시 로딩
memory로
즉시 로딩
ear
ejb war
multithread
deploy
3. Tomcat 기능보완 및 확장
-
13
Enterprise Tomcat – DataSourceFactory
DataSource 설정 시 password 암호화 , JTA 사용여부 , XADataSource 생성 및 바인딩 등 tomcat에서 제공하지 않는 기능처리
Tomcat 기본 DataSourceFactory가 아닌 전용 DataSourceFactory 제공
DataSourceFactory
Management
DataSource 설정 Enterprise Tomcat Server
Node agent password 암호화
JTA 사용여부 XADataSource 설정
config
Machine #1
Configuration
Server Startup
DataSourceFactory
password 암호화여부
예
아니오
password 복호화
JTA 사용여부
예
XADataSource 설정
BasicDataSource 생성 아니오
Non-XA/JTA Managed DataSource 생성
XA/JTA Managed DataSource 생성
아니오
예
3. Tomcat 기능보완 및 확장
DataSourceFactory
password 복호화 JTA 여부 XADataSource 바인딩
-
14
Enterprise Tomcat – Session Clustering
Tomcat 기본 clustering (Apache tribes) 외에 독자적인 clustering 기능 제공
Session Server 이중화 구성, Session 정보 실시간 복제로 Session Server 장애 시에도 안정성 제공
70여대 이상의 Tomcat 서버 + Primary/Secondary Session 서버가 본 방식으로 운영 중
Session Clustering
Enterprise Tomcat Enterprise Tomcat Enterprise Tomcat Enterprise Tomcat
Session Server
(Primary)
Session Server
(Secondary)
Apache Httpd Server 정상작동 흐름
장애 시 흐름
실시간 Session 동기화
Apache Httpd Server
3. Tomcat 기능보완 및 확장
-
15
Enterprise Tomcat – Session Clustering (계속)
Standalone/Embedded 모드 두 가지 방식 제공, Management 설정을 통한 구성 방식 변경가능
Standalone 방식은 중/대규모, Embedded 방식은 소규모 방식에 적합
Session Clustering
Session 복제 Session Find
Standalone Mode
Enterprise Tomcat
Enterprise Tomcat
Enterprise Tomcat
Enterprise Tomcat
Session Server
(Secondary)
Session Server
(Primary)
Session 복제 Session Find
Embedded Mode
Enterprise Tomcat
Enterprise Tomcat
Enterprise Tomcat
Enterprise Tomcat
Server 모듈
Server 모듈
Session 동기화
Session 동기화
Apache
Httpd Server
Apache
Httpd Server
3. Tomcat 기능보완 및 확장
-
16
Enterprise Tomcat – Monitoring 구성
Enterprise Tomcat Server에 탑재되는 agent 및 Node Agent를 통해 모니터링 데이터 수집
수집정보 분석을 통한 진단 reporting, 임계 치 도달 시 rule에 따른 대응조치
Machine #1
진단
Management
Node agent
모니터링
정보수집
Enterprise Tomcat Server #1 server
agent
Enterprise Tomcat Server #2 server
agent
Enterprise Tomcat Server #4 server
agent
모니터링 현황
Node agent
대응 수행
Machine #2
장애 진단/대응
Enterprise Tomcat Server #3 server
agent
대응 실행
진단 Report 생성
장애 사전/긴급 대응
진단 엔진 수행
실시간 현황 조회
모니터링
정보수집
Service 현황
System 현황
DashBoard
Report
대응
수집정보
4. 모니터링, 진단/대응
Monitoring Architecture
-
17
Enterprise Tomcat – Monitoring 현황
Management 모니터링 정보 Dashboard 제공, 서버 상태 및 주요 resource 확인
서버 별 System 상세정보, Service 상세정보 실시간 확인
Monitoring status
모니터링 현황
전체 현황 조회
Service 현황
System 현황
DashBoard
Enterprise Tomcat Management
Node/Server Status
Node CPU/Memory
Server Heap, Thread, DataSource Info.
Memory/Thread Realtime Info.
Active Thread List, Active Service List
DataSouce Realtime detail info.
System 상세정보 조회
Service 상세정보 조회 Service Tx info.
Service Tx Detail info.
서버 별 상세정보 조회
임계값 설정 설정
임계값 설정/수정
4. 모니터링, 진단/대응
-
18
Enterprise Tomcat – Monitoring 진단 대응
Server 및 Application에 대한 이슈현황 모니터링, 장애 사전 진단 및 대응 기능을 제공
수집정보 분석을 통한 진단 reporting, 임계 치 도달 시 rule에 따른 대응조치
Issue Monitoring(Diagnostics, Pre-Action)
진단
Enterprise Tomcat Management
진단대응
명령
대응 서버 상태 저장 서버 제어/대응
임계값 확인
GC 확인
OOM 확인
대량 데이터조회 분석
Health Check
Active Thread 분석
DataSouce Pool 분석
Memory Leak 분석
현황 통계
진단 결과
1 2 3
1 2
상태 정보
Heap Dump
Thread Dump
Active Service
Service Profile
서버 Restart
Fake Page 이동
서비스 제어 수행
None
대응 결과
서버 별
대응 백데이터
생성
진단기능
수행
문제
감지
분석
결과
생성
대응결과 생성
대응수행호출
Node agent
Server
대응명령
수행
Rule
4. 모니터링, 진단/대응
임계치 설정
장애 진단엔진 장애 분석엔진 진단 결과
Hang 분석
Report
Dump 생성