Upgrade to Pro — share decks privately, control downloads, hide ads and more …

젠킨스를 이용한 패치 자동화

JungWon2
June 03, 2013
1.3k

젠킨스를 이용한 패치 자동화

JungWon2

June 03, 2013
Tweet

Transcript

  1. 현재 우리 패치 구조 배포 브랜치 머지 서버,클라 컴파일 패키징&

    패치 생성 핵솔루션 적용 업로드 위치 생성 & 압축 etc FTP 업로드 ,SVN 커밋 etc 패치 메일 작성 약 ***ms
  2. 요기까지가 CC로 자동화 배포 브랜치 머지 서버,클라 컴파일 패키징& 패치

    생성 핵솔루션 적용 업로드 위치 생성 & 압축 etc FTP 업로드 ,SVN 커밋 etc 패치 메일 작성 약 ***ms <- 이건 상수로 가정
  3. 사람의 개입이 필요한 부분 배포 브랜치 머지 서버,클라 컴파일 패키징&

    패치 생성 핵솔루션 적용 업로드 위치 생성 & 압축 etc FTP 업로드 ,SVN 커밋 etc 패치 메일 작성 약 ***ms 사실 그 이상 걸림 시작 일하다가 일하다가 일하다가
  4. 배포 브랜치 머지 서버,클라 컴파일 패키징& 패치 생성 핵솔루션 적용

    업로드 위치 생성 & 압축 etc FTP 업로드 ,SVN 커밋 etc 패치 메일 작성 No watch, No Stress 시작 젠킨스로 이렇게 만들자
  5. 배포 브랜치 머지 서버,클라 컴파일 패키징& 패치 생성 핵솔루션 적용

    업로드 위치 생성 & 압축 etc FTP 업로드 ,SVN 커밋 etc 패치 메일 작성 이걸 CC로 만들 수 있을까? 시작
  6. CuiseControl.net이란? • 오픈소스 통합 빌드 환경 서버 • 닷넷 기반,

    IIS 연동 웹, 윈도우용 모니터툴 CCtray • 알다시피 우리가 익히 써왔음.
  7. CuiseControl.net가 정말 좋아? 설정 감지는 좋은데, 모든 job이 멈춤 작업

    많이 했는데, 실수라도 하면… => 툭하면 에러나는 CCtray
  8. CuiseControl.net가 정말 좋아? 다루기 힘든 job 설정 미아가 된 배치파일

    버전 정보를 가공해 ftp 전송하고 메일도 쓰고 싶다면..
  9. 젠킨스(Jenkins)란? • 오픈소스 통합 빌드 환경 서버 • 허드슨 +

    웹서버 • 웹 기반, (CCtray 같은 것 X) • 웹 플러그인 기반 확장(UI에서..) • CC의 기능을 거의 몽땅 지원
  10. 콘솔 출력 과정을 볼 수 있음. 예상시간도 표시해줌 물론, 전

    빌드 시간으로 추정한 거지만, 되는 게 어디야
  11. Job 설정에서 스크립트를 직접 코딩 할 수도 있다. 배치파일 or

    파이썬 or 루비 etc 플러그인 지원 미아되는 배치파일 x Dos배치의 한계를 범용 스크립트로 극복
  12. -설정을 바꿔도 CC처럼 다른 job이 멈추지 않는다. - 설정이 오류

    나면 찾기가 쉽다. VS - Job 설정 복사도 쉽다.
  13. 배포 브랜치 머지 서버,클라 컴파일 패키징& 패치 생성 핵솔루션 적용

    업로드 위치 생성 & 압축 etc FTP 업로드 ,SVN 커밋 etc 패치 메일 작성 No watch, No Stress??? 그래서 몽땅 젠킨스로 구축 기존 CC를 젠킨스로 이관 파이썬 & 배치파일로 젠킨스에 붙임
  14. 젠킨스로 삽질하면서 익힌 것들.. 서비스로 돌릴 수 있는데, Svn에 인증서가

    들어가면 권한 문제가 골치아픔. 그냥 콘솔로 띄우자 java -jar jenkins.war
  15. 젠킨스로 삽질하면서 익힌 것들.. Depth가 2번 이상 깊어지면 job이 돌지

    않는다. (Trigger/call builds on other project 플러그 인 사용시..) =>그냥 중간 job을 만들지 않고 해결 몽땅 빌드 빌드 묶음 서버 빌드 클라 빌드 X 몽땅 빌드 서버 빌드 클라 빌드 O
  16. 젠킨스 삽질하면서 익힌 것들.. 필요한 기능은 대부분 플러그 인에 있음

    MS빌드, 빌드 타이머, 트리거 etc 다른 곳의 젠킨스 job는 url로 호출 할 수 있음 =>QA서버 리붓 때 편리 Job 컨피그 및 로그는 사용자 폴더에 있음 => 사용자\.jenkins\
  17. 배포 브랜치 머지 서버,클라 컴파일 패키징& 패치 생성 핵솔루션 적용

    업로드 위치 생성 & 압축 etc FTP 업로드 ,SVN 커밋 etc 패치 메일 작성 그래서 완전 자동화가 됬음. 끝? 시작
  18. 자동화 패치 중 발생한 일들.. - 자동으로 QA서버를 리셋하는데, 누가

    서버 설정을 바꿔놨더라. job 실패 - 현지에서 ftp 경로를 몽땅 바꿔버려 job 실패 - Job을 여러 번 취소했더니, 메일소켓이 잠겨버려 job 실패 - 실수로 버튼이 2번 눌려서 패치 2번 나감 예외발생
  19. 자동화로 패치 전달 어쩌다 예외발생 내일 오전까지 전달되게 걸어 놓자.

    18:00 작업 완료 10:00 출근 앗, 죄송 2시간만.. 패치가 안왔어요 고쳐서 다시 패치전달 자동화 패치 예외에서 좋은 시나리오 라이브 수일 검증 후 새벽 언제쯤..
  20. 그런데 보통.. 22:00 작업완료 내일 아침 바로 패치! 절대 틀려선

    안돼!! 어쩌다 예외발생 자동화로 패치 전달 01:00 전달 안됬습니다. 패치 다시 전달 라이브 10:00 새벽 언제쯤..
  21. - 현재는 담당자가 예외를 즉각 처리해야만 한다. =>결국 자동화를 걸고,

    퇴근하기엔 무리 - 현재 CC를 서버 별 정리하긴 해야 함. =>유닛테스트, 벨리데이터, 패치서버와는 분리가 필요 그래도 이걸 개선할 방법이 있을까? 그래도 손은 좀 덜 가게 됬음 기왕 하는 김에..