본문 바로가기

일상

오래 쓴 젠킨스 잡 목록 정리하기 (이름 규칙과 안 쓰는 잡 격리)

반응형

몇 년 동안 쌓인 젠킨스 잡을 정리하면서 잡았던 이름 규칙과, 안 쓰는 잡을 안전하게 걷어내는 순서입니다.


검수용 젠킨스의 잡을 운영 젠킨스로 합치면서 잡 목록을 처음부터 훑어보게 됐는데, 목록만 봐서는 어느 잡이 무엇을 어디에 배포하는지 알기 어려웠습니다.


같은 서비스인데 잡마다 이름 붙이는 방식이 달랐고, 운영 환경을 가리키는 말도 팀에서만 통하는 real 같은 표기가 섞여 있었습니다. 몇 년 전에 끝난 서비스의 잡도 그대로 남아 있어서, 지워도 되는지 아무도 확신하지 못하는 상태였습니다.


- 이름만 보고 서비스, 환경, 역할이 읽히게 규칙을 정한다

- 환경 표기는 팀 안의 관행어 대신 누구나 아는 말로 통일한다

- 안 쓰는 잡은 바로 지우지 말고 표시하고 비활성화한 뒤 지운다

- 빌드 화면의 파라미터도 누르는 사람이 고를 것만 남긴다


1. 이름에 넣을 것 세 가지

잡 이름은 목록에서 정렬되는 순서 그대로 읽히는 문서라서, 이름만 보고 무엇을 하는 잡인지 알 수 있으려면 세 가지가 들어가야 했습니다.


- 서비스 묶음: 같은 제품군은 같은 접두어로 시작해 목록에서 모이게 한다

- 역할: 웹, 백오피스, 배치처럼 무엇을 빌드하는지

- 환경: 운영인지 검수인지



접두어를 통일하면 목록이 저절로 서비스별로 모이고, 검색창에 접두어만 쳐도 그 서비스 잡이 전부 나옵니다. 서버가 한 대뿐인 서비스는 01 같은 번호를 굳이 붙이지 않고, 두 대 이상일 때만 번호를 붙이기로 했습니다.


2. 환경 표기는 관행어 대신 표준어로

오래된 팀에는 운영을 real 이라고 부르는 식으로 그 팀에서만 통하는 말이 있는데, 오래 있던 사람에게는 당연해도 새로 온 사람은 한 번씩 물어봐야 합니다.


그래서 운영은 PROD, 검수는 QA 로 통일했습니다. 개발 환경 잡은 실제로 쓰는 곳이 없어서 만들지 않았고, 앞으로 생기면 DEV 를 쓰기로만 정해 두었습니다.


이름을 바꿀 때는 그 이름을 부르는 곳이 없는지 먼저 봐야 합니다. 다른 잡의 후속 빌드 설정이나 외부 스크립트가 잡 이름으로 호출하고 있으면, 이름만 바꿔도 그쪽이 조용히 끊깁니다.


3. 안 쓰는 잡은 표시하고, 멈추고, 그다음에 지운다

정리에서 제일 망설여지는 건 삭제인데, 몇 년째 안 돌았어도 혹시 누가 쓰고 있으면 곤란하기 때문입니다. 그래서 바로 지우지 말고 단계를 나누는 편이 안전합니다.


- 이름 앞에 99_ 를 붙인다. 목록 맨 아래로 밀려나 한눈에 구분된다

- 잡을 비활성화한다. 누가 실수로 눌러도 돌지 않는다

- 일정 기간 아무도 찾지 않으면 그때 삭제한다


어느 잡이 안 쓰이는지는 마지막 빌드 날짜로 가늠할 수 있습니다. 잡이 많으면 하나씩 열어보는 대신 스크립트 콘솔에서 한 번에 뽑으면 됩니다.



실제로 6~7년 전에 끝난 서비스의 잡까지 남아 있었습니다. 다만 날짜만으로 바로 지우지는 않고, 판단이 애매한 건 99_ 로 넘겨 두는 쪽을 택했습니다.


4. 빌드 화면은 버튼 하나로 충분하게

잡을 열면 소스 경로, 젠킨스 작업 경로, 빌드 이름 같은 빌드 파라미터가 여러 개 떠 있었는데, 대부분 한 번 정하면 바꿀 일이 없는 값이었습니다.


이런 값을 파라미터로 두면 빌드할 때마다 화면에 노출되고, 잘못 건드리면 엉뚱한 곳에 배포될 수도 있습니다. 그래서 고정값은 잡 설정 안으로 넣고, 빌드하는 사람이 고를 것만 파라미터로 남겼습니다.



운영 잡은 배포할 태그 하나만 고르게 하고, 검수 잡은 항상 최신 master 를 올리니 고를 게 없게 했습니다. 결과적으로 검수는 빌드 버튼만 누르면 되고, 운영은 태그만 고르면 됩니다.


5. 정리한 뒤에는 한 번 더 봐달라고 한다

이름을 한꺼번에 바꾸고 나면 본인은 익숙해져서 이상한 곳을 못 봅니다. 저도 정리를 끝낸 뒤 같이 일하는 사람에게 목록을 공유해 한 번 봐달라고 했습니다.


다른 사람이 보면 "이건 왜 여기 있지?" 하는 지점이 바로 나옵니다. 이름 규칙은 결국 다른 사람이 읽으라고 만드는 것이라, 만든 사람이 아닌 사람이 읽어보는 게 가장 확실한 검증입니다.


6. 정리

잡 이름 정리는 당장 뭔가를 고치는 작업은 아니지만, 다음에 누가 그 젠킨스를 열었을 때 헤매는 시간을 줄여주는 작업입니다.


- 이름에 서비스 묶음, 역할, 환경이 읽히게 한다

- 환경은 PROD, QA 처럼 누구나 아는 말로 통일한다

- 이름을 바꾸기 전에 그 이름을 부르는 곳이 있는지 본다

- 안 쓰는 잡은 99_ 표시, 비활성화, 삭제 순서로 걷어낸다

- 빌드 파라미터는 고를 것만 남긴다


오래 쓴 젠킨스일수록 잡은 계속 늘어나기만 하고 줄어들지는 않습니다. 이관처럼 전체를 훑어볼 기회가 생겼을 때 규칙부터 정해두면, 그 뒤로 추가되는 잡도 같은 모양으로 쌓입니다.


여기까지 오래 쓴 젠킨스 잡 목록을 정리하는 방법에 대해서 작성해봤습니다. 여기까지 읽어주셔서 감사합니다!

반응형