Your SlideShare is downloading. ×
JBoss EAP 6의 Module과 Domain Mode, KHAN[provisioning] 소개
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

JBoss EAP 6의 Module과 Domain Mode, KHAN[provisioning] 소개

2,818
views

Published on

JBoss EAP 6의 Module과 Domain Mode, KHAN[provisioning] 소개 …

JBoss EAP 6의 Module과 Domain Mode, KHAN[provisioning] 소개

오픈나루 블로그 - http://opennaru.tistory.com/
오픈나루 홈페이지 - http://www.opennaru.com/

Published in: Technology

0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,818
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
76
Comments
0
Likes
6
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. JBoss EAP 6 & KHAN [provisioning] 오픈나루㈜ 전준식 service@opennaru.com
  • 2. opennaru.com | 2013 | All Rights Reserved  1 About me • 현재 오픈나루㈜ • 이전 직장 • Red Hat, Senior JBoss Consultant • BEA Systems, Senior Developer Relations Engineer • NEXTEL, Inc. GIS Engine 개발, Server Framework 개발 등 • 책 • 거침없이 배우는 JBoss - EAP 6(AS7), 저자 • Seam In Action, 공동 번역 • More about me? • Blog : http://opennaru.blog.me • Facebook : https://www.facebook.com/junshik.jeon • Company : http://www.opennaru.com • E-mail : service@opennaru.com nameislocus@gmail.com
  • 3. opennaru.com | 2013 | All Rights Reserved  2 Agenda • JBoss EAP 6.2 (AS 7.3) • Big Three • 차별성 • 주요 특징 • 모듈 아키텍쳐 • MSC(Modular Service Container) • Module • Dependency • Class Loading • 사용자 정의 모듈 • jboss-deployment-structure.xml • Global Module • Domain Mode • 스탠드얼론 vs 도메인 모드 • 관리방법 • 프로파일 • 클러스터링 • 구성방법 • 컨트롤러 설정 • 서버그룹 • 인터페이스 설정 • 파일 설정 방법 • KHAN [provisioning] 소개 • 주요 특징 • 주요기능 • Demo
  • 4. opennaru.com | 2013 | All Rights Reserved  3 Header text
  • 5. opennaru.com | 2013 | All Rights Reserved  4 JBoss 글로벌 제품 인지도 2008년 4월 2009년 9월 2011년 9월 JBoss 는 Gartner에서 발표하는 “Magic Quadrant for Application Infrastructure” 에서 확실한 리더로 자리 매김 2017년까지 새로운 기업용 자바 어플리케이션의 적어도 70%는 오픈소스 WAS 에서 운영될 것이다. • 주요 오픈소스 애플리케이션 서버인 Apache와 RedHat 제품이 계속해서 소규모의 Java EE환경을 지배 • 이러한 플랫폼은 후지쯔, 히타치, IBM, 오라클, SAP 및 폐쇄된 소스 솔루션에 비해 낮은 TCO의 인식을 바탕으로 High End 환경으로 확장되고 경쟁 • 많은 클라우드 프로바이더들은 이러한 솔루션을 전략적으로 활용하여 OSS로 전환함으로써 자신들의 SaaS와 PaaS 에 대한 규모의 경제를 실현할 것이다. Predicts 2012: Cloud and In-Memory Drive Innovation in Application Platforms - http://goo.gl/zpAmU
  • 6. opennaru.com | 2013 | All Rights Reserved  5 이제 Big Three 만.. IBM WebSphere AS JBoss EAP Oracle WebLogic Server In the war of middleware!
  • 7. opennaru.com | 2013 | All Rights Reserved  6 JBoss EAP 6 Introduction : 차별성 OSS 프레임워크 지원 초경량/초고속 데이터그리드 / 클라우드풍부한 관리 인터페이스 EAP 6
  • 8. opennaru.com | 2013 | All Rights Reserved  7 Header text
  • 9. opennaru.com | 2013 | All Rights Reserved  8 JBoss EAP 6 주요 특징 모듈 아키텍처 도메인 모드 서브시스템관리 인터페이스 EAP 6 머신 #1 머신 #2 호스트 컨트롤러 서버 1 서버 2 도메인 컨트롤러 프로세스 컨트롤러 프로세스 컨트롤러 머신 #3 호스트 컨트롤러 서버 3 서버 4 프로세스 컨트롤러 관리자 콘솔 1 서버 그룹
  • 10. opennaru.com | 2013 | All Rights Reserved  9 Header text
  • 11. opennaru.com | 2013 | All Rights Reserved  10 Header text
  • 12. opennaru.com | 2013 | All Rights Reserved  11 JBoss EAP 6 전체 아키텍처 JBoss Enterprise Application Platform6 EJB3 JTA Messaging Mail EE Security DataSource Web Weld JAX-RS WebServices Naming Transaction JCA JavaEE Clustering JGroups Infinispan mod_cluster Other POJO JacORB JMXSAR OSGi JDR Management Subsystem JBoss Modules JBoss MSC JBoss Server Controller 거침없이 배우는 JBoss, 157 page
  • 13. opennaru.com | 2013 | All Rights Reserved  12 JBoss MSC(Modular Service Container)의 코어 서비스 Concurrent Service Container Service Controller Service Registry Service Builder Service Deps Value Listeners Injectors 거침없이 배우는 JBoss, 158 page
  • 14. opennaru.com | 2013 | All Rights Reserved  13 모듈의 의존 관계 BA C D E F G KH I J L 거침없이 배우는 JBoss, 174 page
  • 15. opennaru.com | 2013 | All Rights Reserved  14 Serial DAG vs Concurrent DAG실행 방법 A CPU Core CPU Core CPU Core CPU Core B C D E F G H I J K L A CPU Core CPU Core CPU Core CPU Core C G K B D H L E I F J 거침없이 배우는 JBoss, 175 page
  • 16. opennaru.com | 2013 | All Rights Reserved  15 Java VM의 클래스 로더 System EAR EAR Container WAR WAR Bootstrap Extension 부트스트랩 클래스 로더 • JVM이 실행될 때 맨 처음 실행되는 클래스 로더 • 코어 패키지(rt.jar, i18n.jar) 등의 클래스 로딩 확장 클래스 로더 • Bootstrap 로딩 후 기본적으로 로딩되는 클래스 • $JAVA_HOME/lib/ext에 있는 Class들이 로딩 시스템 클래스 로더 • java.class.path 즉 CLASSPATH 변수에 클래스를 로딩 • -cp, -classpath에 지정된 Class들이 로딩 애플리케이션 클래스 로더 • 사용자 정의 클래스 로더 거침없이 배우는 JBoss, 163 page
  • 17. opennaru.com | 2013 | All Rights Reserved  16 JBoss Module에서 클래스 로딩 B A C ① 명시적으로 의존성을 정의 ② C를 export <dependencies> <module name=“C” export=“true”/> <dependencies> <dependencies> <module name=“B”/> <module name=“C”/> <dependencies> 거침없이 배우는 JBoss, 162 page
  • 18. opennaru.com | 2013 | All Rights Reserved  17 extension과 서브시스템 설정 • 주요 extension는 기본적으로 등록 • 서브시스템의 설정 항목은 XML의 schema로 정의 • 서브시스템 설정은 관리도구에서 지 정 domain.xml 서브시스템 설정 부분 extension 등록 부분 ··· <extensions> <!-- list all extensions that you want made available to this server --> <extension module="org.jboss.as.clustering.infinispan"/> <extension module="org.jboss.as.deployment-scanner"/> <extension module="org.jboss.as.transactions"/> <extension module="org.jboss.as.jpa"/> </extensions> ··· <subsystem xmlns="urn:jboss:domain:transactions:1.2"> <core-environment> ··· </core-environment> <recovery-environment socket-binding="txn-recovery-environment" status-socket-binding="txn-status-manager" /> <coordinator-environment default-timeout="300" /> </subsystem> 거침없이 배우는 JBoss, 174 page
  • 19. opennaru.com | 2013 | All Rights Reserved  18 standalone.xml $JBOSS_HOME/docs/schema/jboss-as-weld_1_0.xsd modules/system/layers/base/org/jboss/as/weld/main JBoss EAP 6시작시 extension 모듈 로드 절차 jboss-as-weld-x.x.x.Final.jar org.jboss.as.weld.WeldExtension <subsystem xmlns=“urn:jboss:domain:weld:1.0”> … </ subsystem> <extension module=“org.jgoss.as.weld”> <schema xmlns=“urn:jboss:domain:weld:1.0”> …. </ schema> SUBSYSTEM_NAME=“weld” NAMESPACE=“urn:jboss:domain:weld:1.0” META-INF/services/org.jboss.as.controller.Extension org.jboss.as.weld.WeldExtension module.xml <resource-root path="jboss-as-weld-7.3.0.Final-redhat -14.jar"/> … subsystemWeld시작순서 Modular Service Container Parse ③ extension 모듈의 초기화 ① 모듈 정보 읽기 ② extension 모듈 로드 ④ 모듈 정보 가져오기 거침없이 배우는 JBoss, 174 page
  • 20. opennaru.com | 2013 | All Rights Reserved  19 사용자 모듈 디렉터리 설정 방법 layers.conf 파일 작성하여, 사용자가 추가하는 모듈에 대해서 modules/system/layers/ext 디렉토리를 사용할 수 있도록 설정할 수 있다. $ mkdir $JBOSS_HOME/modules/system/layers/ext $ vi $JBOSS_HOME/modules/layers.conf layers=ext 거침없이 배우는 JBoss, 571 page
  • 21. opennaru.com | 2013 | All Rights Reserved  20 jboss-deployment-structure.xml <?xml version="1.0" encoding="UTF-8"?> <jboss-deployment-structure> <deployment> <dependencies> <module name="org.javassist" /> <module name="org.apache.velocity" export="TRUE" /> </dependencies> </deployment> </jboss-deployment-structure> <?xml version="1.0" encoding="UTF-8"?> <jboss-deployment-structure> <deployment> <exclusions> <module name="org.javassist" /> <module name="org.dom4j" /> </exclusions> </deployment> </jboss-deployment-structure>  dependency 설정  exclusion 설정 거침없이 배우는 JBoss, 170 page
  • 22. opennaru.com | 2013 | All Rights Reserved  21 스프링 프레임워크를 모듈로 만들어 쓸 수 있을까? <?xml version="1.0" encoding="UTF-8"?> <jboss-deployment-structure> <deployment> <dependencies> <module name="org.springframework.spring" slot="3.1.2"> <imports> <include path="META-INF**"/> <include path="org**"/> </imports> </module> <module name="org.springframework.security" slot="main"/> <module name="org.mybatis" slot="main"/> <module name="org.slf4j"/> <module name="org.apache.log4j"/> <module name="javax.validation.api"/> </dependencies> </deployment> </jboss-deployment-structure>  Spring Framework을 모듈로 만들기 거침없이 배우는 JBoss, 6장
  • 23. opennaru.com | 2013 | All Rights Reserved  22 JDK 클래스에 접근하기  JDK 클래스 에 접근하기 sun.jdk 모듈에 JDK에서 제공하는 클래스들을 정의하고 있음 이 모듈에 정의되지 않은 클래스를 로딩하려면 다음과 같이 설정한다. <jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1"> <deployment> <dependencies> <system> <paths> <path name="sun/security/action"/> <path name="javax/crypto"/> </paths> </system> </dependencies> </deployment> </jboss-deployment-structure> https://access.redhat.com/site/solutions/343033 거침없이 배우는 JBoss, 6장
  • 24. opennaru.com | 2013 | All Rights Reserved  23 JBoss에서 Jersey 사용시 모듈 설정 방법  JBoss에서 Jersey(RESTful Web Services 모듈) JBoss는 RESTEasy 모듈을 기본으로 제공하고 있음 만약 Jersey를 사용하고 싶다면 아래와 같이 모듈을 설정 <jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1"> <deployment> <dependencies> <system> <paths> <path name="com/sun/xml/bind/v2/runtime/JAXBContextImpl"/> </paths> </system> </dependencies> </deployment> </jboss-deployment-structure> https://access.redhat.com/site/solutions/330173 거침없이 배우는 JBoss, 6장
  • 25. opennaru.com | 2013 | All Rights Reserved  24 Global 모듈  WAS 시작시 CLASSPATH에 설정하여야만 하는 JAR를 사용하려면 일부 암호화 모듈이 이런 경우가 있음 <?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.1" name="com.opennaru"> <resources> <resource-root path="abc.jar"/> <resource-root path="def.jar"/> </resources> <dependencies> </dependencies> </module> <subsystem xmlns="urn:jboss:domain:ee:1.1"> <spec-descriptor-property-replacement>false</spec-descriptor-property-replacement> <jboss-descriptor-property-replacement>true</jboss-descriptor-property-replacement> <global-modules> <module name="com.opennaru" slot="main"/> </global-modules> </subsystem>  module.xml  standalone*.xml / domain.xml 거침없이 배우는 JBoss, 6장
  • 26. opennaru.com | 2013 | All Rights Reserved  25 Header text
  • 27. opennaru.com | 2013 | All Rights Reserved  26 스탠드얼론 모드와 도메인 모드 비교 머신 (호스트) 호스트 컨트롤러 서버 1 서버 2 프로세스 컨트롤러 도메인 머신 (호스트) 서버 1 서버 2 스탠드얼론 머신 (호스트) 서버 1 서버 2 머신 (호스트) 호스트 컨트롤러 서버 1 서버 2 프로세스 컨트롤러 거침없이 배우는 JBoss, 122 page
  • 28. opennaru.com | 2013 | All Rights Reserved  27 Host 1 도메인 컨트롤러 (호스트 컨트롤러1) Server 1 프로세스 컨트롤러 1 Server Group 1 Server 2 Host 2 호스트 컨트롤러 2 Server 3 프로세스 컨트롤러 2 Server 4 Server Group 2 Host 3 호스트 컨트롤러 3 Server 5 프로세스 컨트롤러 3 Server 6 Server Group 3 Server Group 4 Domain [ 도메인 환경에서의 JVM 프로세스들 ] 도메인 컨트롤러 - 도메인에 대한 중앙에서 집중화된 관리/통제를 위한 싱글 프로세스 ( SPOF 를 위한 Backup ) - 호스트 컨트롤러 프로세스에 의해 관리되는 EAP 서버 인스턴스들에 대해서 도메인 (서버그룹) 환경에서 구 성을 관리하고 배포하는 프로세스 호스트 컨트롤러 - Domain에 포함된 개별 Host 에서 실행되는 프로세스 로 Domain Controller 와 연결된 개개의 호스트 - 도메인 컨트롤러 프로세스와 연결된 호스트 컨트롤러 에 의해서 각각의 EAP 서버 인스턴스에 대한 배포와 환경을 설정 프로세스 컨트롤러 - 서버 인스턴스 및 호스트 컨트롤러 프로세스의 기동/ 정지 및 모니터링 서버 - EAP 서버 인스턴스(프로세스) [관리를 위한 논리 개념] 도메인 -하나로 도메인 컨트롤러에 의해 관리(설정/배포 및 라이프 사이클 관리)를 하는 호스트 컨트롤러 -도메인내의 모든 서버 인스턴스는 도메인 컨트롤러와 호스트 컨트롤러에 의해 일관한 환경구성과 배포가 통제됨 서버 그룹 -서버 인스턴스를 관리하기 위한 논리 그룹으로 프로파일, 환경설정 그리고 배포 단위 -도메인에서 서버 인스턴스는 하나의 서버 그룹에 속함 JBoss EAP6 구성 : 도메인 모드 - 주요 용어
  • 29. opennaru.com | 2013 | All Rights Reserved  28 도메인모드와 스탠드얼론 모드의 관리 방법 비교 머신 #1 머신 #2 호스트 컨트롤러 서버 1 서버 2 도메인 컨트롤러 (master Host Controller) 프로세스 컨트롤러 프로세스 컨트롤러 머신 #3 호스트 컨트롤러 서버 3 서버 4 프로세스 컨트롤러 관리자 콘솔 머신 #1 서버 1 서버 2 머신 #2 서버 3 서버 4 321 4 1 스탠드얼론 모드 도메인 모드 서버 그룹 거침없이 배우는 JBoss, 124 page
  • 30. opennaru.com | 2013 | All Rights Reserved  29 스탠드얼론 모드와 도메인 모드의 프로파일 비교 <?xml version='1.0' encoding='UTF-8'?> <domain xmlns="urn:jboss:domain:1.5"> <extensions> .. 중략 .. </extensions> <profiles> <profile name="default"> .. 중략 .. </profile> <profile name="ha"> .. 중략 .. </profile> <profile name="full"> .. 중략 .. </profile> <profile name="full-ha"> .. 중략 .. </profile> </profiles> <interfaces> .. 중략 .. </interfaces> <socket-binding-groups> .. 중략 .. </socket-binding-groups> <server-groups> .. 중략 .. </server-groups> </domain> 도 메 인 모 드 스 탠 드 얼 론 모 드 standalone.xml standalone-ha.xml standalone-full.xml standalone-full-ha.xml 거침없이 배우는 JBoss, 125 page
  • 31. opennaru.com | 2013 | All Rights Reserved  30 스탠드얼론 모드와 도메인 모드에서의 클러스터링 차이점 머신 #1 머신 #2 호스트 컨트롤러 서버 1 서버 2 도메인 컨트롤러 (master Host Controller) 프로세스 컨트롤러 프로세스 컨트롤러 머신 #3 호스트 컨트롤러 서버 3 서버 4 프로세스 컨트롤러 머신 #1 서버 1 서버 2 스탠드얼론 모드 도메인 모드 서버 그룹 #1 머신 #2 서버 3 서버 4 서버 그룹 #2 클러스터 #1 클러스터 #2 거침없이 배우는 JBoss, 126 page
  • 32. opennaru.com | 2013 | All Rights Reserved  31 도메인 모드 구성 예 머신 #1 머신 #2 호스트 컨트롤러 머신 #3 호스트 컨트롤러 서버 3 서버 1 서버 2 머신 #4 호스트 컨트롤러 서버 5 서버 4 서버 그룹 A 도메인 컨트롤러 (master Host Controller) 프로세스 컨트롤러 프로세스 컨트롤러 프로세스 컨트롤러 프로세스 컨트롤러 서버 그룹 B 도메인 모드 거침없이 배우는 JBoss, 128 page
  • 33. opennaru.com | 2013 | All Rights Reserved  32 도메인 모드 구성 예 머신 #1 호스트 컨트롤러 머신 #2 호스트 컨트롤러 서버 3 서버 1 서버 2 머신 #3 호스트 컨트롤러 서버 5 서버 4 서버 그룹 A 도메인 컨트롤러 (master Host Controller) 프로세스 컨트롤러 프로세스 컨트롤러 프로세스 컨트롤러 프로세스 컨트롤러 서버 그룹 B 도메인 모드 거침없이 배우는 JBoss, 128 page
  • 34. opennaru.com | 2013 | All Rights Reserved  33 도메인 컨트롤러 설정 도메인 컨트롤러 {XXX.XXX.XXX.1} host.xml <domain-controller> <local/> </domain-controller> domain.xml 호스트 컨트롤러 1 {XXX.XXX.XXX.2} host.xml <server-identities> <secret value="b3Blbm5hcnUhMjM0"/> </server-identities> <domain-controller> <remote host="XXX.XXX.XXX.1" username="admin" port="9999"/> </domain-controller> 호스트 컨트롤러 2 {XXX.XXX.XXX.3} host.xml <server-identities> <secret value="b3Blbm5hcnUhMjM0"/> </server-identities> <domain-controller> <remote host="XXX.XXX.XXX.1" username="admin" port="9999"/> </domain-controller> 거침없이 배우는 JBoss, 135 page
  • 35. opennaru.com | 2013 | All Rights Reserved  34 서버 그룹 구성 머신 #1 머신 #2 호스트 컨트롤러 머신 #3 호스트 컨트롤러 서버 3 서버 1 서버 2 머신 #4 호스트 컨트롤러 서버 5 서버 4 서버 그룹 A 도메인 컨트롤러 (master Host Controller) Domain.xml 서버 그룹 B deployment 1 profile 1 deployment 2 profile 2 host.xml host.xml host.xml  서버 그룹에 사용할 프로파일 정의  서버 그룹은 배포 단위 거침없이 배우는 JBoss, 137 page
  • 36. opennaru.com | 2013 | All Rights Reserved  35 도메인 모드 – 네트워크 설정 • EAP6 에서는 바인딩 IP 주소는 host.xml 파일에서 “<interface>” 로 정의 • 일반적으로 사전에 정의된 인터페이스를 사용하며, 관리 인터페이스는 관리도구 및 호스트 컨트롤 러 간의 통신에 사용 • 포트 설정은 socket-binding 으로 관리되며 일반적으로 사전에 그룹 정의된 socket-binding-group 를 사용 • 단일 Host 상에서 복수의 Server 를 기동 시 포트 중복을 막기 위해 오프셋(offset) 지정 master management I/F :127.0.1.1 public I/F :127.0.1.1 unsecure I/F : 127.0.1.1 Domain Controller slave management I/F : 127.0.1.2 public I/F : 127.0.1.2 unsecure I/F : 127.0.1.2 Host Controller server-one 99999999 9990Admin Console CLI management Native I/F management HTTP I/F 9999 9990 8080 8443 4713 … Public I/F & socket-binding- group server-two 8230 8593 4863 … Public I/F & socket-binding- group management Native I/F management HTTP I/F port- offset=“150”
  • 37. opennaru.com | 2013 | All Rights Reserved  36 도메인 모드에서 프로세스 구성 머신 (호스트) 호스트 컨트롤러 서버 1 서버 2 프로세스 컨트롤러 도메인 : 자바 프로세스를 나타냄 : 자식 프로세스를 나타냄 거침없이 배우는 JBoss, 138 page
  • 38. opennaru.com | 2013 | All Rights Reserved  37 • 프로세스 컨트롤러, 호스트 (도메인) 컨트롤러, 서버 인스턴스는 각각 독립적인 JVM 프로세스 • 호스트 컨트롤러, 서버 프로세스는 프로세스 컨트롤러 프로세스에 의해 기동 • 호스트 컨트롤러 중 도메인 컨트롤러로 정의된 것이 도메인 컨트롤러로 동작 JBoss EAP6 구성 : 도메인 모드 – JVM 프로세스 종류 및 구성 host1 Domain Controller (Host Controller) Process Controller host2 Host Controller server-one server-two host3 Host Controller Domain server-one server-two Process Controller Process Controller | -+= 03326 root $EAP_HOME/bin/domain.sh … | -+- 03346 root $JAVA_HOME/bin/java -D[Process Controller] … | --- 03347 root $JAVA_HOME/bin/java -D[Host Controller] … | -+= 03348 root $EAP_HOME/bin/domain.sh … | -+- 03368 root $JAVA_HOME/bin/java -D[Process Controller] … | |--- 03369 root $JAVA_HOME/bin/java -D[Host Controller] … | |--- 03370 root $JAVA_HOME/bin/java -D[Server:server-one] … | --- 03371 root $JAVA_HOME/bin/java -D[Server:server-two] … -+= 03372 root $EAP_HOME/bin/domain.sh … -+- 03392 root $JAVA_HOME/bin/java -D[Process Controller] … |--- 03393 root $JAVA_HOME/bin/java -D[Host Controller] … |--- 03394 root $JAVA_HOME/bin/java -D[Server:server-one] … --- 03395 root $JAVA_HOME/bin/java -D[Server:server-two] … main-server-group jvm 프로세스 xxx pstree 커맨드 실행 결과 거침없이 배우는 JBoss, 5장
  • 39. opennaru.com | 2013 | All Rights Reserved  38 도메인 모드 설정 파일 항목 domain.xml host.xml extensions 모듈 ○ system-properties 시스템 프로퍼티 ○ ○ paths ○ ○ management Realm과 interfaces 바인드 ○ profiles 사용하는 Subsystem ○ interfaces Listener 주소와 포트 ○ ○ domain-controller 도메인 컨트롤러의 주소와 포트 ○ jvms jvm 시작 옵션 ○ servers 서버 정의와 포트 오프셋(offset) ○ socket-binding-groups 포트 설정 ○ server-groups ServerGroup 정의 ○ deployments ○ 도메인 공통 설정 값 (서버 그룹) – domain.xml 호스트 전용 설정 값 (호스트) – host.xml Domain.xml과 Host.xml 공통 설정 거침없이 배우는 JBoss, 139 page
  • 40. opennaru.com | 2013 | All Rights Reserved  39 설정 파일 관리 도메인 컨트롤러 {XXX.XXX.XXX.1} host.xml <domain-controller> <local/> </domain-controller> domain.xml 호스트 컨트롤러 1 {XXX.XXX.XXX.2} host.xml <domain-controller> <remote host=”XXX.XXX.XXX.1” port=”9999” /> </domain-controller> <servers> <server name=“Server 2” group=“Server Group A”… > … </ server> … </ servers> 호스트 컨트롤러 2 {XXX.XXX.XXX.3} host.xml ............................... ............................... 서버 그룹 A 서버 3서버 2 서버 5서버 4 서버 그룹 B 거침없이 배우는 JBoss, 140 page
  • 41. opennaru.com | 2013 | All Rights Reserved  40 domain.xml 파일과 host.xml 파일의 주요 설정 내용 Domain <domain-controller> <local/> </domain-controller> <servers> <server name=“master_server1” group=“simpleServerGroup1”… > … </ server> … </ servers> domain.xml host.xml master (host #1) {XXX.XXX.XXX.1} slave1 (host #2) {XXX.XXX.XXX.2} slave1_server1simpleServerGroup1master_server1 <domain-controller> <remote host=” XXX.XXX.XXX.1” port=”9999”/> </domain-controller> <servers> <server name=“slave1_server1” group=“simpleServerGroup1”… > … </ server> … </ servers> host.xml 거침없이 배우는 JBoss, 145 page
  • 42. opennaru.com | 2013 | All Rights Reserved  41 Header text
  • 43. opennaru.com | 2013 | All Rights Reserved  42 WAS에서 세션 클러스 터링이 되지 않아요!!! 매번 비슷한 작업인데 … 언제 이 많은 서버 를 다 설치하지??!!! 웹서버와 WAS 서버가 연결되지 않아요!!! 아무리 구글을 뒤져봐 도 어떻게 설정해야 되 는지 모르겠어요!!!! Real Voice 웹 서버/WAS서버 설치 구성은 전문가만 할 수 있다? 안정적이고 신속한 웹 서버/WAS 서버 구성 미들웨어 이슈 - 웹 서버 / WAS
  • 44. opennaru.com | 2013 | All Rights Reserved  43 A 통신사 대규모 시스템 구축 8765 4321 1월 2월 현황분석/설계 파일럿 템플릿 작성 안정화 지원 완료보고 …. Machine #1 WAS 1-1 WAS 1-2 WAS 1-3 WAS 1-4 Machine #2 WAS 2-1 WAS 2-2 WAS 2-3 WAS 2-4 Machine #3 WAS 3-1 WAS 3-2 WAS 3-3 WAS 3-4 Machine #N WAS N-1 WAS N-2 WAS N-3 WAS N-4 A 업무 B 업무 C업무 Machine #4 WAS 4-1 WAS 4-2 WAS 4-3 WAS 4-4 Machine #5 WAS 5-1 WAS 5-2 WAS 5-3 WAS 5-4 Machine #6 WAS 6-1 WAS 6-2 WAS 6-3 WAS 6-4 Machine #M WAS M-1 WAS M-2 WAS M-3 WAS M-4 Z 업무 H 업무 D 업무 Y 업무 • 프로젝트 개요  수작업으로 인한 기간, 비용 그리고 Human Error 의 발생빈도가 높았음.  총 3개월 동안 프로젝트 수행  1개 서비스 9 개 주요 업무에 대한 오픈소스 도입 프로젝트  웹 서버 17대 + WAS 서버 15대 머신 / 총 47대  약 40개의 JBoss 인스턴스, 약 26개의 웹 서버 가상호스트  WAS 매핑 프로젝트 일정 시스템 구성 범위
  • 45. opennaru.com | 2013 | All Rights Reserved  44 고객 요구사항에 따른 웹 시스템 작업 웹 서버 설치 WAS서버 설치 웹서버 설치 웹 서버/ WAS서버연결 클러스터링 구성 애플리케이션 배포 지원 테스트 지원 부하테스트 지원 오픈 지원 웹 시스템 표준 구성 장애 지원 개발 환경 지원 개발 서버 설치 Standard 구성 Advanced 구성 mod_jk 설정 WAS 설치 mod_cluster 설정 Worker MPM 구성 로깅 디렉터리 설정 웹서버 튜닝 웹서버 설치 보고서 작성 Native 라이브러리 설정 JSP 변경 체크 설정 각종 Dump 디렉터리 구성 모듈 설정 Log4J 설정 멀티 인스턴스 구성 JDBC 커넥션 풀 튜닝 모니터링 설정 커널 파라미터 설정 Cpuspped 설정 블루투스 off limits.conf 설정 추가 rpm 설치 Huge Page 설정 OS 설정 보고서 작성 클러스터링 테스트 통합 테스트 기본 네트워크 테스트 애플리케이션 배포 테스트 운영관리 테스트 WAS 서버 설치보고서 작성 쓰레드 풀 튜닝도메인 모드 구성 운영을 위한 쉘 구성 로깅 디렉터리 설정 JDK 설치 ? 일 ? 일 1 일 1 일 1 일 1 일 수 일 이상 기술 지원 ? 일 운영 계정 설정 SE Linux 설정 방화벽 설정 멀티캐스트 테스트 JDBC 테스트 애플리케이션 배포 구성 웹서버 WAS 서버 OS 테스트 단위 테스트 Benchmark 테스트 고객 기술지원
  • 46. opennaru.com | 2013 | All Rights Reserved  45 KHAN Provisioning 은? OS 만 설치되어 있으면 수분 이내에 설치 환경 을 테스트하고 웹서버 와 WAS서버를 설치하 고 즉시 서비스할 수 있 는 환경 제공 미들웨어 전문가가 아니 어도 전문가 수준의 시 스템 튜닝이나 난이도 높은 구성을 할 수 있도 록 기능 제공 서버 구성에 대한 정보 만 입력하면 한대에서 수 십대까지 규모에 상 관없이 자동으로 웹시스템 운영환경을 구성 웹시스템 설치/구성 보고서를 시스템에 맞 게 자동으로 생성하여 개발팀과 운영 팀에게 제공 수 분 내 튜닝된 웹 서버와 WAS 서버로 웹 시스템 구축
  • 47. opennaru.com | 2013 | All Rights Reserved  46 웹서버/WAS 자동 설치 • 서버 OS 종류와 버전을 식별하여 해당 OS에 맞는 웹서버/WAS 제품으로 설치 • 단일 서버나 여러 대의 서버에 상관없이 웹서버와 WAS 서버를 설치하고 운영환경을 구성 • JDK, mod_jk, mod_cluster , 운영 스크립트 파일 등을 구성 요청에 맞추어 설정하여 설치 • 운영에 필요한 사용자 계정 자동 생성 구성에 대한 테스트 환경 제공 • Http 세션 클러스터링을 바로 수행할 수 있는 애플리케이션 제공과 환경 제공 • WAS 구성환경에 대하여 기본적인 테스트를 할 수 있는 애플리케이션 자동 배포 • 데이터베이스와 연결하기 위한 데이터소스 테스트 환경 제공 • 신속한 테스트를 위한 위한 웹페이지 자동생성 전문가 수준의 튜닝과 구성 • OS 커널, 네트워크 버퍼 사이즈 등 튜닝된 환경 구성 • 최적화된 mod_jk 설정값 • WAS 성능을 위한 Native Library 설정 반영 • WAS Thread Pool 이나 데이터소스 Pool을 설정 • selinux 등 웹서비스를 위한 보안 설정을 최적화하여 구성설치 보고서 자동 생성 • 개발팀에 전달하여 참조 • 설치된 정보들을 바탕으로 MS Word 형태의 설치보고서를 생성합니다. • 웹관리 콘솔 접속 정보 등 웹/WAS 환경 운영시 참조할 수 있는 가이드 제공 KHAN Provisioning 기능
  • 48. opennaru.com | 2013 | All Rights Reserved  47 Use Case #1 - 교육자료 및 개발팀 전달 문서  WAS 교육 자료와 교육 부탁 드려요!  영문 메뉴얼 봐도 모르고 한글로 된 운영에 필요한 내용만 정리해 주세요. 운영자  개발환경 구성을 어떻게 해야 하는지 문서를 주시던가 구성해 주세요.  운영 환경에 배포하는 방법하고 WAS start/stop 등 개발팀에서 알아야 하 는 내용 정리해 주세요.개발자  운영자와 개발자가 WAS 운영에 필요한 필수적인 정보들을 문서로 자동 생성하여 제공  고객 요구사항에 맞추어 구성된 정보들을 정리하여 Word 문서로 제공 운영환경에서 바로 사용 가능한 스크립트 리스트와 설명 고객사에 요구에 따라 설치한 설치정보 제공 각종 관리도구 사용법 및 로그인 방법
  • 49. opennaru.com | 2013 | All Rights Reserved  48 Use Case #2 - 설치 보고서 작성  작업하신 내용을 문서 작성해 주세요  검수를 하기 위한 항목들을 문서로 전달해 주세요. 운영자  자동으로 전문가 수준의 보고서를 Word 파일 형태로 작성  OS 정보에서 부터 Kernel Tung 파라미터에 대한 내용까지 문서로 작성 하여 제공 OS 정보 제공 적용된 커널 파라미터OS 정보 요약
  • 50. opennaru.com | 2013 | All Rights Reserved  49 Use Case #3 – 기본 환경 테스트  멀티캐스트 네트워크는 어떻게 확인하지?  애플리케이션을 개발중인 데 설치만하면 나중에 문제 생기지 않을 까?  데이터 베이스 연결 테스트는 어떻게 하지?운영자  NetTest 를 통한 실제 구성 전에 주요 시스템과 포트에 대한 네트워크 연결 테스트 진행  WAS 구성환경에 대하여 테스트를 할 수 있는 애플리케이션 자동 배포  데이터베이스 연결과 세션 클러스터링 테스트 환경 제공 세션 클러스터링 테스트 네트워크 테스트 결과 데이터베이스 연결 테스트
  • 51. opennaru.com | 2013 | All Rights Reserved  50 Use Case #4 – 대규모 웹서버/WAS 설치 구성  1주일 이내에 WAS 인스턴스 40개 와 10대 웹서버를 구성해 주세요.  설치/구성 방안에 대하여 먼저 설명해 주세요. 운영자  단일 서버나 여러 대의 서버에 상관없이 웹서버와 WAS 서버를 설치하고 운영환경을 구성  서버 OS 종류와 버전을 식별하여 해당 OS에 맞는 웹서버/WAS 제품으로 설치 복잡한 도메인 구성 지원 Configuration Wizard 제공 서버 대수에 상관없이 설치
  • 52. opennaru.com | 2013 | All Rights Reserved  51 웹 시스템 설치 및 구성 – 전문가에 의한 구성 OS 설치 /구성 OS 튜닝OS 운영 설정 커널 파라미터 최적화 Cpuspeed 설정 limits.conf 설정 메모리 라지 페이지 … 운영 계정 설정 계정별 쉘 설정 추가 rpm 설치 JDK 설치 … SE Linux 설정 방화벽 설정 Alternatives 설정 블루투스 설정 … JBoss EAP Linux JBoss EAP Application Java JBoss Instance … JBoss EAP Linux JBoss EAP Application Java JBoss Instance … JBoss EAP Linux JBoss EAP Application Java JBoss Instance … JBoss EAP Linux JBoss EAP Application Java JBoss Instance JBoss 전문가 리눅스 전문가 JBoss 설치/구성 JBoss 튜닝JBoss 운영 설정 쓰레드 풀 설정 각종 커넥션 풀 설정 JGroups 설정 클러스터링 타입 설정 – UDP, TCP, FILE OS 플랫폼 별 제품 설치 각종 관리 쉘 설치 다수 인스턴스 구성 독립서버/ 도메인 모드 구성 JBoss 관리 사용자 등록 세션 클러스터링 환경 구성 로깅 설정 애플리케이션 배포 디렉터리 설정 Native 라이브러리 설정 JVM GC 옵션 인스턴스 별 포트셋 설정 인스턴스 별 로그/ 덤프 디렉터리 설정 클러스터링 테스트 환경 구성 데이터소스 테스트 환경 구성 … … …
  • 53. opennaru.com | 2013 | All Rights Reserved  52 KHAN Provisioning 기대 효과 웹 시스템 자동화 기대 효과 “1 시간 이내” • 웹 시스템 인스턴스 자동 구성 • 기본 튜닝 • 설치 보고서  웹시스템 구성하는데 “ 몇 일? ”  “ 튜닝은? ”  “ 설치보고서는? ” 몇 일 1시간 수작업 설치 및 구성 KHAN Provisioning 웹 시스템 구성 - 90%단축 • Network 구성 1 일 2시간 • 하드웨어 설치 1 일• OS 설치 2시간• Java설치 2시간• JBoss설치 8 시간 • 인스턴스 구성 4 시간• 구성 테스트 몇 일 이상 Linux JBoss Application Java JBoss Instance WAS 서버
  • 54. opennaru.com | 2013 | All Rights Reserved  53 기존 수작업과의 기간/비용 비교 87%기간 단축 Cost 비용 절감 4 대 10 대 20 대 100 대 수작업 설치 1 일 3 일 9 일 40 일 프로비져닝 1 일 2 일 4 일 10 일 일 5 일 10 일 15 일 20 일 25 일 30 일 35 일 40 일 45 일 소요기간 규모 대비 소요기간  전문가 수준의 튜닝을 통한 성능 최적화 및 구성 표준화  전문가 수준의 안정적인 시스템 구성을 통한 장애 포인트 최소화  전문가 수준의 자동화된 설치/구성/테스트/리포트를 통한 기간 단축  웹 서버/WAS 전문 프로비져닝을 통한 비용 절감
  • 55. opennaru.com | 2013 | All Rights Reserved  54 기존 방식 대비 프로젝트 단계별 비교 • 프로비져닝에 의한 자동화 작업 • 인프라 소프트웨어 전문기술 요구 단계 설치/구성/기본테스트 5일 -> 3시간 : 92% 기간 단축 4대의 웹서버/WAS 서버 구성을 기준으로 프로젝트 진행 단계별 소요 기간을 시뮬레이션 성능/안정화/교육/장애 17일 -> 5.5 일 : 68% 기간 단축 프로젝트 전체 기간 24일 -> 7 일 : 71% 기간 단축
  • 56. opennaru.com | 2013 | All Rights Reserved  55 • 기본 웹/WAS 설치환경과 KHAN [provisioning]을 통해 설치된 환경에서 성능 비교 • 각각 웹서버와 JBoss 서버를 1대씩 ( 2core / 2G) 구성하고 상대적인 성능의 비교 • JMeter 로 30/50/100/300/400/500 Thread 로 부하 테스트 • Retrieve All Embedded Resources from HTML Files 옵션 사용 기존 방식 대비 항목별 비교 0 50 100 150 200 250 300 350 400 30 User 50 User 100 User 300 User 400 User 500 User Transactions/Sec KHAN [provisioning] vs. Default Benchmark Test KHAN [provisioning] 기본 설치 환경  동일 쓰레드에서 최소 24% / 최대 43% 성능 향상  Saturation 포인트가 높아져 시스템 효율성 증대
  • 57. opennaru.com | 2013 | All Rights Reserved  56 Header text
  • 58. opennaru.com | 2013 | All Rights Reserved  57 KHAN [provisioning] - 데모 Machine #1 admin11 (+100) front11 (+200) test11 (+300) Machine #2 admin21 (+100) front21 (+200) test21 (+300) Machine #3 front31 (+100) test31 (+200) admin 230.10.1.1 front 230.10.2.1 test 230.10.3.1 Machine #3 Apache + mod_jk / mod_cluster admin Virtual Host front test Machine #4 Apache + mod_jk / mod_cluster admin Virtual Host front test JBoss EWS 2.0.1 JBoss EAP 6.2.0 Domain Controller 복잡한 설정을 한번에… 설치 보고서도 생성
  • 59. opennaru.com | 2013 | All Rights Reserved  58 KHAN [provisioning] 웹 기반 GUI Agent 기반 모니터링은 주요 메소드의 구간 속도, SQL 쿼리 등을 출력하며 현재 Log 파일 출력만 지원합니다.
  • 60. opennaru.com | 2013 | All Rights Reserved  59 JBoss EWS 설치시 index.html 생성 설치된 인스턴스 접속 정보 페이지가 자동 생성된다. • 모든 인스턴스 접속 URL • mod_jk 연결 정보 페이지 • mod_cluster 연결 정보 페이지 • 웹 세션 복제 테스트 페이지 • 데이터소스 테스트 페이지
  • 61. opennaru.com | 2013 | All Rights Reserved  60 mod_jk, mod_cluster 상태 모니터링 페이지 설정 모니터링 페이지 자동 설정된다. • mod_cluster 관리 페이지 • JK Status 정보 페이지
  • 62. opennaru.com | 2013 | All Rights Reserved  61 웹 세션 복제 테스트, 데이터소스 애플리케이션 자동 배포 • 웹 세션 복제 테스트 애플리케이션이 자동 배포된다. • 데이터소스 테스트 애플리케이션이 자동 배포된다.
  • 63. opennaru.com | 2013 | All Rights Reserved  62 MS Word 제품 설치 보고서 자동 생성 • 제품별 설치보고서가 자동 생성되어 개발팀, 운영팀의 설치/운영 문서로 활용할 수 있다.
  • 64. opennaru.com | 2013 | All Rights Reserved  63 거침없이 설치하는 JBoss  운영에 필수적인 사용 방법은 설치보고서에서 참조  배경 지식과 설명 이외의 WAS 운영에 필요한 참조 정보들은 “거침없이 배우는 JBoss”
  • 65. opennaru.com | 2013 | All Rights Reserved  64 Header text
  • 66. opennaru.com | 2013 | All Rights Reserved  65 Header text
  • 67. opennaru.com | 2013 | All Rights Reserved  66 Header text
  • 68. opennaru.com | 2013 | All Rights Reserved  67 Header text
  • 69. opennaru.com | 2013 | All Rights Reserved  68 Header text
  • 70. opennaru.com | 2013 | All Rights Reserved  69
  • 71. opennaru.com | 2013 | All Rights Reserved  70 Header text
  • 72. opennaru.com | 2013 | All Rights Reserved  71 Header text
  • 73. opennaru.com | 2013 | All Rights Reserved  72 Header text
  • 74. opennaru.com | 2013 | All Rights Reserved  73 Header text
  • 75. opennaru.com | 2013 | All Rights Reserved  74 Header text
  • 76. opennaru.com | 2013 | All Rights Reserved  75 Header text
  • 77. opennaru.com | 2013 | All Rights Reserved  76 Header text
  • 78. opennaru.com | 2013 | All Rights Reserved  77 Header text
  • 79. opennaru.com | 2013 | All Rights Reserved  78 Header text
  • 80. opennaru.com | 2013 | All Rights Reserved  79 Header text
  • 81. opennaru.com | 2013 | All Rights Reserved  80 Header text
  • 82. opennaru.com | 2013 | All Rights Reserved  81 Header text