1 . 개요

14
- 1 - 서서서 서서 Archive 서서 서서 1. 서서

Upload: justine-chen

Post on 03-Jan-2016

25 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: 1 .  개요

- 1 -서버별 배포 Archive 생성 전략

1. 개요

Page 2: 1 .  개요

- 2 -서버별 배포 Archive 생성 전략

1. 1-1.

...

- ...

Page 3: 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 처리• 파일 자체를 교체

Page 4: 1 .  개요

- 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 별 설정 파일 처리 구현 방안

- ...

Page 5: 1 .  개요

- 5 -서버별 배포 Archive 생성 전략

소스 변경 , 빌드 배포 전략 선택을 위한 의사 결정 가이드

Page 6: 1 .  개요

- 6 -서버별 배포 Archive 생성 전략

1. 1-1.

소스 변경 관련 결정 항목

- ...

Tags, Branches 활용 여부

반영 전 Review

여부

사전 / 사후 Review

소스 코드 변경량

Page 7: 1 .  개요

- 7 -서버별 배포 Archive 생성 전략

1. 1-1.

빌드 배포 관련 의사 결정 항목

- ...

Cleanup 여부

Backup / Restore 활용 여부

Hot De-ploy 여부

전체 , 부분 반영 여부

Page 8: 1 .  개요

- 8 -서버별 배포 Archive 생성 전략

소스 코드 동결 전 Target 별 배포 전략

( 기본 )

Page 9: 1 .  개요

- 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

Page 10: 1 .  개요

- 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

Page 11: 1 .  개요

- 11 -서버별 배포 Archive 생성 전략

소스 코드 동결 전 Target 별 배포 전략

( 응용 )

Page 12: 1 .  개요

- 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

Page 13: 1 .  개요

- 13 -서버별 배포 Archive 생성 전략

소스 코드 동결 후Target 별 배포 전략

( 기본 )

Page 14: 1 .  개요

- 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 ...