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

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

Avatar for JungWon2 JungWon2
June 03, 2013
1.4k

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

Avatar for JungWon2

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