SlideShare a Scribd company logo
1 of 25
JBoss EAP on Azure App Service
(Azure App Service를 사용한 JBoss EAP 프로젝트)
| PS본부 성동호 부장
| 2021.10
JBoss EAP on Azure App Service
⁻ 왜 JBoss & Azure로 개발하는가?
⁻ JBoss EAP & Wildfly
⁻ Azure App Service
⁻ Eclipse
⁻ Git & Github
1. 개발 환경 소개
⁻ Eclipse & Maven
⁻ Eclipse & GIT
⁻ Eclipse & JBoss
⁻ Eclipse & Github
2. 개발 & 형상관리
⁻ Azure App Service 설정
⁻ Database 설정
⁻ JBoss & Github 설정
⁻ JBoss Datasource 설정
3. 인프라 설정
⁻ 배포 (Deploy)
⁻ 테스트 페이지 확인
⁻ 수정 재배포
⁻ Q & A
4. 서비스 배포
들어가기에 앞서 JBoss EAP란?
1.
⁻ 왜 JBoss & Azure 로 개발하는가?
⁻ JBoss EAP & Wildfly
⁻ Azure App Service
⁻ Eclipse
⁻ Git & Github
개발 환경 소개
왜 JBoss & Azure로 개발하는가?
기존 방식 VS 오픈소스 & Azure 방식
✓ 기존 방식
• 개발자 PC -> 저장소 & 형상관리 시스템 구축 (비용/소요시간 발생)
• 저장소 -> 스테이징 시스템 구축 (비용/소요시간 발생)
• 저장소 -> 실운용 시스템 구축 (비용/소요시간 발생)
• 구축 후 각 SW 구입 설치/설정 (비용/소요시간 발생)
• 기타 소요 비용 ( 네트워크, 방화벽, 도메인, 인증서, 시스템 폐기/재할당 비용 등등 )
• 기타 소요 시간 ( 부서간 협조, HW 불량시 교체 시간, 서버 자원 할당 요청 등등)
✓ JBoss & Azure 방식
• Java EE Full 스펙이며 가장 쉽게 접근할 수 있는 WAS
• 기업환경에 맞는 성능과 안정성, 지원 조직을 가진 오픈소스 WAS
• 개발자 PC만 준비하면 모든 것이 완료 (이클립스, Git, Github, Azure 인프라)
• Github / Azure를 사용한 손쉬운 자동화 CI/CD
• Azure 에서 필요한 SW를 선택하면 인프라 설치완료 (자원 크기, 사용 시간에 따라 차등유료)
• Azure로 테스트에 집중
1. 개발 환경 소개
JBoss EAP & Wildfly
대표적인 오픈소스 WAS
✓ Red Hat 사의 대표 오픈소스 Web Application Server
✓ JAVE EE 8 스펙 전체 지원 ( JSR 366 )
• 엠베디드 웹서버 (JSP/Servlet 컨테이너), 캐쉬, 클러스터링, 트랜젝션, 메시징, EJB, RESTful Webservice, Websocket,
✓ Tomcat의 경우 JAVA EE 스펙에서 JSP & Servlet 부분만 구현
✓ 현재 JAVA EE 는 JAKARTA EE로 변경 ( 관리 주체 변경 )
✓ JBoss 7.3 부터 JAKARTA EE 지원
✓ 커뮤니티 버전인 Wildfly의 사용자 경험을 기반으로, 기업이 안정적으로 사용할 수는 기업 버전인 JBoss EAP 출시
1. 개발 환경 소개
Azure App Service
MS 클라우드 컴퓨팅 플랫폼 소개
✓ Microsoft 클라우드 컴퓨팅 플랫폼 및 인프라스트럭처 서비스
✓ Azure App Service를 사용하면 모든 플랫폼 또는 디바이스에서 엔터프라이즈급 웹 및 Mobile Apps를 쉽고 빠르게 만들
고 확장성 및 안정성이 뛰어난 클라우드 인프라를 배포할 수 있게 해주는 통합 Cloud Service로 앱을 보다 빠르게 만들
수 있습니다. - MS Azure App Service 소개문
✓ Node.js, ASP.NET, .NET Core, Python, Java, PHP - 지원 언어 ( 이외 다수 지원 )
✓ 개발자는 소스코드만 개발하고 나머지는 Azure에서 인프라(HW/SW) 모두 제공 - DevOps, PaaS 개념
✓ App Service 이외에서 전통적인 VM 환경도 지원, SaaS도 지원
1. 개발 환경 소개
Eclipse
오픈소스 대표 개발툴 이클립스 소개
✓ 이클립스 재단에서 만든 JAVA 기반 통합환경개발툴
✓ 여러 OS / 개발언어를 한번 실행으로 개발지원 ( 복수 툴 실행 불필요 )
✓ 방대한 플러그인 지원 ( C, C++, Python, Ruby, Portran, PHP, Action Script, Apatana )
✓ 크로스 컴파일 지원
✓ JRE 내장
✓ JBoss EAP / Wildfly / Tomcat 등 실행환경을 직접 관리 (다운로드/실행/배포)
1. 개발 환경 소개
Git & Github
오픈소스 대표 버전관리시스템 소개
✓ Git : 리누스 토르발스가 개발한 분산형 버전관리시스템 (또는 형상관리시스템)
✓ Git : 빠른 속도, 분산형 저장소 지원, 가벼운 브랜치, 병합 구조
✓ Git : 로컬 레포지토리 (저장소) 지원으로 오프라인에서 개발 가능, 이후 원격 저장소에 업데이트
✓ Github : 대표적인 무료 Git 저장소, https/ssh 지원, Github Action (CI/CD 워크플로우 자동화 기능) 지원
✓ Github : 2018.6.4 MS에서 Github를 인수
1. 개발 환경 소개
2.
⁻ 개발 프로세스
⁻ Eclipse & Maven
⁻ Eclipse & Git
⁻ Eclipse & JBoss
⁻ Eclipse & Github
개발 & 형상관리
개발 프로세스
이클립스, Github 를 사용한 프로세스 요약
✓ 이클립스에서 Maven Project 생성 후 코딩
✓ 생성된 코드를 로컬 JBoss에서 테스트
✓ 생성된 소스를 Git 로컬 레포지토리에 저장
✓ Git 로컬 레포지토리에 있는 코드를 Github에 저장
✓ Azure App Service 에서 JBoss 리소스 생성
✓ Azure App Service가 Github에서 Maven install 명령을 수행 후 생성된 war 파일을 가져와서 JBoss에 deploy 수행
2. 개발 & 형상관리
Eclipse & Maven
이클립스에서 샘플 프로젝트를 생성
✓ New -> Project -> Maven Project -> packaging war / 기타정보 입력 -> Finish
✓ webapp/index.jsp 생성
✓ webapp/WEB-INF/jboss-web.xml 생성
✓ webapp/WEB-INF/web.xml 생성
✓ 참고사항 1) 이클립스 프로젝트 생성 전 모든 파일 인코딩이 UTF-8로 설정 변경 필요 (윈도우인 경우)
✓ 참고사항 2) 이클립스 Maven 프로젝트 생성 후 JAVA 버전 1.8로 설정 변경 필요 (Java Build Path / Project Facets)
2. 개발 & 형상관리
Eclipse & Git
이클립스 샘플 코드를 생성 후 Git local repository에 저장
✓ 이클립스 개발툴에 생성된 Maven Project를 선택
✓ 팀 -> 쉐어 프로젝트-> Configure Git Repository -> Create ... -> Finish
✓ Use or create repository in parent folder of project 체크 : workspace에 프로젝트명으로 레포지토리 생성
✓ 참고사항 : 저장소/프로젝트명/프로젝트명으로 생성되지 않게 주의
2. 개발 & 형상관리
Eclipse & JBoss
생성된 샘플 프로젝트를 개발 머신의 JBoss에서 테스트
✓ 생성 프로젝트 -> Run On Server -> JBoss EAP 또는 Wildfly 선택
✓ 웹브라우저로 생성 페이지 확인
✓ jboss-web.xml 에 사용할 context 네임을 기술(예: /fp1), 없을 경우 war 파일명을 따라감
✓ jboss-web.xml 사용 시 http://localhost:8080/fp1 , 없을 경우 http://localhost:8080/fp1-0.0.1-SNAPSHOT
✓ 만약 루트 컨텍스트네임 (도메인명만으로 바로 실행이 필요한 경우) "/" 로 기술
2. 개발 & 형상관리
Eclipse & Github
Git local repositor에 저장된 프로젝트를 Github에 올림
✓ github.com 에서 생성된 계정에 로그인
✓ 패스워드를 대신할 토큰 생성
✓ Create New Repository 생성 후 이클립스에서 생성한 프로젝트와 동일한 Repository 생성
✓ 이클립스에서 생성한 프로젝트를 commit & push 선택 후 웹브라우저로 업로드된 파일 확인
✓ origin, URI, 접속정보 입력
✓ 접속정보의 User는 이메일주소 형식
✓ Password는 Gihub / Settings / Developer settings 에서 생성된 토큰값
2. 개발 & 형상관리
3.
⁻ Azure App Service 설정
⁻ Database 설정
⁻ JBoss & Github 설정
⁻ JBoss Datasource 설정
인프라 설정
Azure App Service 설정
App Service 만들기
✓ 홈 > App Services > App Service 만들기
✓ 구독 ㄴ 리소스 그룹 > 이름 (하위도메인 네임) > 게시 (코드) > 런타임 스택 (java 8) > Java 웹서버 스택 (JBoss EAP 7)
✓ 운영 체제 (Linux) > 지역 (Korea Central) > 검토 + 만들기 > 만들기
✓ 기본 웹앱 배포 1분 정도 소요
✓ 리소스로 이동 -> 오른쪽 상단 URL 확인
3. 인프라 설정
JBoss & Github 설정
초기 상태인 App Service에 Github 연결
✓ 좌측 메뉴 중간 > 배포 센터
✓ 소스 : 지속적인 배포 ( CI/CD ) -> GitHub 선택
✓ 다음으로 로그인 : Github 유저 정보 입력
✓ 조직 : 유저명, 리포지토리 : 개발 소스 저장소 선택, 분기 : 마스터
✓ 최상단 메뉴 저장 클릭 -> 배포 작업 바로 수행 -> 좌측 메뉴 상단 개요 클릭
3. 인프라 설정
Database 설정
WAS에 필요한 MySQL 생성
✓ Portal > 리소스 만들기 > Azure Database for MySQL > 단일 서버 > 기본 정보 입력 > 만들기
• 연결 보안 > 퍼블릭 네트워크 액세스 거부 (아니요) > Azure 서비스 방문 허용 (예)
・ 방화벽 규칙에 현재 사용 IP 등록
・ SSL 연결 적용 (사용 안함)
• 연결 문자열에서 JBoss에서 사용할 JDBC 문자열을 확인
3. 인프라 설정
JBoss Datasource 설정
Azure App Service JBoss에서 Datasource 생성 방법을 기술
✓ FTP 또는 사용가능한 방법으로 /home/site/deployments/tools/ 아래에
✓ start_script.sh, mysql-module.xml, mysql-driver.jar, jboss.cli 업로드
✓ Portal > App Service > 생성 리소스명 > 구성 > 일반 설정 > 시작 명령
✓ /home/site/deployments/tools/startup_script.sh 등록 > 저장
3. 인프라 설정
4.
⁻ 배포 (Deploy)
⁻ 테스트 페이지 확인
⁻ 수정 재배포
⁻ Q & A
서비스 배포
배포 (Deploy)
개발툴에서 서비스
✓ Github commit 시 즉시 반영
✓ 스테이지 슬롯 사용 권장
4. 서비스 배포
Test Page 확인
웹브라우저로 배포된 소스를 확인
✓ 웹브라우저 확인
✓ 도메인만으로 접속 확인
✓ 도메인 확인 페이지 확인
4. 서비스 배포
수정 재배포
변경 사항이 반영되는 것을 확인 후 수동 재배포
✓ jsp 파일 변경 후 Github commit 시 자동 재배포, 자동 반영
✓ 수정 사항을 웹브라우저로 확인
✓ jboss-web.xml 변경 시 수동 재배포 필요
✓ 수동 재배포를 확인
4. 서비스 배포
Thank you
www.rockplace.co.kr

