EKS를 통한 차량 공유 서비스 '타다' 서비스 구축기 - 김태호, VCNC :: AWS Summit Seoul 2019Amazon Web Services KoreaEKS를 통한 차량 공유 서비스 '타다' 서비스 구축기
김태호, VCNC
온라인 렌터카 및 기사 서비스를 포함한 모빌리티 플랫폼인 '타다'를 시장의 요구에 맞추어 빠르게 출시하기 위해 선택한 기술 플랫폼 및 AWS 아키텍처에 대해 소개합니다. Spring Boot와 Kubernates를 기반으로 Redis 및 gRPC 등의 기술을 선택하고, 이를 빠르게 구현하기 위해 Amazon EKS, Kinesis Firehose, SQS, RDS 등의 서비스를 어떻게 구성했는지 공유합니다. 또한 기존 kops기반에서 어떻게 EKS로 무중단 서비스 이전을 했는지 살펴봅니다.
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick GuideJi-Woong Choi본 문서는 RHEL에 내장된 재해복구솔루션 ReaR (Relax and Recover)를 이용하여 OS 영역의 데이터를 백업하고 복구하는 방법을 다루고 있습니다. ReaR는 iso를 비롯한 다양한 백업 데이터 포맷을 지원하나, 이 문서에서는 CD/DVD 미디어 반입/보관이 보안상 대부분 허용되지 않는 기업 환경에서도 원활히 사용할 수 있는 PXE boot를 지원하는 포맷으로 ReaR 백업 데이터를 생성하고 복구하는 방법만을 자세히 설명합니다.
[오픈소스컨설팅] Ansible을 활용한 운영 자동화 교육Ji-Woong ChoiAnsible 소개, 구성요소, 설치, 환경 설정과 패키지/패스워드 관리에 대한 실습을 진행하는 교육 자료 공유합니다.
오픈스택 기반 환경하에 운영하는 고객사에 Cloud Team이 제공하는 교육서비스입니다.
JBoss EAP 설치 가이드 Opennaru, inc. source : http://www.opennaru.com/redhat/jboss/
세계 최고의 오픈소스 미들웨어 JBoss EAP
JBoss EAP ( JBoss® Enterprise Application Platform )는 클라우드와 컨테이너를 포함한 모든 IT 환경에서 엔터프라이즈급의 보안, 성능, 확장성을 제공합니다.
Java EE 표준을 지원하는 세계에서 가장 많이 사용되는 오픈 소스 웹 어플리케이션 서버 입니다.
오픈 소스 소프트웨어이기 때문에 도입 비용이 저렴할 뿐만 아니라, 레드햇의 높은 기술력으로 기업용 미들웨어에 적합한 품질과 기술지원을 제공합니다.
라이선스 형태는 GNU Lesser General Public License (LGPL) 한가지 이지만, 배포 버전은 커뮤니티 버전(WIldfly)와 엔터프라이즈 버전(JBoss EAP) 두가지 입니다.
엔터프라이즈 버전인 JBoss EAP는 레드햇과 유료 서브스크립션 계약을 맺음으로써 사전에 인증된 JBoss 소프트웨어 최신 패치 파일과 업그레이드을 할 수있습니다.
Docker 로 Linux 없이 Linux 환경에서 개발하기iFunFactory Inc.2016 아이펀팩토리 Dev Day 발표 자료
강연 제목 : Docker 로 Linux 없이 Linux 환경에서 개발하기
발표자 : 김진욱 CTO
<2016>
- 일시 : 2016년 9월 28 수요일 12:00~14:20
- 장소 : 넥슨 판교 사옥 지하 1층 교육실
ansible why ?Yashar EsmaildokhtThis document contains information about the sys/net/sec admin Yashar Esmaildokht, including their contact information and websites. It then provides a brief overview of the open-source automation tool Ansible, describing its main features and uses for configuration management, application deployment, and cloud provisioning. Requirements and versions of Ansible are listed. The document concludes with examples of Ansible concepts including playbooks, tasks, modules, variables, and host inventory organization.
Adapt or Die: A Microservices Story at GoogleApigee | Google CloudGoogle has been using containers for over 12 years to manage applications. Kubernetes was created by Google to manage container clusters and provide basic building blocks for microservices. Kubernetes allows containers to be scheduled across a cluster, provides health checking and rolling upgrades, and handles naming, discovery, load balancing and other functions. Apigee extended Kubernetes to enable multi-tenancy and container-native API management.
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-RegionJi-Woong ChoiOpenStack Ceph & Neutron에 대한 설명을 담고 있습니다.
1. OpenStack
2. How to create instance
3. Ceph
- Ceph
- OpenStack with Ceph
4. Neutron
- Neutron
- How neutron works
5. OpenStack HA- controller- l3 agent
6. OpenStack multi-region
The secret life of a dispatcher (Adobe CQ AEM)Venugopal GummadalaDispatcher is a load balancing and caching tool for Adobe Experience Manager (AEM). It improves performance by caching static content locally and distributing requests among multiple AEM instances. Beyond load balancing and caching, Dispatcher provides additional security and control over cached content. It can filter requests, rewrite URLs, and enforce access restrictions to protected paths and tools. Dispatcher configuration involves editing configuration files to specify caching, filtering, and rendering rules.
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSAVMware Tanzu Korea최근 IT 시장은 ‘클라우드 네이티브’ 라는 컨셉을 적극적으로 받아들이면서 혁신의 속도를 높이기 위해 여러가지 노력을 기울이고 있습니다. 본 세션에서는 ‘클라우드 네이티브’ 를 이루는 4가지 요소인 DevOps, CICD, Container, MSA 를 간략하게 살펴보고 MSA 가 나머지 클라우드 네이티브 3 요소와 어떻게 상호작용하여 고객 여러분의 비즈니스에 도움이 되는지 알아봅니다. 그리고 MSA 로 이행하기 위한 조직면에서의 요건과 기술 면에서의 요건을 살펴봅니다.
Storage-Performance-Tuning-for-FAST-Virtual-Machines_Fam-Zheng.pdfaaajjj4The document discusses various ways to optimize storage performance for virtual machines, including:
1) Provisioning virtual disks using different QEMU emulated devices like virtio-blk and configuring the IOThread option to improve performance.
2) Performing NUMA pinning to ensure virtual CPUs, memory and I/O threads are placed on the same NUMA node as the host storage device.
3) Configuring virtual machine options like using raw block devices instead of image files, enabling the IOThread, and tuning QEMU and image file parameters to improve I/O performance.
ibm websphere admin training | websphere admin course | ibm websphere adminis...Nancy ThomasWebsite : http://www.todaycourses.com
1. WAS product Family overview
Version 8 for Distributed Platform
Some key differences between the Version 5,6,7 and Version 8,
Standards support and programming models
Product packaging bundle
Express / Base / ND – Overview
IBM HTTP server
WAS edge components
Flexible management
2.Architectural Overview
Express / Base / ND
WAS basics
WAS runtime
JDBC providers
Data Sources
Administrative agent
Job manager
Enhanced EAR
ND runtime flow, concepts
Managed Nodes Vs Un managed Nodes
Installation Concepts
H/W pre-requisites
S/W pre-requisites
Browser pre-requisites
Database requirements
Installation overview
Installation Environments
WAS profiles
Pre-install tasks
Install verify
Silent Installation
Uninstall
Application Installation
Directory Structure
Server Commands
WAS plug-in installer, settings
ibm websphere admin training, websphere training online, ibm websphere administration training, ibm websphere admin course, ibm websphere portal administration training, ibm websphere application server administration training, ibm websphere process server administration training, ibm websphere mq system administration training, ibm websphere application server administration training in bangalore, ibm websphere portal admin training, ibm websphere portal admin online training, ibm websphere portal server training
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트Ji-Woong Choi Docker를 활용하여 Gitlab CI/CD 설치 구성 및 샘플 테스트를 위한 가이드 문서이며, Docker 및 Gitlab에 대한 개요 및 사용법에 대해서는 다루지 않습니다. Docker image를 이용 Gitlab 및 Gitlab CI/CD 설치 및 구성 후 Sample Spring boot web application을 이용하여 소스 변경에 따른 commit이 발생 했을 때 Gitlab CI/CD 기능을 통해 application 테스트, 빌드, 배포까지의 일련의 과정이 자동으로 진행되는지를 테스트 하는 내용입니다.
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?VMware Tanzu KoreaDomain Driven Design 기반의 마이크로서비스 디자인 방법론에 대해 설명을 하고 피보탈이 권장하는 모노리스 애플리케이션의 마이크로서비스 전환 방법론에 대해 살펴봅니다. 또한 실제 마이크로서비스 프로젝트에서 발생할 수 있는 우려사항들에 대해서도 국내 프로젝트 경험을 바탕으로 짚어봅니다.
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015 Amazon Web Services KoreaAWS 클라우드를 활용하면 사용자의 트래픽에 따라 IT 인프라 아키텍처를 확장할 수 있습니다. 이번 강연에서는 서비스 초기의 작은 트래픽에 대응할 수 있는 단순한 아키텍처로 시작해 사업 성장 후의 수백만 사용자에 달하는 대규모 트래픽을 지탱할 수 있는 고확장성 아키텍처에 이르기까지의 단계별 아키텍처 구성 방법에 대해 소개해 드리고 컴퓨팅 및 데이터베이스 선택 및 사용자 증가에 따른 트래픽 경감 방법, 오토스케일링 및 모니터링과 자동화, DB 부하 분산, 고가용성 확보 등에 대한 다양한 모범사례를 알려드릴 예정입니다.
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Andrew BayerWhat plugins, tools and behaviors can help you get the most out of your Jenkins setup without all of the pain? We'll find out as we go over a set of Jenkins power tools, habits and best practices that will help with any Jenkins setup.
IT Automation with AnsibleRayed AlrashedThis document provides an overview of IT automation using Ansible. It discusses using Ansible to automate tasks across multiple servers like installing packages and copying files without needing to login to each server individually. It also covers Ansible concepts like playbooks, variables, modules, and vault for securely storing passwords. Playbooks allow defining automation jobs as code that can be run on multiple servers simultaneously in a consistent and repeatable way.
Docker Compose by Aanand Prasad Docker, Inc.Docker Compose allows users to define and run multi-container Docker applications with a single command (docker up). It uses a YAML file to configure the application's services and Docker to automatically build images and link containers. With Compose, complex applications can be started and stopped with a single command, rather than multiple docker run commands. It also integrates with the Docker API, allowing it to work with tools like Docker Swarm for multi-host clusters.
Introduction to DockerLuong VoDocker allows applications to be packaged with all their dependencies and run consistently across computing environments. It provides isolation, security and portability for applications. This document discusses setting up an Eh Avatar application to run in Docker containers for Postgres, Redis and the application itself. It covers bringing up the dependency containers, building a custom Docker image for the application, and using Docker Compose to define and run the multi-container application. While this provides an introduction, there is still more to learn about optimizing Docker usage and avoiding common pitfalls.
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)Ji-Woong Choi오픈소스 WAS 모니터링 솔루션인 Scouter에 대한 간략한 설치가이드입니다. JBoss 기준으로 작성되었으며, JBoss 관련된 스크립트는 github.com/OpenSourceConsulting/jboss-eap-6-scripts에서도 확인하실 수 있습니다.
ansible why ?Yashar EsmaildokhtThis document contains information about the sys/net/sec admin Yashar Esmaildokht, including their contact information and websites. It then provides a brief overview of the open-source automation tool Ansible, describing its main features and uses for configuration management, application deployment, and cloud provisioning. Requirements and versions of Ansible are listed. The document concludes with examples of Ansible concepts including playbooks, tasks, modules, variables, and host inventory organization.
Adapt or Die: A Microservices Story at GoogleApigee | Google CloudGoogle has been using containers for over 12 years to manage applications. Kubernetes was created by Google to manage container clusters and provide basic building blocks for microservices. Kubernetes allows containers to be scheduled across a cluster, provides health checking and rolling upgrades, and handles naming, discovery, load balancing and other functions. Apigee extended Kubernetes to enable multi-tenancy and container-native API management.
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-RegionJi-Woong ChoiOpenStack Ceph & Neutron에 대한 설명을 담고 있습니다.
1. OpenStack
2. How to create instance
3. Ceph
- Ceph
- OpenStack with Ceph
4. Neutron
- Neutron
- How neutron works
5. OpenStack HA- controller- l3 agent
6. OpenStack multi-region
The secret life of a dispatcher (Adobe CQ AEM)Venugopal GummadalaDispatcher is a load balancing and caching tool for Adobe Experience Manager (AEM). It improves performance by caching static content locally and distributing requests among multiple AEM instances. Beyond load balancing and caching, Dispatcher provides additional security and control over cached content. It can filter requests, rewrite URLs, and enforce access restrictions to protected paths and tools. Dispatcher configuration involves editing configuration files to specify caching, filtering, and rendering rules.
클라우드 네이티브 IT를 위한 4가지 요소와 상관관계 - DevOps, CI/CD, Container, 그리고 MSAVMware Tanzu Korea최근 IT 시장은 ‘클라우드 네이티브’ 라는 컨셉을 적극적으로 받아들이면서 혁신의 속도를 높이기 위해 여러가지 노력을 기울이고 있습니다. 본 세션에서는 ‘클라우드 네이티브’ 를 이루는 4가지 요소인 DevOps, CICD, Container, MSA 를 간략하게 살펴보고 MSA 가 나머지 클라우드 네이티브 3 요소와 어떻게 상호작용하여 고객 여러분의 비즈니스에 도움이 되는지 알아봅니다. 그리고 MSA 로 이행하기 위한 조직면에서의 요건과 기술 면에서의 요건을 살펴봅니다.
Storage-Performance-Tuning-for-FAST-Virtual-Machines_Fam-Zheng.pdfaaajjj4The document discusses various ways to optimize storage performance for virtual machines, including:
1) Provisioning virtual disks using different QEMU emulated devices like virtio-blk and configuring the IOThread option to improve performance.
2) Performing NUMA pinning to ensure virtual CPUs, memory and I/O threads are placed on the same NUMA node as the host storage device.
3) Configuring virtual machine options like using raw block devices instead of image files, enabling the IOThread, and tuning QEMU and image file parameters to improve I/O performance.
ibm websphere admin training | websphere admin course | ibm websphere adminis...Nancy ThomasWebsite : http://www.todaycourses.com
1. WAS product Family overview
Version 8 for Distributed Platform
Some key differences between the Version 5,6,7 and Version 8,
Standards support and programming models
Product packaging bundle
Express / Base / ND – Overview
IBM HTTP server
WAS edge components
Flexible management
2.Architectural Overview
Express / Base / ND
WAS basics
WAS runtime
JDBC providers
Data Sources
Administrative agent
Job manager
Enhanced EAR
ND runtime flow, concepts
Managed Nodes Vs Un managed Nodes
Installation Concepts
H/W pre-requisites
S/W pre-requisites
Browser pre-requisites
Database requirements
Installation overview
Installation Environments
WAS profiles
Pre-install tasks
Install verify
Silent Installation
Uninstall
Application Installation
Directory Structure
Server Commands
WAS plug-in installer, settings
ibm websphere admin training, websphere training online, ibm websphere administration training, ibm websphere admin course, ibm websphere portal administration training, ibm websphere application server administration training, ibm websphere process server administration training, ibm websphere mq system administration training, ibm websphere application server administration training in bangalore, ibm websphere portal admin training, ibm websphere portal admin online training, ibm websphere portal server training
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트Ji-Woong Choi Docker를 활용하여 Gitlab CI/CD 설치 구성 및 샘플 테스트를 위한 가이드 문서이며, Docker 및 Gitlab에 대한 개요 및 사용법에 대해서는 다루지 않습니다. Docker image를 이용 Gitlab 및 Gitlab CI/CD 설치 및 구성 후 Sample Spring boot web application을 이용하여 소스 변경에 따른 commit이 발생 했을 때 Gitlab CI/CD 기능을 통해 application 테스트, 빌드, 배포까지의 일련의 과정이 자동으로 진행되는지를 테스트 하는 내용입니다.
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?VMware Tanzu KoreaDomain Driven Design 기반의 마이크로서비스 디자인 방법론에 대해 설명을 하고 피보탈이 권장하는 모노리스 애플리케이션의 마이크로서비스 전환 방법론에 대해 살펴봅니다. 또한 실제 마이크로서비스 프로젝트에서 발생할 수 있는 우려사항들에 대해서도 국내 프로젝트 경험을 바탕으로 짚어봅니다.
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015 Amazon Web Services KoreaAWS 클라우드를 활용하면 사용자의 트래픽에 따라 IT 인프라 아키텍처를 확장할 수 있습니다. 이번 강연에서는 서비스 초기의 작은 트래픽에 대응할 수 있는 단순한 아키텍처로 시작해 사업 성장 후의 수백만 사용자에 달하는 대규모 트래픽을 지탱할 수 있는 고확장성 아키텍처에 이르기까지의 단계별 아키텍처 구성 방법에 대해 소개해 드리고 컴퓨팅 및 데이터베이스 선택 및 사용자 증가에 따른 트래픽 경감 방법, 오토스케일링 및 모니터링과 자동화, DB 부하 분산, 고가용성 확보 등에 대한 다양한 모범사례를 알려드릴 예정입니다.
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Andrew BayerWhat plugins, tools and behaviors can help you get the most out of your Jenkins setup without all of the pain? We'll find out as we go over a set of Jenkins power tools, habits and best practices that will help with any Jenkins setup.
IT Automation with AnsibleRayed AlrashedThis document provides an overview of IT automation using Ansible. It discusses using Ansible to automate tasks across multiple servers like installing packages and copying files without needing to login to each server individually. It also covers Ansible concepts like playbooks, variables, modules, and vault for securely storing passwords. Playbooks allow defining automation jobs as code that can be run on multiple servers simultaneously in a consistent and repeatable way.
Docker Compose by Aanand Prasad Docker, Inc.Docker Compose allows users to define and run multi-container Docker applications with a single command (docker up). It uses a YAML file to configure the application's services and Docker to automatically build images and link containers. With Compose, complex applications can be started and stopped with a single command, rather than multiple docker run commands. It also integrates with the Docker API, allowing it to work with tools like Docker Swarm for multi-host clusters.
Introduction to DockerLuong VoDocker allows applications to be packaged with all their dependencies and run consistently across computing environments. It provides isolation, security and portability for applications. This document discusses setting up an Eh Avatar application to run in Docker containers for Postgres, Redis and the application itself. It covers bringing up the dependency containers, building a custom Docker image for the application, and using Docker Compose to define and run the multi-container application. While this provides an introduction, there is still more to learn about optimizing Docker usage and avoiding common pitfalls.
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)Ji-Woong Choi오픈소스 WAS 모니터링 솔루션인 Scouter에 대한 간략한 설치가이드입니다. JBoss 기준으로 작성되었으며, JBoss 관련된 스크립트는 github.com/OpenSourceConsulting/jboss-eap-6-scripts에서도 확인하실 수 있습니다.
Django로 배우는 쉽고 빠른 웹개발 study 자료Han Sung Kim9xD Django Study
파이썬 웹프로그래밍 - Django로 배우는 쉽고 빠른 웹개발 Charter 2
발표자 - 김한성
ppt 내용 : 실습 예제 및 내용 요약
개발툴 : pycharm
개발환경 : python 3.5 이용(일부 예제의 경우 동작안함 - 주석 참고)
소스코드 : 2 page github 링크이용
[2018] NHN 모니터링의 현재와 미래 for 인프라 엔지니어NHN FORWARD인프라 모니터링을 위한 시스템을 구축하고 운영하는 데 있어, 다이내믹한 인프라 변화는 어려움으로 다가오고 있습니다.
본 세션에서는 인프라를 운영하는 팀 혹은 운영자 관점에서 바라본 미래 지향적 인프라 모니터링 시스템의 방향성과 이를 구현하기 위해 필요한 구성들을 공유하고자 합니다.
목차
1. NHN 모니터링의 현재
2. 모니터링의 변화
3. 모니터링 방법론
4. 모니터링 절차
5. NHN 모니터링의 미래
대상
- 인프라를 운영하는 시스템 엔지니어
- 인프라 모니터링 시스템에 관심이 있는 분
Cloud life seminar open shift,이준영(배포용)Software in Life이준영 (현 소프트웨어인라이프 연구원)
OpenShfit와 CSB.IO
인프라 비용을 절감하고 애플리케이션 개발속도를 향상 시킬 수 있는 방안으로 PaaS와 레드햇의 오픈 소스 솔루션인 OpenShift에 대하여 설명한다.
그리고, CSB.IO와 OpenShift의 미래 모습에 대해서도 소개한다.
- The Cloud Life Seminar 2014 발표 내용
Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례Jemin Huhhttps://github.com/JM-Lab/jm-spring-boot-init
http://jmlab.tistory.com/42 - only in korean
JBoss EAP 7 & JDG 7 최신 기술 소개Ted WonThe document introduces new features of JBoss EAP 7 and JBoss Data Grid 7. JBoss EAP 7 includes support for Java EE 7, Java 8, improved clustering and web server Undertow. Undertow can be used as a reverse proxy and load balancer with mod_cluster. JBoss Data Grid 7 provides distributed caching and integrates with Apache Spark, allowing cached data to be accessed from Spark jobs and Spark data to be cached.
Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...Ted WonThis document provides an overview of hands-on training for using Jenkins X (JX), an automated CI/CD solution for building and deploying modern cloud applications on Kubernetes. It outlines prerequisites, and steps to install JX, create a Kubernetes cluster on GKE, and build a sample Spring Boot application with CI/CD pipelines and GitOps promotion between environments. It also discusses using Minikube for local development and provides additional references on JX and related tools.
Jenkins X - automated CI/CD solution for cloud native applications on KubernetesTed WonLet's have a look at CI/CD best practices to help developers on the cloud platform Kubernetes, which is becoming an industry standard, as we move to the era of cloud native application development, which is about to come.
Hawkular overviewTed WonHawkular is an open source monitoring project that is the successor to JBoss ON (RHQ). It provides REST services for collecting and storing metrics and for alerting. Hawkular started in 2014 and provides solutions for monitoring containers, applications, middleware, and IoT devices. It includes projects for services and alerts, metrics storage, and formerly application performance monitoring (which is now handled by Jaeger). Hawkular integrates with ManageIQ and is used to provide middleware management within CloudForms.
Complex Event Processing with EsperTed WonThis document discusses Complex Event Processing (CEP) using Esper. It defines CEP as detecting patterns among events. Esper is an open source CEP engine that provides an SQL-like Event Processing Language (EPL) to define queries over event streams. The document outlines Esper's architecture, features like filtering, windows, aggregation, and joins. It provides examples of EPL queries for topics detection, continuous queries, and pattern matching.
JDG 7 & Spark IntegrationTed WonThis document discusses the Infinispan Spark connector, which provides integration between JBoss Data Grid 7 (JDG 7) and Apache Spark. It introduces JDG 7 and Apache Spark and their features. The Infinispan Spark connector allows users to create Spark RDDs and DStreams from JDG cache data, write RDDs and DStreams to JDG caches, and perform real-time stream processing with JDG as the data source for Spark. The connector supports various configurations and provides seamless functional programming with Spark. A demo of examples is referenced.
Human: Thank you for the summary. Can you provide another summary in 2 sentences or less?
JBoss Community's Application Monitoring PlatformTed WonThis document introduces two open source projects, RHQ and Byteman, that can help software engineers broaden the scope of their development activities. RHQ is a platform for monitoring JBoss applications, while Byteman allows testing and debugging of applications. The presentation aims to share stories about these tools in order to help developers expand their work.
1. JBoss RHQ와 Byteman을 이용한
오픈소스 자바 애플리케이션 모니터링
JBoss User Group Community
RHQ Contributor
원종석
2. Break the Ice
• 보통 개발자의 두 가지 무기에 관한 이야기
• 비상시 유용한 오픈 소스 프로젝트 소개
• 운영 서비스 모니터링은 RHQ
• 운영 중인 JVM bytecode 들여다 볼 때는 Byteman
• Thanks a lot JBoss!!
• 그리고 Welcome to Korea JBoss User Group!!
• 언제나 환영합니다.
-1-
3. About me?
• 그냥 딸 바보 아빠
• 오픈 소스로 일하는 보통 자바 개발자
• 대형 SI 개발, 운영, SA
• Workflow 솔루션, Big Data 플랫폼 개발
• 실시간 대용량 Event 처리 플랫폼 개발
• JBoss User Group Community 부대표
• RHQ Contributor - 한글화 작업
• tedwon.com WIKI 운영
-2-
6. For Instance
• 내가 만든 Java Application을 모니터링하고 싶다.
• 장기간 지속적으로... Chart도 필요하고... Statistics도 필요하고...
• 직접 만들려고 해보면 너무 일이 커지고
• 돈 주고 사기에는 너무 비싸고
• 손쉽게 공짜로 사용 할 수 있는 것 어디 없을까?
• 게다가 좀 더 체계적이고 다양한 기능을 제공했으면 좋겠다.
-5-
14. RHQ Project Home
http://rhq-project.org
http://www.jboss.org/jopr
- 13 -
15. Conclusions in Advance
Step 1. RHQ Server 와 Agent 설치
Step 2. Java Application에 JMX MBean 추가
Step 3. JMX MBean 기반 Plugin Descriptor XML 파일 정의
Step 4. 나의 Application용 JMX Plugin을 RHQ Server에 등록
Step 5. 모니터링 및 관리 시작!!
- 14 -
16. RHQ by JBoss
• JBoss Enterprise Management Platform
• JBoss Middleware 제품의 모니터링 Platform
o JBoss AS
o Byteman
o Hibernate
o HornetQ
o Infinispan
o BlackTie
o Mobicents
o CirrAS
o etc ...
- 15 -
17. What is RHQ?
• Make technologies more manageable!!
• Aims to develop a common services management platform
• Java 기반의 Open Source System Management Project
• Sigar API 를 사용하여 System Information Gathering (CPU, Mem)
• JMX 기술 기반으로 원격 관리 기능 제공 - JMX Plugin
• OS 플랫폼에서 Server 리소스까지 전반적인 모니터링/관리 기능 제공
- 16 -
18. What is RHQ?
• Agent의 plugin을 통해서 모니터링 정보 수집
• 필요한 plugin만 구성해서 사용하면 적절
• 실시간 모니터링 서버는 아님 - 최소 30초 주기로 모니터링
• 장기간 모니터링에 적합
- 17 -
21. RHQ Management Functionality
• Inventory
o 모니터링 대상 정의/등록/관리
o Resource directory
• Monitoring
o Monitoring any resource
o Automatic discovery of resources
o Monitoring for availability and performance
o Complex alerting
• Configuration
o Configuration management
o Audited, validated configuration editing and history
- 20 -
22. RHQ Management Functionality
• Events
o WAS의 로그 에러 트래킹과 레포트
• Control
o 원격에서 operation 실행
o Operation 스케쥴링
- 21 -
24. RHQ Agent Plugins
• 다양한 리소스를 위한 Plugin 제공
• Server Plugins: Apache, Tomcat, JBoss AS
• RDBMS Plugins: MySQL, PostgreSQL, Oracle
• Java JMX Plugin
• C daemon 프로세스 (Ex: Scribe Log Aggregator)
• 필요에 맞는 Custom Plugin 제작 가능
• http://rhq-project.org/display/RHQ/Plugin+Community
- 23 -
25. RHQ Related Links
RHQ User Documentation
RHQ Server Installation Guide
RHQ Server Users Guide
RHQ Agent Users Guide
Frequently Asked Questions
http://tedwon.com/display/dev/RHQ
- 24 -
26. RHQ / JBoss ON Team
• Red Hat building in Westford, Massachusetts
- 25 -
27. RHQ Contributions
• Installer UI 한글화 작업 완료 from v4.2
• GWT UI 한글화 작업 진행 중...
그냥 - Ted Won
Red Hat - Heiko Rupp
- 26 -
30. 보통 개발자의 또 하나의 무기 Byteman
명품 영국제 무기
Thanks Andrew :-)
- 29 -
31. Where to use?
• Performance check
• System.exit() and System.gc() check
• synchronized block check
• Analyze 3rd party library, WAS, etc
- 30 -
32. Byte(code) man(ipulation) is
• 안전하게 실행 중인 JVM 안의 bytecode 들여다 보는 도구
• 디버깅 코드를 동적으로 삽입할 수 있는 도구
• Tool that simplifies tracing and testing of Java programs
• Bytecode Injection 방식 사용
• 재컴파일, 재구동 없이 실행 중인 애플리케이션에 bytecode inject 가능
• Works by modifying the bytecode of your application at runtime
o 소스 코드 없이 동적으로 bytecode를 직접 변경
- 30 -
33. Byte(code) man(ipulation) is
• Java Agent API를 기반으로 Byteman Agent 구현
o java.lang.instrument API for runtime bytecode transformation
• Byteman is a Java agent program
o Retransform code only after load
• Injected codes are reversible
o Inject된 bytecode는 다시 원복 가능
- 31 -
34. Byteman Rule Script is
• Rule based scripting language
• Write code to see what code is doing
• Very Java oriented (almost all Java)
• We inject codes through rule script files
• Event Condition Action (ECA) 으로 정의하는 scripting language
• Dynamically load, reload or unload rules
• BTrace는 rule 대신 annotation-oriented script 정의
- 32 -
35. Sample Byteman Rule Script
RULE trace main entry
CLASS MyAppMain
METHOD main
AT ENTRY
IF true
DO
traceln("entering main")
ENDRULE
- 33 -
36. Sample Byteman Rule Script
RULE trace main entry => Rule name
CLASS MyAppMain
METHOD main
AT ENTRY
IF true
DO
traceln("entering main")
ENDRULE
- 34 -
37. Sample Byteman Rule Script
RULE trace main entry
CLASS MyAppMain => Event (Trigger point)
METHOD main
AT ENTRY
IF true
DO
traceln("entering main")
ENDRULE
- 35 -
38. Sample Byteman Rule Script
RULE trace main entry
CLASS MyAppMain
METHOD main
AT ENTRY
IF true => Condition
DO
traceln("entering main")
ENDRULE
- 36 -
39. Sample Byteman Rule Script
RULE trace main entry
CLASS MyAppMain
METHOD main
AT ENTRY
IF true
DO
traceln("entering main") => Action
ENDRULE
- 37 -
40. Event Condition Action Rules
• Event
o CLASS/INTERFACE, METHOD, AT
defines trigger point(s) for rule
• Binding
o introduces/initializes rule variables
• Condition
o Java boolean expression
• Action
o one or more Java expressions
- 38 -
41. Driving Byteman
• Download Byteman and unzip
• Set BYTEMAN_HOME
• Install as “Java agent” through java options => 서버 재구동
-javaagent:$BYTEMAN_HOME/lib/byteman.jar=agentoptions
o script:script.btm install rules from script.btm at agent startup
o boot:my.jar add my.jar to bootstrap classpath
o sys:my.jar add my.jar to system classpath
o listener:true start up agent listener
o port:999 use listener port 999
o address:192.168.0.1 use listener host 192.168.0.1
- 39 -
42. Driving Byteman
• Download Byteman and unzip
• Set BYTEMAN_HOME
- 40 -
43. Running JBoss AS with Byteman
• run-with-byteman.sh
o 시작 스크립트에 아래 두 라인 추가
o Tomcat 또한 동일
BYTEMAN_OPTS="-Dorg.jboss.byteman.verbose=true
-Dorg.jboss.byteman.debug=true
-Dorg.jboss.byteman.transform.all
-javaagent:byteman.jar=
script:my-byteman-rules.txt
,boot:byteman.jar
,boot:byteman-sample.jar
,sys:byteman-sample.jar
,listener:true
,port:9551
,address:127.0.0.1"
JAVA_OPTS="$BYTEMAN_OPTS -Xms1g -Xmx1g $JAVA_OPTS"
- 41 -
44. Quick Start - MyAppMain.java
package org.my;
public class MyAppMain {
public static void main(String[] args) {
for (int i = 0; i < args.length; i++) {
System.out.println(args[i]);
}
}
}
$ java org.my.MyAppMain foo bar baz
foo
bar
baz
- 42 -
45. Quick Start - appmain.btm
MyAppMain 클래스의 main 메소드 호출 시작시에 로그를 출력하라.
RULE trace main entry
CLASS MyAppMain
METHOD main
AT ENTRY
IF true
DO traceln("entering main")
ENDRULE
- 43 -
46. Load Rules at JVM Start
$ java -javaagent:byteman.jar=script:appmain.btm
org.my.MyAppMain foo bar baz
entering main
foo
bar
baz
$
- 44 -
47. Byteman Built In Methods
• Tracing
o traceOpen, traceClose, traceln, traceStack, ...
• Managing Shared Rule State
o flag, clear, countDown, incrementCounter, ...
• Timing
o createTimer, getElapsedTime, resetTimer
• Checking Caller Stack
o callerEquals, callerMatches
• Thread Synchronization
o delay, waitFor, signalWake, rendezvous, ...
• Recursive Trigger Management
o setTriggering
- 45 -
48. Refer to Byteman Programmer’s Guide
http://tedwon.com/display/dev/Byteman
- 46 -
51. • RHQ Demo
o Dashboard
o Custom Java App
o Alert
o JBoss AS Cluster Group View
• Byteman Demo
o Install byteman agent at start up
o Install byteman agent into a running jvm
o Load Rule
o Unload Rule
• Byteman Plugin Demo
o Autodiscovery Byteman Agent
o Monitor Byteman Agent Availability & Rules
- 49 -