티스토리 뷰
본 포스팅은 벤더사 별 WAS의 주요 설정 중 Application Deploy 방법에 대한 비교를 다루었습니다.
다양한 WAS 중 많이 사용되는 Weblogic, Tomcat, Websphere, JEUS의 Application Deploy 방법에 대해 알아보겠습니다. 본 포스팅을 통해 실제 WAS를 활용하거나 윈백을 수행할 때 참고 할 수 있었으면 합니다.
먼저 Weblogic부터 살펴보도록 하겠습니다.
크게 Web Archive, Enterprise Java Bean 그리고 공통 모듈 3가지로 나누어 살펴보겠습니다.
두번째로 EJB 모듈입니다.
Weblogic에 Deploy된 EJB 모듈 설정은 DOMAIN_HOME/config/config.xml 에서 <app-deployment> 태그에 정의되어 있습니다.
config.xml 파일의 module-type을 ejb로 명시하여 Deploy를 수행할 수 있습니다.
마지막으로 공통 모듈입니다.
Admin Console 에서 Deploy된 library 들을 확인할 수 있습니다.
Weblogic 의 Deploy된 공통 모듈 설정은 DOMAIN_HOME/config/config.xml 의 <library> 태그에 정의되어 있습니다.
두번째로 Tomcat을 살펴보도록 하겠습니다.
Deploy된 Application을 확인하기 위해 Admin 권한을 가진 계정으로 Web Manager로 접근하면, deployed된Application 목록을 확인할 수 있습니다.
또한 각 Application을 클릭하면, 일부 실행도 가능합니다.
세번째로 Websphere을 살펴보도록 하겠습니다.
Application Deploy를 위한 응용프로그램 하위 태그인 엔터프라이즈 응용프로그램에서 확인이 가능합니다.
해당 화면에서는 현재 WebSphere 내에 배포된 Application 을 확인할 수 있습니다.
배포된 Application 을 클릭하면 해당 Application 의 세부 내용을 확인 할 수 있습니다. 여기에서는 DefaultApplication에 대하여 좀 더 자세히 살펴 보도록 하겠다. DefaultApplication를 클릭하면 구성 및 로컬 토폴로지에 대한 화면이 출력됩니다. 해당 Application은 1개의 웹 모듈과 1개의 EJB 모듈로 구성되어 있음을 확인 할 수 있습니다. 구성탭을 클릭하여 DefaultApplication 의 세부 구성에 대한 화면을 확인할 수 있습니다.
마지막으로 JEUS7의 Application Deploy에 대해 알아보겠습니다.
JEUS7에서 디플로이를 시작하기 위해서는 먼저 DAS 기동이 필요합니다. 여기서는 Web Admin을 통해 deploy를 하는 방법을 설명하도록 하겠습니다.
WebAdmin의 Application 항목을 클릭하면 application List를 확인할 수 있습니다.
처음 설치후 존재하는 examples는 DAS에 기본적으로 등록된 샘플 어플리케이션입니다. 샘플 어플리케이션은 삭제가 가능합니다.
화면 중앙에 보이는 리스트는 애플리케이션 저장소(Application Repositories)라 불리는 것으로 JEUS7에 deploy되기 위해서는 반드시 애플리케이션 저장소에 등록이 필요합니다.
그럼 애플리케이션 저장소(Application Repositories)에 대해 잠시 알아보고 넘어가겠습니다.
JEUS6에서는 $JEUS_HOME/webhome/app_home이라는 위치를 기본적으로 application의 저장공간으로 놓고 사용했었습니다. 그러나 해당 기능은 어플리케이션의 위치를 상대경로로 참조할 수 있었다는 점 외에는 절대경로로 어플리케이션을 설정해서 deploy하는 것과 차이는 없었습니다.
JEUS7에서 생긴 어플리케이션 저장소는 app_home 과 비슷한 역할을 하는 폴더지만, 더욱 엄격해져서 특수한 경우를 제외하고는 모든 어플리케이션은 어플리케이션 저장소 안에 존재해야 합니다. DAS가 설치된 서버 안의 $DOMAIN_NAME/.application 이라는 폴더를 디폴트 값으로 가지고 있고, 해당 위치에는 install한 어플리케이션이 저장됩니다.
하지만 서버 상에 특정 위치를 추가적인 어플리케이션 저장소로 지정 할 수 있는데, domain 항목의 Application Repositories에서 추가할 수 있습니다. 추가된 어플리케이션 저장소는 하위에 존재하는 ear, war, jar 및 exploded 어플리케이션을 검색해서 리스트로 관리합니다.
어플리케이션 저장소를 추가한 경우 DAS의 재시작이 필요합니다.
어플리케이션은 크게 4가지 상태로 볼 수 있습니다.
(각각의 상태는 어플리케이션 리스트의 state 항목에서 볼 수 있습니다.)
먼저 NOT_EXIST는 말그대로 DAS에 등록이 되지 않은 상태입니다.
INSTALLED은 어플리케이션 저장소에 등록되어 리스트에 표시된 상태입니다.
DISTRIBUTE는 어플리케이션을 내부적으로 이니셜라이즈 해서 사용할 수 있게 만들었으나 접근은 할 수 없는 상태입니다. DISTRIBUTE 상태가 갖는 가장 큰 의미는 디플로이된 서버의 BASE_PORT를 통해 동작 테스트를 할 수 있다는 점이고 이것을 이용하여 Gracefull redeploy기능과 Distribute Only 옵션을 통해 사용자에게는 기존의 서비스를 제공하면서 운영환경에서 테스트가 가능합니다.
마지막으로 RUNNING은 실제로 서비스가 제공되고 있는 상태입니다.
여기서는 표현되지 않으나 실제 사용 상에서 어플리케이션의 state가 DEPLOYED로 출력되는 경우가 있습니다. 이것은 어플리케이션이 MS에 등록(deploy)이 되어 있으나 MS가 기동하지 않은 경우 DEPLOYED로 상태가 표시됩니다. DEPLOYED 상태에서 MS가 기동하게 된다면 RUNNING으로 상태가 변경됩니다.
각각의 상태들은 다음과 같은 연관관계를 갖습니다.
install 버튼은 어플리케이션이 없는 상태에서 INSTALLED로 변경 시킵니다.
인스톨 되어 있는 항목에 대해서 사용하는 deploy버튼을 표시하고 있고 그 버튼에 의해 INSTALLED에서 RUNNING까지 바로 상태를 변경시킵니다.
deploy -path는 리스트 상단에 존재하는 deploy버튼을 표시하고 있고 그 버튼은 어플리케이션이 없는 상태에 바로 RUNNING까지 상태를 변경시킵니다.
distribute는 따로 버튼으로는 존재하진 않으나 deploy시 옵션을 통해서 해당 동작을 실시할 수 있습니다.
(distribute -path는 deploy -path에서 옵션으로 실시할 수 있다.)
start와 stop 버튼은 RUNNING과 DISTRIBUTE 간의 동작을 가능하게 합니다.
undeploy는 여러개가 존재하는데, RUNNING이나 DESTRIBUTE 상태에 상관 없이 바로 INSTALLED 상태로 변경합니다.
(deploy -path를 통해 deploy된 어플리케이션은 없는 상태로 변경됩니다.)
uninstall은 INSTALLED 상태인 어플리케이션을 제거하는 버튼으로 DISTRIBUTE나 RUNNING 상태인 경우는 동작하지 않습니다.
지금까지 다양한 WAS들의 Applcation Deploy 방법에 대해 알아보았습니다. 해당 정보들을 참고로 윈백을 수행하거나, 문제 발생 시 장애처리에 활용할 수 있었으면 합니다.
고맙습니다.
'④ 미들웨어' 카테고리의 다른 글
[WAS] 각 벤더사 별 주요 환경파일 분석 (0) | 2018.08.27 |
---|---|
[Web Application Server] Architecture (WEB / WAS 부문) (5) | 2018.08.27 |
[ETC] SSL vs TLS 차이점 및 확인방안 (0) | 2018.06.18 |
[Web Application Server] 전환 절차서 (WAS Winback 수행 절차) (0) | 2018.05.31 |
[Tuxedo] 설치 및 JTC fail over, fail back 테스트 (0) | 2018.03.25 |
- Total
- Today
- Yesterday
- 마이크로서비스
- API Gateway
- nodejs
- TA
- kubernetes
- k8s
- 마이크로서비스 아키텍처
- webtob
- 오픈스택
- aa
- JEUS7
- OpenStack
- MSA
- Da
- apache
- Architecture
- node.js
- openstack token issue
- SWA
- JBoss
- 쿠버네티스
- aws
- 아키텍처
- Docker
- jeus
- openstack tenant
- git
- SA
- wildfly
- JEUS6
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |