Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례

13,033 views

Published on

https://github.com/JM-Lab/jm-spring-boot-init
http://jmlab.tistory.com/42 - only in korean

Published in: Data & Analytics
  • Hello! Who wants to chat with me? Nu photos with me here http://bit.ly/helenswee
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례

  1. 1. https://github.com/JM-Lab/jm-spring-boot-init Spring Boot 를 적용한 전사 모니터링 시스템 Backend 개발 사례 허제민
  2. 2. https://github.com/JM-Lab/jm-spring-boot-init 오늘 발표 내용 •  Planet Mon 소개 (전사 모니터링 시스템) •  Spring Boot를 적용한 Backend 개발 사례 •  Backend 개발에 적용한 Spring Boot 기능 •  Spring Boot를 활용 해서 추가한 운영 기능 •  jm-spring-boot-init Template 소개
  3. 3. https://github.com/JM-Lab/jm-spring-boot-init Planet Mon 소개 (전사 모니터링 시스템)
  4. 4. https://github.com/JM-Lab/jm-spring-boot-init Planet Mon 소개 (전사 모니터링 시스템) •  개발자가 보기 편한 모니터링 환경 •  Web, WAS log를 서비스 단위로 묶어서 서비스 상태 모니터링 •  서비스 단위로 실시간 그래프를 보여주고 알람도 되는 것이 중요함! •  시스템 모니터링도 서비스나 그룹 단위로 묶고 쉽게 서로 비교 •  그래프를 그리기위한 데이터가 Raw 데이터에서 동적으로 생성 되야 함 •  RRD (Round-Robin Database) 방식은 미리 그래프를 그리기 위한 데이터가 만들어 져야만 함 •  서비스 모니터링 데이터와 시스템 모니터링 데이터간의 콜라보 •  분석을 할 수도 있을까?
  5. 5. https://github.com/JM-Lab/jm-spring-boot-init Planet Mon 소개 (전사 모니터링 시스템) •  collectd - ELK (Elasticsearch-Logstash-Kibana) •  Log Collector •  System Monitoring Data Broker •  System Monitoring Data Collector •  Distributed, scalable, and highly available •  Real-time search and analytics capabilities •  Sophisticated RESTful API •  Flexible analytics and visualization platform •  Real-time charting of streaming data •  Instant sharing and embedding of dash boards
  6. 6. https://github.com/JM-Lab/jm-spring-boot-init Planet Mon 소개 (전사 모니터링 시스템) •  collectd - ELK (Elasticsearch-Logstash-Kibana) •  Web, WAS log 수집 •  System Monitoring Data Collector •  Distributed, scalable, and highly available •  Real-time search and analytics capabilities •  Sophisticated RESTful API •  Flexible analytics and visualization platform •  Real-time charting of streaming data •  Instant sharing and embedding of dash boards
  7. 7. https://github.com/JM-Lab/jm-spring-boot-init Planet Mon 소개 (전사 모니터링 시스템) •  collectd - ELK (Elasticsearch-Logstash-Kibana) •  System Monitoring Data Collector •  분산, 확장, 고가용성 보장 •  실시간 검색과 분석 가능 •  RESTful API QueryDSL •  Flexible analytics and visualization platform •  Real-time charting of streaming data •  Instant sharing and embedding of dash boards •  Web, WAS log 수집
  8. 8. https://github.com/JM-Lab/jm-spring-boot-init Planet Mon 소개 (전사 모니터링 시스템) •  collectd - ELK (Elasticsearch-Logstash-Kibana) •  System Monitoring Data Collector •  분석과 시각화 플랫폼 •  실시간 차트 생성 •  Dash board를 쉽게 생성 •  분산, 확장, 고가용성 보장 •  실시간 검색과 분석 가능 •  RESTful API QueryDSL •  Web, WAS log 수집
  9. 9. https://github.com/JM-Lab/jm-spring-boot-init Planet Mon 소개 (전사 모니터링 시스템) •  collectd - ELK (Elasticsearch-Logstash-Kibana) •  System Monitoring Data 수집 •  분석과 시각화 플랫폼 •  실시간 차트 생성 •  Dash board를 쉽게 생성 •  분산, 확장, 고가용성 보장 •  실시간 검색과 분석 가능 •  RESTful API QueryDSL •  Web, WAS log 수집 •  collectd Data 중계
  10. 10. https://github.com/JM-Lab/jm-spring-boot-init Planet Mon 소개 (전사 모니터링 시스템) •  collectd - ELK (Elasticsearch-Logstash-Kibana) * http://johnhamelink.com/server-nirvana-my-jour ney-towards-infrastructural-mindfulness.html * https://github.com/dCache/logstash4dcache
  11. 11. https://github.com/JM-Lab/jm-spring-boot-init Planet Mon 소개 (전사 모니터링 시스템) •  collectd - ELK (Elasticsearch-Logstash-Kibana) 상용 서비스를 위해 사용 가능한가? •  지역적으로 분리된 데이터 센터 •  수천대의 서버에서 생성된 Raw Data •  서비스 중심 Dashboad •  LDAP 연동 계정 관리 •  서비스 별 커스텀한 요구사항 반영
  12. 12. https://github.com/JM-Lab/jm-spring-boot-init Planet Mon 소개 (전사 모니터링 시스템)
  13. 13. https://github.com/JM-Lab/jm-spring-boot-init Planet Mon 소개 (전사 모니터링 시스템)
  14. 14. https://github.com/JM-Lab/jm-spring-boot-init Spring Boot를 적용한 Backend 개발 사례 * 북두의 권
  15. 15. https://github.com/JM-Lab/jm-spring-boot-init Spring Boot를 적용한 Backend 개발 사례 •  시간과 인력이 충분하지 않으니 DevOps 를 한다! •  빨리 개발 해야하지만 개발한거 운영도 하고 그래야 빨리 전사 적용 하지… •  그리고 모니터링 서비스 죽으면 책임도 져야지! •  전사 모니터링 시스템은 어떻게 모니터링 하지? 서버에 들어가서 봐야하나? •  요청하면 Infra 운영 팀에서 무언가 해주긴 한다.
  16. 16. https://github.com/JM-Lab/jm-spring-boot-init Spring Boot를 적용한 Backend 개발 사례 •  시간과 인력이 충분하지 않으니 DevOps 를 한다! •  빨리 개발 해야하지만 개발한거 운영도 하고 그래야 빨리 전사 적용 하지… •  그리고 모니터링 서비스 죽으면 책임도 져야지! •  전사 모니터링 시스템은 어떻게 모니터링 하지? 서버에 들어가서 봐야하나? •  요청하면 Infra 운영 팀에서 무언가 해주긴 한다. * 북두의 권 고!!!
  17. 17. https://github.com/JM-Lab/jm-spring-boot-init Spring Boot를 적용한 Backend 개발 사례 * http://movie.naver.com/m ovie/bi/mi/basic.nhn?code =101276
  18. 18. https://github.com/JM-Lab/jm-spring-boot-init Spring Boot를 적용한 Backend 개발 사례 * http://movie.naver.com/m ovie/bi/mi/basic.nhn?code =101276
  19. 19. https://github.com/JM-Lab/jm-spring-boot-init Spring Boot를 적용한 Backend 개발 사례 전기나 공압,유압 등과 같은 각종 신호 에너지를 이용하여 구체적인 동작(기계적 에너지)으로 변환하는 소자를 말함. * http://edu.smckorea.co.kr/learning/source/studyroom/bochung/actuator.html Actuator
  20. 20. https://github.com/JM-Lab/jm-spring-boot-init Spring Boot를 적용한 Backend 개발 사례 Http endpoints (Rest API), JMX, remote shell 등을 이용하여 구체적인 동작(관리와 모니터링)으로 변환하는 기능을 말함. Spring Boot Actuator Part V. Spring Boot Actuator: Production-ready features Spring Boot includes a number of additional features to help you monitor and manage your application when it’s pushed to production. You can choose to manage and m onitor your application using HTTP endpoints, with JMX or even by remote shell (SSH or Telnet). Auditing, health and metrics gathering can be automatically applied to yo ur application. http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#production-ready
  21. 21. https://github.com/JM-Lab/jm-spring-boot-init Backend 개발에 적용한 Spring Boot 기능 * http://presos.dsyer.com/decks/spring-boot-intro.html
  22. 22. https://github.com/JM-Lab/jm-spring-boot-init Backend 개발에 적용한 Spring Boot 기능 •  HTTP endpoints
  23. 23. https://github.com/JM-Lab/jm-spring-boot-init Backend 개발에 적용한 Spring Boot 기능 •  Scheduling
  24. 24. https://github.com/JM-Lab/jm-spring-boot-init Backend 개발에 적용한 Spring Boot 기능 •  JVM 모니터링 - /metrics
  25. 25. https://github.com/JM-Lab/jm-spring-boot-init Backend 개발에 적용한 Spring Boot 기능 •  상태 체크 - /health
  26. 26. https://github.com/JM-Lab/jm-spring-boot-init Backend 개발에 적용한 Spring Boot 기능 •  설정 파일 관리
  27. 27. https://github.com/JM-Lab/jm-spring-boot-init Spring Boot를 활용 해서 추가한 운영 기능 * http://pixshark.com/devops.htm
  28. 28. https://github.com/JM-Lab/jm-spring-boot-init Spring Boot를 활용 해서 추가한 운영 기능 * http://pixshark.com/devops.htm
  29. 29. https://github.com/JM-Lab/jm-spring-boot-init Spring Boot를 활용 해서 추가한 운영 기능 •  JVM Monitoring View
  30. 30. https://github.com/JM-Lab/jm-spring-boot-init Spring Boot를 활용 해서 추가한 운영 기능 •  Exception Table View
  31. 31. https://github.com/JM-Lab/jm-spring-boot-init Spring Boot를 활용 해서 추가한 운영 기능 •  서비스 현황 테이블
  32. 32. https://github.com/JM-Lab/jm-spring-boot-init jm-spring-boot-init Template 소개
  33. 33. https://github.com/JM-Lab/jm-spring-boot-init jm-spring-boot-init Template 소개 • https://github.com/JM-Lab/jm-spring-boot-init • JVM Monitoring View • Exception Table View • Sample logback config • JMService Interface
  34. 34. https://github.com/JM-Lab/jm-spring-boot-init jm-spring-boot-init Template 소개 •  데모 시연
  35. 35. https://github.com/JM-Lab/jm-spring-boot-init Q & A

×