설명하는 코드 및 구성의 현재 구성은 관련된 기술 솔루션으로 구성됩니다. 이것은 유지 보수 활동에 많은 오버 헤드를 추가하고 우리의 방식으로 많은 트랩을 추가하는 나쁜 설계입니다. 대신, 그 조직은 우리가 배포 하는 인공물 을 중심으로 구성되어야합니다 .
그 이유는 인공물 ( 예 : 도커 이미지 또는 소프트웨어 패키지)을 다음 동사의 대상으로 간주하기 때문입니다.
우리가 수행하려는 최소한의 자동화 된 작업을 고려합니다. 테스트 동사의 구현 방식에 대한 내용을 변경하려는 경우 적절한 저장소에서 해당 아티팩트에 해당하는 폴더를 방문한 후 업데이트해야하는 젠킨스 별 자동화 항목을 쉽게 찾을 수 있습니다. 대신 자동화 레시피가 기술 솔루션을 중심으로 구성되는 경우, 젠킨스가 테스트 절차에 관여하고 있으며 인공물 관련 자동화 항목을 찾아야합니다. 복잡한 상황에서 기술 솔루션을 중심으로 한 조직은 업데이트를 매우 어렵게 만듭니다. 그에 따라 일부 서비스와 관련된 모든 기술 솔루션을 사전에 알고 있어야하기 때문입니다.
예를 들어 웹 사이트 코드와 마이크로 서비스 "a"를 포함하는 저장소에는 다음과 같은 하위 디렉토리가 운영 전용 일 수 있습니다.
./ops/website
./ops/micro-service-a
각각 build
, test
및 이라는 3 개의 스크립트가 deploy
있습니다. 이제 자동화 항목의 구성이 명확 해 졌으므로 구성에 대한주의를 기울 이겠습니다.
구성 조직에 대한 기본 조건 및 요구 사항은 deploy
서비스 유사 아티팩트에 적용될 때 동사에 의해 설정됩니다 . deploy
동사는 다음과 같은 매개 변수가 있어야합니다
- 배포 할 아티팩트 버전
- 아티팩트의 배포 대상. 배포 된 아티팩트가 실행될 구체적인 환경 ( 예 : 클러스터 및 엔드 포인트와 통신해야하는 엔드 포인트)을 설명합니다.
- 다른 엔드 포인트 ( 예 : 데이터베이스) 에 연결하는 데 사용해야하는 자격 증명
- (캐시 항목의 수명 등) 런타임 구성
운영 관점에서이 매개 변수 분석은 런타임 구성과 번들로 제공 될 수있는 자격 증명을 제외하고는 배포 문제의 자연스러운 자유 도와 일치하지만 부주의하게 퍼지지 않도록 분리하는 것이 좋습니다.