More Related Content

What's hot

JBoss EAP on Azure Workshop
JBoss EAP on Azure Workshop JBoss EAP on Azure Workshop
JBoss EAP on Azure Workshop rockplace
 
[오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMX
[오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMX[오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMX
[오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMXJi-Woong Choi
 
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble ShootingJi-Woong Choi
 
02.JBOSS EAP7(FOR CONTAINER/CLOUD)
02.JBOSS EAP7(FOR CONTAINER/CLOUD)02.JBOSS EAP7(FOR CONTAINER/CLOUD)
02.JBOSS EAP7(FOR CONTAINER/CLOUD)Opennaru, inc.
 
[오픈소스컨설팅]스카우터엑스 소개
[오픈소스컨설팅]스카우터엑스 소개[오픈소스컨설팅]스카우터엑스 소개
[오픈소스컨설팅]스카우터엑스 소개Open Source Consulting
 
[오픈소스컨설팅]Spring 3.1 Core
[오픈소스컨설팅]Spring 3.1 Core [오픈소스컨설팅]Spring 3.1 Core
[오픈소스컨설팅]Spring 3.1 Core Ji-Woong Choi
 
[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration Guide[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration GuideJi-Woong Choi
 
[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6
[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6
[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6Ji-Woong Choi
 
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)Osc Osc
 
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea CloudJude Kim
 
[오픈소스컨설팅]유닉스의 리눅스 마이그레이션 전략_v3
[오픈소스컨설팅]유닉스의 리눅스 마이그레이션 전략_v3[오픈소스컨설팅]유닉스의 리눅스 마이그레이션 전략_v3
[오픈소스컨설팅]유닉스의 리눅스 마이그레이션 전략_v3Ji-Woong Choi
 
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법Ji-Woong Choi
 
오픈소스 WAS를 위한 클러스터 솔루션 - OPENMARU Cluster
오픈소스 WAS를 위한 클러스터 솔루션 - OPENMARU Cluster오픈소스 WAS를 위한 클러스터 솔루션 - OPENMARU Cluster
오픈소스 WAS를 위한 클러스터 솔루션 - OPENMARU ClusterOpennaru, inc.
 
[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱NAVER D2
 
20141229 dklee docker
20141229 dklee docker20141229 dklee docker
20141229 dklee dockerDK Lee
 
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1Ji-Woong Choi
 
[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance TuningJi-Woong Choi
 

What's hot (17)

JBoss EAP on Azure Workshop
JBoss EAP on Azure Workshop JBoss EAP on Azure Workshop
JBoss EAP on Azure Workshop
 
[오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMX
[오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMX[오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMX
[오픈소스컨설팅]JBoss AS7/EAP6 - JMS and JMX
 
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
[오픈소스컨설팅]Day #3 MySQL Monitoring, Trouble Shooting
 
02.JBOSS EAP7(FOR CONTAINER/CLOUD)
02.JBOSS EAP7(FOR CONTAINER/CLOUD)02.JBOSS EAP7(FOR CONTAINER/CLOUD)
02.JBOSS EAP7(FOR CONTAINER/CLOUD)
 
[오픈소스컨설팅]스카우터엑스 소개
[오픈소스컨설팅]스카우터엑스 소개[오픈소스컨설팅]스카우터엑스 소개
[오픈소스컨설팅]스카우터엑스 소개
 
[오픈소스컨설팅]Spring 3.1 Core
[오픈소스컨설팅]Spring 3.1 Core [오픈소스컨설팅]Spring 3.1 Core
[오픈소스컨설팅]Spring 3.1 Core
 
[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration Guide[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration Guide
 
[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6
[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6
[오픈소스컨설팅]Data Source Password Encryption on JBoss EAP 6
 
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)
[오픈소스컨설팅] Atlassian webinar 기본 트러블슈팅(1 of 2)
 
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
 
[오픈소스컨설팅]유닉스의 리눅스 마이그레이션 전략_v3
[오픈소스컨설팅]유닉스의 리눅스 마이그레이션 전략_v3[오픈소스컨설팅]유닉스의 리눅스 마이그레이션 전략_v3
[오픈소스컨설팅]유닉스의 리눅스 마이그레이션 전략_v3
 
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
[오픈소스컨설팅]Day #1 MySQL 엔진소개, 튜닝, 백업 및 복구, 업그레이드방법
 
오픈소스 WAS를 위한 클러스터 솔루션 - OPENMARU Cluster
오픈소스 WAS를 위한 클러스터 솔루션 - OPENMARU Cluster오픈소스 WAS를 위한 클러스터 솔루션 - OPENMARU Cluster
오픈소스 WAS를 위한 클러스터 솔루션 - OPENMARU Cluster
 
[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱
 
20141229 dklee docker
20141229 dklee docker20141229 dklee docker
20141229 dklee docker
 
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
[오픈소스컨설팅]Nginx 1.2.7 설치가이드__v1
 
[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning
 

Similar to JBoss EAP on Azure

[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기Youngjae Kim
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기SeungYong Baek
 
공간정보아카데미 - Day1 오픈소스개발 일반
공간정보아카데미 - Day1 오픈소스개발 일반공간정보아카데미 - Day1 오픈소스개발 일반
공간정보아카데미 - Day1 오픈소스개발 일반BJ Jang
 
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트Dae Kim
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: YeomanJae Sung Park
 
클라이드 네이티브 기반 Twelve Factor 앱 개발 - 윤석찬, AWS 테크에반젤리스트 :: AWS Summit Online Kore...
클라이드 네이티브 기반 Twelve Factor 앱 개발 - 윤석찬, AWS 테크에반젤리스트 :: AWS Summit Online Kore...클라이드 네이티브 기반 Twelve Factor 앱 개발 - 윤석찬, AWS 테크에반젤리스트 :: AWS Summit Online Kore...
클라이드 네이티브 기반 Twelve Factor 앱 개발 - 윤석찬, AWS 테크에반젤리스트 :: AWS Summit Online Kore...Amazon Web Services Korea
 
Spring boot + java 에코시스템 #1
Spring boot + java 에코시스템 #1Spring boot + java 에코시스템 #1
Spring boot + java 에코시스템 #1SeungHa Eom
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyondJae Sung Park
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발Jinuk Kim
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재Hankyo
 
Firebase for web (웹개발을 위한 파이어베이스) 3 Real-Time Database
Firebase for web (웹개발을 위한 파이어베이스) 3 Real-Time DatabaseFirebase for web (웹개발을 위한 파이어베이스) 3 Real-Time Database
Firebase for web (웹개발을 위한 파이어베이스) 3 Real-Time Database승빈이네 공작소
 
JMI Techtalk : Backend.AI
JMI Techtalk : Backend.AIJMI Techtalk : Backend.AI
JMI Techtalk : Backend.AILablup Inc.
 
리눅스서버세팅-김태호
리눅스서버세팅-김태호리눅스서버세팅-김태호
리눅스서버세팅-김태호ETRIBE_STG
 
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석Amazon Web Services Korea
 
웹 IDE 비교
웹 IDE 비교웹 IDE 비교
웹 IDE 비교Junyoung Lee
 
Internship backend
Internship backendInternship backend
Internship backendYein Sim
 
Spring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodeSpring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodedpTablo
 
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)TOAST_NHNent
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래NAVER D2
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기JinKwon Lee
 

Similar to JBoss EAP on Azure (20)

[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기
 
DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기DevOps - CI/CD 알아보기
DevOps - CI/CD 알아보기
 
공간정보아카데미 - Day1 오픈소스개발 일반
공간정보아카데미 - Day1 오픈소스개발 일반공간정보아카데미 - Day1 오픈소스개발 일반
공간정보아카데미 - Day1 오픈소스개발 일반
 
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
모바일 게임과 앱을 위한 오픈소스 게임서버 엔진 프로젝트 CloudBread 프로젝트
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman
 
클라이드 네이티브 기반 Twelve Factor 앱 개발 - 윤석찬, AWS 테크에반젤리스트 :: AWS Summit Online Kore...
클라이드 네이티브 기반 Twelve Factor 앱 개발 - 윤석찬, AWS 테크에반젤리스트 :: AWS Summit Online Kore...클라이드 네이티브 기반 Twelve Factor 앱 개발 - 윤석찬, AWS 테크에반젤리스트 :: AWS Summit Online Kore...
클라이드 네이티브 기반 Twelve Factor 앱 개발 - 윤석찬, AWS 테크에반젤리스트 :: AWS Summit Online Kore...
 
Spring boot + java 에코시스템 #1
Spring boot + java 에코시스템 #1Spring boot + java 에코시스템 #1
Spring boot + java 에코시스템 #1
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyond
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재
 
Firebase for web (웹개발을 위한 파이어베이스) 3 Real-Time Database
Firebase for web (웹개발을 위한 파이어베이스) 3 Real-Time DatabaseFirebase for web (웹개발을 위한 파이어베이스) 3 Real-Time Database
Firebase for web (웹개발을 위한 파이어베이스) 3 Real-Time Database
 
JMI Techtalk : Backend.AI
JMI Techtalk : Backend.AIJMI Techtalk : Backend.AI
JMI Techtalk : Backend.AI
 
리눅스서버세팅-김태호
리눅스서버세팅-김태호리눅스서버세팅-김태호
리눅스서버세팅-김태호
 
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
AWS Summit Seoul 2015 - AWS를 통한 게임 운영의 정석
 
웹 IDE 비교
웹 IDE 비교웹 IDE 비교
웹 IDE 비교
 
Internship backend
Internship backendInternship backend
Internship backend
 
Spring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCodeSpring Boot + React + Gradle in VSCode
Spring Boot + React + Gradle in VSCode
 
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)TOAST Meetup2015 - 구름 Cloud IDE (류성태)
TOAST Meetup2015 - 구름 Cloud IDE (류성태)
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
 

More from rockplace

MySQL InnoDB Cluster 소개
MySQL InnoDB Cluster 소개MySQL InnoDB Cluster 소개
MySQL InnoDB Cluster 소개rockplace
 
락플레이스 OpenShift Q&A 토크쇼 발표자료
락플레이스 OpenShift Q&A 토크쇼 발표자료락플레이스 OpenShift Q&A 토크쇼 발표자료
락플레이스 OpenShift Q&A 토크쇼 발표자료rockplace
 
MySQL operator for_kubernetes
MySQL operator for_kubernetesMySQL operator for_kubernetes
MySQL operator for_kubernetesrockplace
 
[락플레이스] RHEL8.4 웨비나 발표자료
[락플레이스] RHEL8.4 웨비나 발표자료 [락플레이스] RHEL8.4 웨비나 발표자료
[락플레이스] RHEL8.4 웨비나 발표자료 rockplace
 
DB Migration to Azure Database for PostgreSQL
DB Migration to Azure Database for PostgreSQLDB Migration to Azure Database for PostgreSQL
DB Migration to Azure Database for PostgreSQLrockplace
 
DB Migration to Azure Database for MySQL
DB Migration to Azure Database for MySQLDB Migration to Azure Database for MySQL
DB Migration to Azure Database for MySQLrockplace
 
Azure Databases for PostgreSQL MYSQL and MariaDB
Azure Databases for PostgreSQL MYSQL and MariaDBAzure Databases for PostgreSQL MYSQL and MariaDB
Azure Databases for PostgreSQL MYSQL and MariaDBrockplace
 
Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성 Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성 rockplace
 
DB Migration to Azure Database for PostgreSQL
DB Migration to Azure Database for PostgreSQLDB Migration to Azure Database for PostgreSQL
DB Migration to Azure Database for PostgreSQLrockplace
 
Azure Database for MySQL
Azure Database for MySQLAzure Database for MySQL
Azure Database for MySQLrockplace
 
Azure databases for PostgreSQL, MySQL and MariaDB
Azure databases for PostgreSQL, MySQL and MariaDB Azure databases for PostgreSQL, MySQL and MariaDB
Azure databases for PostgreSQL, MySQL and MariaDB rockplace
 
Red Hat Openshift Container Platform
Red Hat Openshift Container Platform Red Hat Openshift Container Platform
Red Hat Openshift Container Platform rockplace
 
Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축
Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축
Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축rockplace
 
SQL Server to Azure SQL Database Migration
SQL Server to Azure SQL Database MigrationSQL Server to Azure SQL Database Migration
SQL Server to Azure SQL Database Migrationrockplace
 
Azure SQL Database
Azure SQL DatabaseAzure SQL Database
Azure SQL Databaserockplace
 
Migration to Azure Database for MySQL
Migration to Azure Database for MySQLMigration to Azure Database for MySQL
Migration to Azure Database for MySQLrockplace
 
Azure Databases for PostgreSQL, MySQL and MariaDB
Azure Databases for PostgreSQL, MySQL and MariaDBAzure Databases for PostgreSQL, MySQL and MariaDB
Azure Databases for PostgreSQL, MySQL and MariaDBrockplace
 
Openshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud NativeOpenshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud Nativerockplace
 
애플리케이션 최적화를 위한 컨테이너 인프라 구축
애플리케이션 최적화를 위한 컨테이너 인프라 구축애플리케이션 최적화를 위한 컨테이너 인프라 구축
애플리케이션 최적화를 위한 컨테이너 인프라 구축rockplace
 
RHEL8의 새로운 기술, 그리고 SQL Server 2019와 함께하는 다양한 이점
RHEL8의 새로운 기술, 그리고 SQL Server 2019와 함께하는 다양한 이점RHEL8의 새로운 기술, 그리고 SQL Server 2019와 함께하는 다양한 이점
RHEL8의 새로운 기술, 그리고 SQL Server 2019와 함께하는 다양한 이점rockplace
 

More from rockplace (20)

MySQL InnoDB Cluster 소개
MySQL InnoDB Cluster 소개MySQL InnoDB Cluster 소개
MySQL InnoDB Cluster 소개
 
락플레이스 OpenShift Q&A 토크쇼 발표자료
락플레이스 OpenShift Q&A 토크쇼 발표자료락플레이스 OpenShift Q&A 토크쇼 발표자료
락플레이스 OpenShift Q&A 토크쇼 발표자료
 
MySQL operator for_kubernetes
MySQL operator for_kubernetesMySQL operator for_kubernetes
MySQL operator for_kubernetes
 
[락플레이스] RHEL8.4 웨비나 발표자료
[락플레이스] RHEL8.4 웨비나 발표자료 [락플레이스] RHEL8.4 웨비나 발표자료
[락플레이스] RHEL8.4 웨비나 발표자료
 
DB Migration to Azure Database for PostgreSQL
DB Migration to Azure Database for PostgreSQLDB Migration to Azure Database for PostgreSQL
DB Migration to Azure Database for PostgreSQL
 
DB Migration to Azure Database for MySQL
DB Migration to Azure Database for MySQLDB Migration to Azure Database for MySQL
DB Migration to Azure Database for MySQL
 
Azure Databases for PostgreSQL MYSQL and MariaDB
Azure Databases for PostgreSQL MYSQL and MariaDBAzure Databases for PostgreSQL MYSQL and MariaDB
Azure Databases for PostgreSQL MYSQL and MariaDB
 
Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성 Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성
 
DB Migration to Azure Database for PostgreSQL
DB Migration to Azure Database for PostgreSQLDB Migration to Azure Database for PostgreSQL
DB Migration to Azure Database for PostgreSQL
 
Azure Database for MySQL
Azure Database for MySQLAzure Database for MySQL
Azure Database for MySQL
 
Azure databases for PostgreSQL, MySQL and MariaDB
Azure databases for PostgreSQL, MySQL and MariaDB Azure databases for PostgreSQL, MySQL and MariaDB
Azure databases for PostgreSQL, MySQL and MariaDB
 
Red Hat Openshift Container Platform
Red Hat Openshift Container Platform Red Hat Openshift Container Platform
Red Hat Openshift Container Platform
 
Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축
Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축
Azure Red Hat OpenShift 를 통한 더 빠르고 쉬운 애플리케이션 구축
 
SQL Server to Azure SQL Database Migration
SQL Server to Azure SQL Database MigrationSQL Server to Azure SQL Database Migration
SQL Server to Azure SQL Database Migration
 
Azure SQL Database
Azure SQL DatabaseAzure SQL Database
Azure SQL Database
 
Migration to Azure Database for MySQL
Migration to Azure Database for MySQLMigration to Azure Database for MySQL
Migration to Azure Database for MySQL
 
Azure Databases for PostgreSQL, MySQL and MariaDB
Azure Databases for PostgreSQL, MySQL and MariaDBAzure Databases for PostgreSQL, MySQL and MariaDB
Azure Databases for PostgreSQL, MySQL and MariaDB
 
Openshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud NativeOpenshift 활용을 위한 Application의 준비, Cloud Native
Openshift 활용을 위한 Application의 준비, Cloud Native
 
애플리케이션 최적화를 위한 컨테이너 인프라 구축
애플리케이션 최적화를 위한 컨테이너 인프라 구축애플리케이션 최적화를 위한 컨테이너 인프라 구축
애플리케이션 최적화를 위한 컨테이너 인프라 구축
 
RHEL8의 새로운 기술, 그리고 SQL Server 2019와 함께하는 다양한 이점
RHEL8의 새로운 기술, 그리고 SQL Server 2019와 함께하는 다양한 이점RHEL8의 새로운 기술, 그리고 SQL Server 2019와 함께하는 다양한 이점
RHEL8의 새로운 기술, 그리고 SQL Server 2019와 함께하는 다양한 이점
 

Recently uploaded

MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 

Recently uploaded (6)

MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 

JBoss EAP on Azure

  • 1. JBoss EAP on Azure App Service (Azure App Service를 사용한 JBoss EAP 프로젝트) | PS본부 성동호 부장 | 2021.10
  • 2. JBoss EAP on Azure App Service ⁻ 왜 JBoss & Azure로 개발하는가? ⁻ JBoss EAP & Wildfly ⁻ Azure App Service ⁻ Eclipse ⁻ Git & Github 1. 개발 환경 소개 ⁻ Eclipse & Maven ⁻ Eclipse & GIT ⁻ Eclipse & JBoss ⁻ Eclipse & Github 2. 개발 & 형상관리 ⁻ Azure App Service 설정 ⁻ Database 설정 ⁻ JBoss & Github 설정 ⁻ JBoss Datasource 설정 3. 인프라 설정 ⁻ 배포 (Deploy) ⁻ 테스트 페이지 확인 ⁻ 수정 재배포 ⁻ Q & A 4. 서비스 배포
  • 4. 1. ⁻ 왜 JBoss & Azure 로 개발하는가? ⁻ JBoss EAP & Wildfly ⁻ Azure App Service ⁻ Eclipse ⁻ Git & Github 개발 환경 소개
  • 5. 왜 JBoss & Azure로 개발하는가? 기존 방식 VS 오픈소스 & Azure 방식 ✓ 기존 방식 • 개발자 PC -> 저장소 & 형상관리 시스템 구축 (비용/소요시간 발생) • 저장소 -> 스테이징 시스템 구축 (비용/소요시간 발생) • 저장소 -> 실운용 시스템 구축 (비용/소요시간 발생) • 구축 후 각 SW 구입 설치/설정 (비용/소요시간 발생) • 기타 소요 비용 ( 네트워크, 방화벽, 도메인, 인증서, 시스템 폐기/재할당 비용 등등 ) • 기타 소요 시간 ( 부서간 협조, HW 불량시 교체 시간, 서버 자원 할당 요청 등등) ✓ JBoss & Azure 방식 • Java EE Full 스펙이며 가장 쉽게 접근할 수 있는 WAS • 기업환경에 맞는 성능과 안정성, 지원 조직을 가진 오픈소스 WAS • 개발자 PC만 준비하면 모든 것이 완료 (이클립스, Git, Github, Azure 인프라) • Github / Azure를 사용한 손쉬운 자동화 CI/CD • Azure 에서 필요한 SW를 선택하면 인프라 설치완료 (자원 크기, 사용 시간에 따라 차등유료) • Azure로 테스트에 집중 1. 개발 환경 소개
  • 6. JBoss EAP & Wildfly 대표적인 오픈소스 WAS ✓ Red Hat 사의 대표 오픈소스 Web Application Server ✓ JAVE EE 8 스펙 전체 지원 ( JSR 366 ) • 엠베디드 웹서버 (JSP/Servlet 컨테이너), 캐쉬, 클러스터링, 트랜젝션, 메시징, EJB, RESTful Webservice, Websocket, ✓ Tomcat의 경우 JAVA EE 스펙에서 JSP & Servlet 부분만 구현 ✓ 현재 JAVA EE 는 JAKARTA EE로 변경 ( 관리 주체 변경 ) ✓ JBoss 7.3 부터 JAKARTA EE 지원 ✓ 커뮤니티 버전인 Wildfly의 사용자 경험을 기반으로, 기업이 안정적으로 사용할 수는 기업 버전인 JBoss EAP 출시 1. 개발 환경 소개
  • 7. Azure App Service MS 클라우드 컴퓨팅 플랫폼 소개 ✓ Microsoft 클라우드 컴퓨팅 플랫폼 및 인프라스트럭처 서비스 ✓ Azure App Service를 사용하면 모든 플랫폼 또는 디바이스에서 엔터프라이즈급 웹 및 Mobile Apps를 쉽고 빠르게 만들 고 확장성 및 안정성이 뛰어난 클라우드 인프라를 배포할 수 있게 해주는 통합 Cloud Service로 앱을 보다 빠르게 만들 수 있습니다. - MS Azure App Service 소개문 ✓ Node.js, ASP.NET, .NET Core, Python, Java, PHP - 지원 언어 ( 이외 다수 지원 ) ✓ 개발자는 소스코드만 개발하고 나머지는 Azure에서 인프라(HW/SW) 모두 제공 - DevOps, PaaS 개념 ✓ App Service 이외에서 전통적인 VM 환경도 지원, SaaS도 지원 1. 개발 환경 소개
  • 8. Eclipse 오픈소스 대표 개발툴 이클립스 소개 ✓ 이클립스 재단에서 만든 JAVA 기반 통합환경개발툴 ✓ 여러 OS / 개발언어를 한번 실행으로 개발지원 ( 복수 툴 실행 불필요 ) ✓ 방대한 플러그인 지원 ( C, C++, Python, Ruby, Portran, PHP, Action Script, Apatana ) ✓ 크로스 컴파일 지원 ✓ JRE 내장 ✓ JBoss EAP / Wildfly / Tomcat 등 실행환경을 직접 관리 (다운로드/실행/배포) 1. 개발 환경 소개
  • 9. Git & Github 오픈소스 대표 버전관리시스템 소개 ✓ Git : 리누스 토르발스가 개발한 분산형 버전관리시스템 (또는 형상관리시스템) ✓ Git : 빠른 속도, 분산형 저장소 지원, 가벼운 브랜치, 병합 구조 ✓ Git : 로컬 레포지토리 (저장소) 지원으로 오프라인에서 개발 가능, 이후 원격 저장소에 업데이트 ✓ Github : 대표적인 무료 Git 저장소, https/ssh 지원, Github Action (CI/CD 워크플로우 자동화 기능) 지원 ✓ Github : 2018.6.4 MS에서 Github를 인수 1. 개발 환경 소개
  • 10. 2. ⁻ 개발 프로세스 ⁻ Eclipse & Maven ⁻ Eclipse & Git ⁻ Eclipse & JBoss ⁻ Eclipse & Github 개발 & 형상관리
  • 11. 개발 프로세스 이클립스, Github 를 사용한 프로세스 요약 ✓ 이클립스에서 Maven Project 생성 후 코딩 ✓ 생성된 코드를 로컬 JBoss에서 테스트 ✓ 생성된 소스를 Git 로컬 레포지토리에 저장 ✓ Git 로컬 레포지토리에 있는 코드를 Github에 저장 ✓ Azure App Service 에서 JBoss 리소스 생성 ✓ Azure App Service가 Github에서 Maven install 명령을 수행 후 생성된 war 파일을 가져와서 JBoss에 deploy 수행 2. 개발 & 형상관리
  • 12. Eclipse & Maven 이클립스에서 샘플 프로젝트를 생성 ✓ New -> Project -> Maven Project -> packaging war / 기타정보 입력 -> Finish ✓ webapp/index.jsp 생성 ✓ webapp/WEB-INF/jboss-web.xml 생성 ✓ webapp/WEB-INF/web.xml 생성 ✓ 참고사항 1) 이클립스 프로젝트 생성 전 모든 파일 인코딩이 UTF-8로 설정 변경 필요 (윈도우인 경우) ✓ 참고사항 2) 이클립스 Maven 프로젝트 생성 후 JAVA 버전 1.8로 설정 변경 필요 (Java Build Path / Project Facets) 2. 개발 & 형상관리
  • 13. Eclipse & Git 이클립스 샘플 코드를 생성 후 Git local repository에 저장 ✓ 이클립스 개발툴에 생성된 Maven Project를 선택 ✓ 팀 -> 쉐어 프로젝트-> Configure Git Repository -> Create ... -> Finish ✓ Use or create repository in parent folder of project 체크 : workspace에 프로젝트명으로 레포지토리 생성 ✓ 참고사항 : 저장소/프로젝트명/프로젝트명으로 생성되지 않게 주의 2. 개발 & 형상관리
  • 14. Eclipse & JBoss 생성된 샘플 프로젝트를 개발 머신의 JBoss에서 테스트 ✓ 생성 프로젝트 -> Run On Server -> JBoss EAP 또는 Wildfly 선택 ✓ 웹브라우저로 생성 페이지 확인 ✓ jboss-web.xml 에 사용할 context 네임을 기술(예: /fp1), 없을 경우 war 파일명을 따라감 ✓ jboss-web.xml 사용 시 http://localhost:8080/fp1 , 없을 경우 http://localhost:8080/fp1-0.0.1-SNAPSHOT ✓ 만약 루트 컨텍스트네임 (도메인명만으로 바로 실행이 필요한 경우) "/" 로 기술 2. 개발 & 형상관리
  • 15. Eclipse & Github Git local repositor에 저장된 프로젝트를 Github에 올림 ✓ github.com 에서 생성된 계정에 로그인 ✓ 패스워드를 대신할 토큰 생성 ✓ Create New Repository 생성 후 이클립스에서 생성한 프로젝트와 동일한 Repository 생성 ✓ 이클립스에서 생성한 프로젝트를 commit & push 선택 후 웹브라우저로 업로드된 파일 확인 ✓ origin, URI, 접속정보 입력 ✓ 접속정보의 User는 이메일주소 형식 ✓ Password는 Gihub / Settings / Developer settings 에서 생성된 토큰값 2. 개발 & 형상관리
  • 16. 3. ⁻ Azure App Service 설정 ⁻ Database 설정 ⁻ JBoss & Github 설정 ⁻ JBoss Datasource 설정 인프라 설정
  • 17. Azure App Service 설정 App Service 만들기 ✓ 홈 > App Services > App Service 만들기 ✓ 구독 ㄴ 리소스 그룹 > 이름 (하위도메인 네임) > 게시 (코드) > 런타임 스택 (java 8) > Java 웹서버 스택 (JBoss EAP 7) ✓ 운영 체제 (Linux) > 지역 (Korea Central) > 검토 + 만들기 > 만들기 ✓ 기본 웹앱 배포 1분 정도 소요 ✓ 리소스로 이동 -> 오른쪽 상단 URL 확인 3. 인프라 설정
  • 18. JBoss & Github 설정 초기 상태인 App Service에 Github 연결 ✓ 좌측 메뉴 중간 > 배포 센터 ✓ 소스 : 지속적인 배포 ( CI/CD ) -> GitHub 선택 ✓ 다음으로 로그인 : Github 유저 정보 입력 ✓ 조직 : 유저명, 리포지토리 : 개발 소스 저장소 선택, 분기 : 마스터 ✓ 최상단 메뉴 저장 클릭 -> 배포 작업 바로 수행 -> 좌측 메뉴 상단 개요 클릭 3. 인프라 설정
  • 19. Database 설정 WAS에 필요한 MySQL 생성 ✓ Portal > 리소스 만들기 > Azure Database for MySQL > 단일 서버 > 기본 정보 입력 > 만들기 • 연결 보안 > 퍼블릭 네트워크 액세스 거부 (아니요) > Azure 서비스 방문 허용 (예) ・ 방화벽 규칙에 현재 사용 IP 등록 ・ SSL 연결 적용 (사용 안함) • 연결 문자열에서 JBoss에서 사용할 JDBC 문자열을 확인 3. 인프라 설정
  • 20. JBoss Datasource 설정 Azure App Service JBoss에서 Datasource 생성 방법을 기술 ✓ FTP 또는 사용가능한 방법으로 /home/site/deployments/tools/ 아래에 ✓ start_script.sh, mysql-module.xml, mysql-driver.jar, jboss.cli 업로드 ✓ Portal > App Service > 생성 리소스명 > 구성 > 일반 설정 > 시작 명령 ✓ /home/site/deployments/tools/startup_script.sh 등록 > 저장 3. 인프라 설정
  • 21. 4. ⁻ 배포 (Deploy) ⁻ 테스트 페이지 확인 ⁻ 수정 재배포 ⁻ Q & A 서비스 배포
  • 22. 배포 (Deploy) 개발툴에서 서비스 ✓ Github commit 시 즉시 반영 ✓ 스테이지 슬롯 사용 권장 4. 서비스 배포
  • 23. Test Page 확인 웹브라우저로 배포된 소스를 확인 ✓ 웹브라우저 확인 ✓ 도메인만으로 접속 확인 ✓ 도메인 확인 페이지 확인 4. 서비스 배포
  • 24. 수정 재배포 변경 사항이 반영되는 것을 확인 후 수동 재배포 ✓ jsp 파일 변경 후 Github commit 시 자동 재배포, 자동 반영 ✓ 수정 사항을 웹브라우저로 확인 ✓ jboss-web.xml 변경 시 수동 재배포 필요 ✓ 수동 재배포를 확인 4. 서비스 배포