enterprise 환경에서 tomcat - kosta · 2015. 7. 17. · enterprise tomcat – 전체...

19
2015. 7. 16 Enterprise 환경에서 Tomcat 사용을 위한 한계와 해결 문종민 차장 82015 한국 소프트웨어 아키텍트 대회

Upload: others

Post on 15-Feb-2021

0 views

Category:

Documents


0 download

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 생성