10. • 휴먼 에러 – 그래도 사람이 하는 일
• 작업 누락
• 변경 이력 관리에 대한 또 관리
• 작업 내역 관리
• Ansible Log 등
인프라 관리의 자동화는 했는데…
https://medium.com/jsonlovesyaml/devops-on-steroids-with-oracle-kubernetes-engine-oke-
oracle-developer-cloud-service-wercker-4eb7d45be6be
GUI, 스캐쥴링, 히스토리 관리, 인증환경
15. Mutable vs Immutable
• Immutable 은 기존에 서버를 지속적으로 '관리'한다는 데서 벗어나 어떻게 하면 서버를
잘 쓰고 버리는 지를 다룹니다.
• Mutable (Snowflake Server)
• 서버를 계속 유지하며 설치/업데이트
• 모든 서버의 상태를 똑같이 유지하기 어려움
• 수동 및 자동화 도구
• 문서화, 담당자 변경
• Immutable (Phoenix Server)
• 패기 후 새롭게 셋팅
• Code와 Data를 분리
• Was는 Stateless
• Log 및 Upload data 등은 별도로 관리 (NFS, Gluster)
서버는 주기적으로 태워 버려라
- 마틴 파울러 -
16. V1.0
Instance
Image
V1.0 1.0
V1.1
V1.1 1.1
V1.2
V1.2
(Crash)
V1.2 v1.2 V1.2
(Crash)
Deploy
Rolling
Update
Build
Image
Version Up
Build
Image
Version Up
1.2
Rolling
Update
Rolling Back Rolling Back
Deploy Deploy
Restart
존재하지 않는 컨테이너
• 시스템 접근 불가
• 로그 확인 불가
• 장애 원인 파악 불가
Restart
Time
Crash Crash
Web Console
실시간 데이터 수집
비상태 정보 기록
KHAN [apm] Server
• 비상태 인스턴스 조회가능
• 사라진 장애 시점의 데이터 조회가능
• 인스턴스 장애 원인 파악가능
Immutable
• Openshift (Kubenetes) 배포 프로세스
18. • SoundCloud 에서 제작 된 오픈 소스 시스템 모니터링 및 경고 툴 킷
• Prometheus는 Kubernetes 이후 2016 년에 두 번째 호스팅 프로젝트로 Cloud
Native Computing Foundation 에 가입
• 특징
• Key/Value 기반의 시계열 데이터
• 유연한 Query PromQL
• Pull 방식, Push 방식도 제공
• 그래프 제공 및 대시보드 솔루션과 연계
• 구성요소
• Exporters (100개 이상)
• Push Gateway
• Client Libraries
• Alert Manager
• Etc…
Prometheus
31. 하지만
• OS 및 OCP, K8S 관점의 모니터링
• 애플리케이션 관점의 모니터링 항목 부재
• 응답 분포도
• 지연 트랜잭션
• Stack Trace
• 느린 Query
• Metric 내용을 학습
• 커스텀 대시보드 작성
• Prometheus Query(PromQL) 학습
• 빠른 데이터 추적의 어려움
33. OPENMARU APM – 분포도 및 Stack Trace 분석
액티브 사용자수에 대한 특정 기능 제공
지연 현상을 시각적으로
즉시 확인
트랜잭션 맵을 마우스로 드래그
하여 상세 분석
페이지를 표시
트랜잭션 맵(T-Map)
대시보드
1
2
34. OPENMARU APM – 분포도 및 Stack Trace (Micro Service)
/test/serverLog /test/accessLog
/test/browserTop
/getLog.jsp
POD #2 POD #2 POD #2
35. OPENMARU APM – 분석 기능
스레드 덤프 분석기
Lock을 추적가능, URL 정보표시
오픈파일 분석기
JVM 메모리 객체 분석기
Java 메모리를 점유한 객체 분석/비교
시스템 프로세스 분석기
네트워크 상태 분석기
Java 프로세스,시스템이 사용중인 네트워크 분석
데이터 추세 분석
Java 프로세스가 오픈한 파일 분석 시스템의 프로세스 CPU, 메모리 사용량 분석/비교 과거 데이터의 증감 추세를 분석하는 기능
36. OPENMARU APM - 스레드 덤프 분석
• 스레드 상세 분석
• Lock 번호 클릭 시 Lock
Owner 번호로 이동
• 스레드 덤프 요청
• 스레드 덤프 분석
• 스레드 상태 분석표
1 2
스레드 덤프 분석기
38. OPENMARU APM – Auto Scaling
B사 OpenShift(Docker) 환경 C사 Apache MESOS(Docker) 환경
EC2 인스턴스 오토스케일링
A사 아마존(AWS) 환경
Container 오토스케일링Pod 오토스케일링
39. OPENMARU APM – Auto Scaling
오픈 시프트
3
Openshift에서 Auto Scaling으로
인스턴스 증가
KHAN [apm] Auto Scaling으로
인스턴스 증가된 인스턴스 표현
1개 Pod 컨테이너 3개 Pod 컨테이너 4개 Pod 컨테이너
KHAN [apm] KHAN [apm] KHAN [apm]
오픈 시프트 오픈 시프트
46. OPENMARU APM - 헬스 체크
실패 시 알림 및 복구 명령어 실행
WAS WASWAS WAS
웹서버 웹서버
Web App Web App Web App Web App
DB
사용자
(고객)
헬스체크 대시보드
홈페이지 서비스외부 인터넷 망
KHAN
[Agent]
사용자 관점
KHAN
[Agent]
KHAN
[Agent]
KHAN
[Agent]
DMZ L4
각 WAS
각 WEB
Private Zone
DMZ Zone
사용자 관점의 모니터링
• HTTP Status Code 뿐만 아니라 응답
컨텐츠에 포함된 문자열에 따라 성공
여부 판단
• 네트워크 각 구간별 헬스체크를 통해
실 사용자 관점의 모니터링
※ 실패 시 각 머신의 SYS 에이전트를 통
해서 복구 명령어 실행
System Agent System Agent System Agent System Agent
System Agent System Agent
HTTP URL
HTTP URL
HTTP URL
#51:현재 웹서버, 서블릿 엔진은 이미 성능 적인 측면에서 거의 평준화 되었습니다.
하지만 앞서 설명한 세밀한 유입 제어가 뒷받침 되지 않는다면 배포나 특정 서버 작업 시에 안정성을 확보하기 어렵습니다.
하지만 Undertow 에서 제공하는 세밀한 유입 제어 부분을 활용한다면 배포 및 특정 작업 시에도 안정성을 확보하여 더욱 품질 좋은 서비스를 할 수 있게 될 것입니다.
그렇기에 저희는 엔터프라이즈 환경에서 Undertow, JBoss EAP 를 적극 추천합니다.