1 . 개요
DESCRIPTION
1 . 개요. 1. 1 -1. 1. 1 -1. Environment 별 Web Application 가변 파일 Development, Staging, Production 간 차이가 차이가 발생할 수 있는 파일은 아래와 같음. /**/*.html / js /**/*. js / css /**/*. css /images/**/*.gif /images /**/*.jpg /images /**/*. png / WEB-INF/ jsp /**/*. jsp /WEB-INF/classes/**/*.class - PowerPoint PPT PresentationTRANSCRIPT
- 1 -서버별 배포 Archive 생성 전략
1. 개요
- 2 -서버별 배포 Archive 생성 전략
1. 1-1.
...
- ...
- 3 -서버별 배포 Archive 생성 전략
1. 1-1.
Environment 별 Web Application 가변 파일
- Development, Staging, Production 간 차이가 차이가 발생할 수 있는 파일은 아래와 같음
/**/*.html/js/**/*.js/css/**/*.css/images/**/*.gif/images/**/*.jpg/images/**/*.png/WEB-INF/jsp/**/*.jsp/WEB-INF/classes/**/*.class/WEB-INF/classes/**/*.properties/WEB-INF/**/*.xml/WEB-INF/lib/*.jar
확장자 설명
*.js, *.css JavaScript 파일과 Cascading Style Sheet 파일 참조하는 URL, 파일 정보 등이 달라질 수 있음
• 해당 코드를 JSP 에 포함 , 동적으로 처리• 해당 파일에 Place Holder 를 두고 Filtering 처리• 파일 자체를 교체
*.gif, *.jpg, *.png
이미지 파일Banner, Label 과 같은 이미지가 달라질 수 있음
• 파일 자체를 교체
*.properties Java Properties 파일 • 해당 파일에 Place Holder 를 두고 Filtering 처리• 파일 자체를 교체
*.xml 기타 설정 파일 • 해당 파일에 Place Holder 를 두고 Filtering 처리• 파일 자체를 교체
- 4 -서버별 배포 Archive 생성 전략
1. 1-1.
분류 적용 기법 설정
Replace Ant Filter Task token, value 방식으로 property 를 치환Springframework Property Placeholder Springframework 관련 설정 파일의 property 를 치환Springframework Expression Language
Maven Profile
Maven Resource Filter Text 기반 설정 파일이면 범용적으로 property 를 치환Maven Profile + Resource Filter
Overwrite Tag 설정 파일을 별도의 형상관리 태그로 구분하여 관리Directory 설정 파일을 별도의 디렉토리로 구분하여 관리Project 설정 파일만 별도의 프로젝트를 구성하여 관리
Environment 별 설정 파일 처리 구현 방안
- ...
- 5 -서버별 배포 Archive 생성 전략
소스 변경 , 빌드 배포 전략 선택을 위한 의사 결정 가이드
- 6 -서버별 배포 Archive 생성 전략
1. 1-1.
소스 변경 관련 결정 항목
- ...
Tags, Branches 활용 여부
반영 전 Review
여부
사전 / 사후 Review
소스 코드 변경량
- 7 -서버별 배포 Archive 생성 전략
1. 1-1.
빌드 배포 관련 의사 결정 항목
- ...
Cleanup 여부
Backup / Restore 활용 여부
Hot De-ploy 여부
전체 , 부분 반영 여부
- 8 -서버별 배포 Archive 생성 전략
소스 코드 동결 전 Target 별 배포 전략
( 기본 )
- 9 -서버별 배포 Archive 생성 전략
1. 1-1.
Tag 를 활용한 방법 ( 수동 검증 )
- 수작업 검증을 통한 Tagging 처리- Tester 가 직접 Deploy 된 Web Application 을 테스트하고 성공한 경우 tagging 을 함 - 개발 중인 소스 , 테스트 중인 소스 , 릴리즈된 소스를 분리하여 처리 가능- Tag ID 는 목적에 따라 Milestone, Version, Timestamp 등의 정보를 활용할 수 있음
svn://svnserver/repo
trunk
tags/${TAG_ID}
branches
1. Checkout 2. Build 3. Packaging 4. Deploy
6. Tagging
SCM Server CI Server Development / Stag-ing / Production
Server
Data Flow
Control Flow
Legend
5. Test
- 10 -서버별 배포 Archive 생성 전략
1. 1-1.
Tagging 을 활용하지 않는 방법 ( 수동 검증 )
- 수작업 검증을 통한 Deploy 처리- 개발 중인 동일 소스로 Development,, Staging, Production 용 배포 파일을 생성함- Tester 가 직접 Deploy 된 Web Application 을 테스트하고 성공한 경우 다음 단계 서버에 Deploy 함 - 테스트 실패하면 이후 단계의 서버 배포용 파일을 버림 .
svn://svnserver/repo
trunk
tags
branches
1. Checkout 2. Build 3. Packaging 4. Deploy
5. Test
SCM Server CI Server Development / Stag-ing / Production
Server
Data Flow
Control Flow
Legend
DEV
STG
PRD
- 11 -서버별 배포 Archive 생성 전략
소스 코드 동결 전 Target 별 배포 전략
( 응용 )
- 12 -서버별 배포 Archive 생성 전략
1. 1-1.
Tag 를 활용한 방법 ( 자동 검증 )
- 자동 검증을 통한 Tagging 처리- Test Code 가 Deploy 된 Web Application 을 자동으로 테스트하고 성공한 경우 tagging 을 함- 개발 중인 소스 , 테스트 중인 소스 , 릴리즈된 소스를 분리하여 처리 가능- Tag ID 는 목적에 따라 Milestone, Version, Timestamp 등의 정보를 활용할 수 있음- Test Code 는 기본적인 접속 테스트 , CRUD 테스트 , 모듈 간의 연계 테스트와 같은 정상 동작 점검용으로 사용 (Maven Integration Test Plugin 등을 활용 )
svn://svnserver/repo
trunk
tags/${TAG_ID}
branches
1. Checkout 2. Build 3. Packaging 4. Deploy
5. Test6. Tagging
SCM Server CI Server Development / Stag-ing / Production
Server
Data Flow
Control Flow
Legend
- 13 -서버별 배포 Archive 생성 전략
소스 코드 동결 후Target 별 배포 전략
( 기본 )
- 14 -서버별 배포 Archive 생성 전략
1. 1-1.
Branch/Merging 을 활용한 방법 (Fixes Branch)
- 유지보수나 버그 수정을 위한 Branching 처리 (Maintenance Branch)- 릴리즈된 소스에 대한 수정분만 반영할 수 있도록 하기 위해 개발 중인 미완 소스와 격리 시켜야 할 때 사용- 최종 릴리즈된 소스에서 ( 릴리즈한 tag 에서 ) Branch 를 따되 , 어떤 revision 에서 Branch 시켰는지 알고 있어야 함
svn://svnserver/repo
trunk
tags/${TAG_ID}
branches
1. Checkout 2. Build 3. Packaging 4. Deploy
1. Branching
SCM Server CI Server Development / Stag-ing / Production
Server
Data Flow
Control Flow
Legend
5. Test
TODORelease BranchFeature BranchFixes BranchHotfix ...