This is a guide document that how you can setting up JMS Queue and JMX on JBoss AS 7.1.1.Final or EAP6. In EAP5, server port for JMS used 1099, but EAP6 doesn't use that port any longer. This also explains about JBoss JMX to monitor Java heap and JMX via MBean.
If you want to get more information or open source, please email
본 자료는 WildFly, JBoss AS7, JBoss EAP6에 대한 교육 자료입니다. 처음 접하시는 분들이나 세팅이 필요한 분들은 본 자료를 활용하시면 됩니다.
교육이 필요하시면 오픈소스컨설팅 페이스북에 글을 남겨주세요.
https://www.facebook.com/osckorea?ref=hl
This is a guide document that how you can setting up JMS Queue and JMX on JBoss AS 7.1.1.Final or EAP6. In EAP5, server port for JMS used 1099, but EAP6 doesn't use that port any longer. This also explains about JBoss JMX to monitor Java heap and JMX via MBean.
If you want to get more information or open source, please email
본 자료는 WildFly, JBoss AS7, JBoss EAP6에 대한 교육 자료입니다. 처음 접하시는 분들이나 세팅이 필요한 분들은 본 자료를 활용하시면 됩니다.
교육이 필요하시면 오픈소스컨설팅 페이스북에 글을 남겨주세요.
https://www.facebook.com/osckorea?ref=hl
This document allows you to improve function on your build guide line in company. It includes Jenkins installation, configuration with Maven, revision check and so on.
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법Ji-Woong Choi
MySQL 소개
간략한 소개
version history
MySQL 사용처
제품 군 변화
시장 변화
MySQL 구성
MySQL 클라이언트 / 서버 개념
클라이언트 프로그램
MySQL 설치
MySQL 버전
MySQL 설치
MySQL 환경 설정
환경설정, 변수 설정
MySQL 스토리지 엔진 소개
MySQL tuning 소개 및 방법
데이터 백업/복구 방법
백업
복구
MySQL Upgrade
The Spring Web model-view-controller (MVC) framework is designed around a DispatcherServlet that dispatches requests to handlers, with configurable handler mappings, view resolution, locale and theme resolution as well as support for uploading files.
This document allows you to improve function on your build guide line in company. It includes Jenkins installation, configuration with Maven, revision check and so on.
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법Ji-Woong Choi
MySQL 소개
간략한 소개
version history
MySQL 사용처
제품 군 변화
시장 변화
MySQL 구성
MySQL 클라이언트 / 서버 개념
클라이언트 프로그램
MySQL 설치
MySQL 버전
MySQL 설치
MySQL 환경 설정
환경설정, 변수 설정
MySQL 스토리지 엔진 소개
MySQL tuning 소개 및 방법
데이터 백업/복구 방법
백업
복구
MySQL Upgrade
The Spring Web model-view-controller (MVC) framework is designed around a DispatcherServlet that dispatches requests to handlers, with configurable handler mappings, view resolution, locale and theme resolution as well as support for uploading files.
OTT - Exclusive contents 시대가 온다 - 20151005Johan Kim
Toast기를 제외하고는 대부분의 모든 Platform이 Netflix와 같은 SVOD 서비스를 지원하기를 노력하고
글로벌 70M 사용자가 넘은Netflix를 위시한 SVOD 시장이 활성화 되면서 OTT들의 Contents Sourcing 경쟁이 심화되고,
고 비용 저 효율과 독점이 보장되기 힘든 영화 Contents 보다는 TV Series 물에 Sourcing을 집중하고 있고,
더 나아가 배급사가 아닌 스튜디오와 계약, 직접 외주 제작을 시키는 형태로 Sourcing의 트렌드가 변화하고 있고
다른 OTT 들 보다 한발짝 더 나아간 Netflix는 TV Drama Series에서 Global/Localized된 Kids, Documentary 분야를 강화하는 움직임을 보이고 있는 Trend에 대해서 이야기 하고자 함.
Netflix Culture: Freedom & Responsibility 넷플릭스 문화: 자유와 책임 (한국어 번역)Hong Nam Yang
Facebook의 COO인 Sheryl Sandberg가 'Most Important Document Ever To Come Out Of The Valley‘라고 평한 Netflix Culture PowerPoint Deck의 한국어 번역본입니다.
CEO인 Reed Hastings와 함께 이 PowerPoint deck을 제작한 Netflix의 전 Chief Talent Officer인 Patty McCord에 따르면 Netflix는 다음 5가지 기본 주의에 의해 재능 있는 최고 수준의 인력을 유치하고, 유지하고, 관리한다고 말합니다:
- Hire, reward, and tolerate only fully formed adults
- Tell the truth about performance
- Managers must build great teams
- Leaders own the job of creating the company culture
- Talent managers should think like businesspeople and innovators first, and like HR people last
자세한 내용은 다음 자료를 참고하시기 바랍니다:
- How Netflix Reinvented HR – Harvard Business Review (https://hbr.org/2014/01/how-netflix-reinvented-hr)
- The Woman behind the Netflix Culture Doc (http://firstround.com/review/The-woman-behind-the-Netflix-Culture-doc/)
이 번역물을 계기로 관심 있는 분들의 교감의 장이 만들어졌으면 하는 것이 저의 바람입니다.
Introduction to the Netflix Open Source Software project, explains why Netflix is doing this, how all the parts fit together and what is planned to come next. Presented at the inaugural NetflixOSS Meetup February 6th 2013 at Netflix headquarters in Los Gatos.
NodeJS: the good parts? A skeptic’s view (jax jax2013)Chris Richardson
JavaScript used to be confined to the browser. But these days, it's becoming increasingly popular in server-side applications in the form of Node.js. Node.js provides event-driven, non-blocking I/O model that supposedly makes it easy to build scalable network application. In this talk you will learn about the consequences of combining the event-driven programming model with a prototype-based, weakly typed, dynamic language. We will share our perspective as a server-side Java developer who wasn’t entirely happy about JavaScript in the browser, let alone on the server. You will learn how to use Node.js effectively in modern, polyglot applications.
Watch the video: http://www.youtube.com/watch?v=CN0jTnSROsk&feature=youtu.be
DockerCon 2014에서 Adrian Cockcroft가 발표한 The state of the art in Microservice 중 해외 사례 발췌본
https://blog.docker.com/2014/12/dockercon-europe-keynote-state-of-the-art-in-microservices-by-adrian-cockcroft-battery-ventures/
AWS에서 Software Development Engineer로 근무하고 있는 Hashimoto Koji가 작성하고 AWS 한국팀에서 근무중인 정윤진 솔루션스 아키텍트가 번역한 슬라이드입니다. AWS 클라우드를 활용해 대규모 분산 시스템을 구축하는 방법에 대해 다루고 있습니다.
RabbitMQ/ActiveMQ 와 같은 비동기 메시징 미들웨어를 이용하여 다량의 서버를 orchestration(command & control) 할 수 있는 mcollective에 대한 한글 ppt 자료입니다. 상세한 내용은 http://wiki.tunelinux.pe.kr/x/LQAy 를 참고하시면 됩니다.
기존에 저희 회사에서 사용하던 모니터링은 Zabbix 였습니다.
컨테이너 모니터링 부분으로 옮겨가면서 변화가 필요하였고, 이에 대해서 프로메테우스를 활용한 모니터링 방법을 자연스럽게 고민하게 되었습니다.
이에 이영주님께서 테크세션을 진행하였고, 이에 발표자료를 올립니다.
5개의 부분으로 구성되어 있으며, 세팅 방법에 대한 내용까지 포함합니다.
01. Prometheus?
02. Usage
03. Alertmanager
04. Cluster
05. Performance
2018년도 Amazon AWS re:Invent Machine Learning 부분에 대한 요약을 오픈소스컨설팅 서경빈(AWS SA)님이 해주셨습니다.
사내 발표 때 아주 쉽게 설명해주셔서 좋았는데, 해당 내용은 Tech Blog에서도 확인이 가능합니다.
https://tech.osci.kr/2018/12/06/50693623/
[오픈소스컨설팅] 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 테스트, 빌드, 배포까지의 일련의 과정이 자동으로 진행되는지를 테스트 하는 내용입니다.
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항Ji-Woong Choi
Cloud 기반으로 U2C(Unix to Cloud),U2L(Unix to Linux) 마이그레이션에 대한 가이드 라인과 사이징 관련 고려 사항에 대해 설명한 자료입니다.
많은 전환 프로젝트에서 추출된 경험치가 들어가 있으며, 전환별 난이도 및 고려사항이 들어가 있습니다.
장소 : 미국 보스턴 Hynes Convention Center
일시 : 2017년 5월 6일 ~ 11일 (미국 동부 시각)
참가 인원 : 5000명 이상
참가 업체 : 1014개
참가국 : 63개국
세션 수 : 750여 개(이전 Summit 대비 약 250여 개 증가)
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick GuideJi-Woong Choi
본 문서는 RHEL에 내장된 재해복구솔루션 ReaR (Relax and Recover)를 이용하여 OS 영역의 데이터를 백업하고 복구하는 방법을 다루고 있습니다. ReaR는 iso를 비롯한 다양한 백업 데이터 포맷을 지원하나, 이 문서에서는 CD/DVD 미디어 반입/보관이 보안상 대부분 허용되지 않는 기업 환경에서도 원활히 사용할 수 있는 PXE boot를 지원하는 포맷으로 ReaR 백업 데이터를 생성하고 복구하는 방법만을 자세히 설명합니다.
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-RegionJi-Woong Choi
OpenStack 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
아틀라시안 JIRA를 사용할 때 가장 핵심적으로 해야 할 내용들만 추려서 가이드 문서를 작성하였습니다.
그러한 작업들로는 프로젝트, 스킴(Scheme), 이메일 세팅, 권한 관리, 백업/복구 등이 있습니다.
관리자가 이런 일을 잘 할 수 있도록 핵심적인 내용만으로 구성한 문서를 공유합니다.
레드햇 엔터프라이즈 리눅스 7 기반에 대한 운영자 가이드 기초편을 공유합니다.
부트로더 관리, 패키지, 네트워크, 스토리지 및 크래쉬 덤프 발생에 대한 관리까지 기초 운영 지식에 대한 부분을 본 문서를 통해 얻으실 수 있습니다.
오픈소스컨설팅의 문경윤차장께서 공유해주신 내용입니다.
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning Ji-Woong Choi
TTA에 KVM 기반 프로비저닝 기술에 대한 데모 세션을 포함하는 세미나 관련 자료입니다. 클라우드환경으로 가고자 해서 Paas를 어떤 플랫폼위에 올린다면 그리고 가상화 환경이나 클라우드 환경으로 올린다면 어떤 환경으로 올릴것인가를 고민하여야 합니다.
그리고 이 hypervisor중에 cloud 환경에서 가장 주목받는 kvm을 기반으로 하는 두가지 가상화 클라우드 솔루션인 rhev와 openstack을 잠시 살펴볼 것입니다.
그리고 이러한 가상화 클라우드 환경에서 자동화 하는 솔류션을 어떻게 고려해야 하는가를 살펴보고, 그런 솔류션중에 하나인 아테나 피콕에 대해 살펴보겠습니다.
그리고 오픈스택환경하에서 구축해서 사용했던 사용기와 이를 자동화하기위해 개발자들이 사용했던 간단한 ansible provisioning 모습을 시연합니다.
2. Netflix
-
전세계 download traffic 30% 차지
-
아마존에 수천 대의 서버 운영
-
LoR(Latency of Response) 감소를 목표
-
Chaos of Monkey 시스템을 초기 구축
-
실제 데이터를 이용한 시스템 테스트에 주력
Chaos of Monkey : AWS 인스턴스를 무작위로 kill 시키는 시스템
2
- Internal Use Only -
3. Resilient Architecture
Resilient Architecture를 만들기 위해 Circuit Breaker Pattern를 사용
External system is marked as
available or circuit breaker decided
to allow a retry
External system is marked as
available, connection succeeded
Usage : Memcache, Redis 등을 사용하여 외부 서비스에 대한 가용 여부를 체크 후 처리
3
- Internal Use Only -
4. CircuitBreaker Implementation
Custom Fallback
클라이언트 라이브러리에서 호출할 수 있는 대체(fallback) API를 직접 구성하여 처리
API 서버에서 캐시된 데이터를 사용하는 것도 가능
Fail Silent
Fallback 메소드에서 단순히 null값을 리턴함으로써 대상 시스템의 문제를 처리
Fail Fast
Fallback 대상이 없을 경우 client 측으로 5XX 응답을 던짐. 대신 API 서버에 대한 상태를
가지고 복구되었을 경우 빠르게 접속하도록 구성
Code 레벨에서는 Command Pattern, Chain of Responsibility Pattern 사용가능
4
- Internal Use Only -
5. Chain of Responsibility
abstract class Logger {
public static int ERR = 3;
public static int NOTICE = 5;
public static int DEBUG = 7;
protected int mask;
// The next element in the chain of responsibility
protected Logger next;
public Logger setNext(Logger log) {
next = log; return log;
}
public void message(String msg, int priority) {
if (priority <= mask) {
writeMessage(msg);
}
}
if (next != null) {
next.message(msg, priority);
}
abstract protected void writeMessage(String msg); }
class StdoutLogger extends Logger {
public StdoutLogger(int mask) {
this.mask = mask;
}
protected void writeMessage(String msg) {
System.out.println("Writing to stdout: " + msg);
}
}
class EmailLogger extends Logger {
public EmailLogger(int mask) {
this.mask = mask;
}
protected void writeMessage(String msg) {
System.out.println(“Sending via email: " + msg);
}
}
class StderrLogger extends Logger {
public StderrLogger(int mask) {
this.mask = mask;
}
protected void writeMessage(String msg) {
System.out.println(“Sending to stderr: " + msg);
}
}
public class ChainOfResponsibilityExample {
public static void main(String[] args) {
// Build the chain of responsibility
Logger logger, logger1,logger2;
logger = new StdoutLogger(Logger.DEBUG);
logger1 = logger.setNext(new EmailLogger(Logger.NOTICE));
logger2 = logger1.setNext(new StderrLogger(Logger.ERR));
// Handled by StdoutLogger
logger.message("Entering function y.", Logger.DEBUG);
// Handled by StdoutLogger and EmailLogger
logger.message("Step1 completed.", Logger.NOTICE);
// Handled by all three loggers
logger.message("An error has occurred.", Logger.ERR);
}
}
/* The
Writing
Writing
Sending
Writing
Sending
Writing
Usage : 처리할 데이터에 대한 체인을 구성하여 각 경우에 따른 처리 방식을 변경
5
- Internal Use Only -
output is:
to stdout: Entering function y.
to stdout: Step1 completed.
via e-mail: Step1 completed.
to stdout: An error has occurred.
via e-mail: An error has occurred.
to stderr: An error has occurred. */
6. Fault Tolerance
•
하루 10억건의 요청처리를 하기 위해 각 레이어에
서 최적의 프로토콜을 각 팀이 선택하도록 설계
(JSON, Thrift, Google PB, etc)
•
각 서버 구현팀에서는 자바 클라이언트 라이브러
리를 배포
•
아래의 항목을 직접 구현하여 사용
•
네트워크 타임아웃 및 재시도
•
스레드 풀
•
세마포(java.util.concurrent.Semaphore)
•
Circuit Breaker(체크 용도)
최지웅 의견 : 기존 SOA 구현 방식 중 하나인 SCA(Service
Component Architecture) 스타일과 비슷함
6
- Internal Use Only -
7. Process Sequence
1.
Command Pattern를 통한 요청 생성
2.
동기/비동기 요청에 따라 Task를 분리하여 호출
3.
Circuit check의 정보를 통해 오픈여부를 확인
4.
가용할 경우 running 상태로 진입시키고 작업을 수행. 스레드 포화일 경우 fast fail시킨 후 fallback 대상 확인 후 재처리 시도
5.
요청 스레드 수행에 대한 결과를 확인
6.
작업이 성공할 경우 정상적인 응답을 요청 측으로 전달. 실패할 경우 예외 반환함으로써 fallback 대상 확인 후 재처리 시도
7.
Timeout 등에 의한 health 상태를 circuit controller에 전달
7
- Internal Use Only -
8. Dependency Flow
Thread/Network Timeout 설정
Worst case sequence
Connect
Read
Retry
Connect
Read
의존성 관계를 실시간 변경 가능
이와 같은 구조로 현재 무중단
10개월째 운영
8
- Internal Use Only -
9. Lesson Learn
Fault Tolerance를 필수 요소라 여기고 실제 데이터를 활용하여 강력한 테스트 수행
CircuitBreaker, Fallback 구조를 활용한 DependencyCommand를 활용하여 각 레이어 프로그램을 직접
구현
Dashboard를 통해 10초간의 상황을 파악(초당 20만건 처리)
문제가 발생했을 경우 사용자 요청을 다양한 대체 처리(Fallback: Cache, Fail Silent, etc)
성능 문제나 설정 실수로 전체 시스템이 다운되지 않도록 설정을 실시간으로 변경(SPOF를 만들지 않도록 함)
9
- Internal Use Only -