많은 작은 스크립트, 하나의 저장소 또는 여러?


15

동료와 나 자신은 우리가 여러 의견을 가지고있는 문제에 부딪쳤다.

현재 우리는 모든 크론 작업을 유지하는 git 저장소를 가지고 있습니다. 약 20 개의 크론이 있으며 작은 크론 스크립트이며 일부 활동에 필수적이라는 사실을 제외하고는 실제로 관련이 없습니다. 우리는 사용하고 fabric.py배포 할 파일과 requirements.txt파일은 모든 스크립트에 대한 요구 사항을 관리 할 수 있습니다.

우리의 문제는 기본적으로 모든 스크립트를 하나의 자식 저장소에 보관합니까, 아니면 자체 저장소로 분리해야합니까? 하나의 저장소에 보관하면 하나의 서버에 배치하기가 더 쉽습니다. 모든 스크립트에 하나의 cron 파일 만 사용할 수 있습니다.

그러나 20 개의 cronjob이 논리적으로 관련이 없기 때문에 이것은 잘못된 느낌입니다. 또한 requirements.txt모든 스크립트에 대해 하나의 파일을 사용 하는 경우 특정 스크립트에 대한 종속성이 무엇인지 파악하기가 어렵고 모두 동일한 버전의 패키지를 사용해야합니다.

모든 스크립트를 자체 리포지토리로 분리 할 수 ​​있지만 기억하고 처리해야하는 20 개의 리포지토리가 생성됩니다. 이러한 스크립트의 대부분은 크지 않으며 해당 솔루션은 과도하게 보입니다.

관련된 질문은 모든 cronjob에 대해 하나의 큰 crontab 파일을 사용합니까, 아니면 각각에 대해 별도의 파일을 사용하는 것입니까? 각각에 고유 한 것이 있다면, 하나의 crontab 설치가 다른 하나의 crontab을 어떻게 덮어 쓰지 않습니까? 또한 20 개의 다른 크론 파일을 추적 할 때처럼 고통스러워 보입니다.

요컨대, 우리의 주요 질문과 문제는 그것들을 모두 하나의 저장소로 밀접하게 묶어 두는가? 또는 그들 자신의 requirements.txt와 fabfile.py를 사용하여 그것들을 자신의 저장소로 분리 하는가? 우리는 아마도 정말 간단한 해결책을 찾고 있다고 생각합니다. 이 문제를 해결하는 더 쉬운 방법이 있습니까?


이 스크립트 cron 작업이 다른 응용 프로그램과 관련이 있습니까? 아니면 문자 그대로 유틸리티 스크립트의 덤핑 장입니까?
Greg Burghardt

왜 같은 저장소에 그것들을 가지고 있다고해서 같은 requirements.txt를 공유해야하는지 알 수 없습니까? 저장소의 별도의 하위 디렉토리에 배치하면 각각 서로 다른 requirements.txt를 가질 수 있습니다.
Sean Burton

답변:


16

당신이 그들 각각 이 개별적인 레포를 받을 자격 이 있다고 생각할 특별한 이유가 없다면 (그들은 많이 성장할까요? 아마 그렇지 않을 것입니다!) 그것들을 모두 하나의 레포에 넣는 것이 더 합리적으로 보이고 모든 것을 복제하는 수고를 덜어줍니다 그들 중 20 명에서

각각을 별도의 저장소에 유지하는 것은 문제가 존재하지 않는 문제를 만드는 경로와 같습니다.

자신과 다른 사람을 위해 추가 작업을 만들지 마십시오.


2
합의-스크립트의 이름이 잘 정해지고 스크립트 사이의 복제가 낮게 유지되는 한 (즉, 공유 라이브러리 항목) grep 검색이 복잡하지 않은 한 이것이 효과가 있다고 생각합니다.
Danny Staple

1

분리 (성능, 압도적 조직 / 보안 문제 등)에 대한 정당한 이유가없는 한, 내 본능은 소스 문서를 동일한 저장소에 함께 보관하는 것입니다.

시스템을 별도의 저장소로 분리하면 일반적으로 재사용을 방해하는 장벽이 생깁니다. 재사용은 조직이 개발 비용을 상각해야하는 유일한 방법이므로 재사용에 방해가되는 것은 사실상 나쁜 일입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.