요구사항 ID | 타입 | 요구사항 |
---|---|---|
GT8-DEVOPS-0001 | 환경 요구사항 | 지속적 통합 인프라는 이기종 OS(Linux, Windows)를 지원하는 오픈소스로 구성해야하며, Long-Term 운영이 가능해야 한다. |
요구사항 ID | 타입 | 요구사항 |
---|---|---|
GT8-DEVOPS-0002 | 기능 요구사항 | 빌드는 반드시 젠킨스를 통해 수행되어야 하며, 2개 이상의 Repository가 동시 다발적으로 빌드 지원이 가능해야 한다. |
GT8-DEVOPS-0003 | 성능 요구사항 (Optional) | 빌드 수행 시간은 {프로토 타입 빌드 시간}에서 10%개선한다. (추후 프로토 타입 작성 후 수정) |
GT8-DEVOPS-0004 | 기능 요구사항 | 깃허브에 Pull Request가 Open되면 젠킨스로 알림 (웹훅)을 보내주어야 한다. |
GT8-DEVOPS-0005 | 기능 요구사항 | 젠킨스에 클론(웹훅 발생시 파이프라인에 클론), 빌드, 정적테스트, 동적테스트, 배포 각 파이프라인의 소요 시간과 성공/실패 여부를 슬랙으로 보내준다. |
GT8-DEVOPS-0006 | 기능 요구사항 | 젠킨스에서 정적/동적테스트는 서로 결과에 상관없이 독립적으로 수행되어야하며 배포는 모든 테스트가 통과되어야 가능하다. |
요구사항 ID | 타입 | 요구사항 |
---|---|---|
GT8-DEVOPS-0008 | 기능요구사항 | 정적분석은 SonarQube로 동작하고 베스트 프렉티스에서 사소한 이슈들로 모듈성, 이해가능성, 변경가능성, 테스트 용이성, 재사용을 준수해야한다. |
GT8-DEVOPS-0009 | 기능요구사항 | 정적분석지표는 일반적으로 잠재적인 버그 혹은 실행시간에 예상되는 동작을 나타내야한다. |
GT8-DEVOPS-0010 | 기능요구사항 | 정적분석지표는 해커들에게 잠재적인 약점 (SQL 인젝션 , 크로스 사이트 스크립팅)이 될 수 있는 보안상의 이슈가 포함되어야한다 |
GT8-DEVOPS-0011 | 기능요구사항 | 정적분석지표는 코드의 품질을 저해를 방지하기 위해 FindBugs를 통해 코딩 강력한 코딩 규칙을 적용하고 코드 중복을 나타내어야한다. |
GT8-DEVOPS-0012 | 기능요구사항 | 정적분석지표는 단위테스트 커버리지를 통해 단위 테스트의 수행정도와 수행한 테스트의 성공/실패 정보를 제공해야한다. |
GT8-DEVOPS-0013 | 기능요구사항 | 정적분석지표는 코드의 순환 복잡도, 인지 복잡도를 Technical Debt를 통해 측정치를 나타내야한다. |
GT8-DEVOPS-0014 | 보안 요구사항 | 정적분석지표는 Treemap에서 Size를 다양하게 변경함으로써 사각형의 크기가 이에 따라서 바뀌고, Color를 통하여 기준값을 변경함으로써 해당 프로젝트의 크기값을 통해 안정성을 비교해야한다. |
요구사항 ID | 타입 | 요구사항 |
---|---|---|
GT8-DEVOPS-0015 | 환경 요구사항 | 타겟 서비스 코드에 알맞는 버전의 테스트 코드가 작성되어 있어야 한다. |
GT8-DEVOPS-0016 | 환경 요구사항 | dynamic manager는 통신하는 개체와 호환 가능한 버전의 라이브러리를 사용해야 한다. |
GT8-DEVOPS-0017 | 기능 요구사항 | 작성된 모든 테스트 코드가 통과 되어야 한다. |
GT8-DEVOPS-0018 | 기능 요구사항 | 다이나믹 매니저는 받은 결과를 파싱해서 알람 서비스로 보낸다 |
GT8-DEVOPS-0019 | 기능 요구사항 | 동적 분석에 결과(성공여부, 오류난 부분, 실행 환경, 커버리지)를 dynamic manager를 통해 인플럭스 디비에 저장해야한다. |
GT8-DEVOPS-0020 | 보안 요구사항 | 통신 과정에서 기밀성, 무결성 등 보안 조치가 되어야 한다. |
요구사항 ID | 타입 | 요구사항 |
---|---|---|
GT8-DEVOPS-0022 | 환경 요구사항 | grafana가 설치되어있어야 한다. |
GT8-DEVOPS-0023 | 데이터베이스를 선택하고, telegraf에서 수집하여 influxdb로 저장하는 겂중에서 cpu항목 등 선택 가져올 정보 입력 → 차트표시 | |
환경 요구사항 | influxdb ui설정 : localhost:8086으로 접속 → ui접근 |
요구사항 ID | 타입 | 요구사항 |
---|---|---|
GT8-DEVOPS-0024 | 환경 요구사항 | Harbor를 사용하기 위해 Docker가 설치되어 있어야 한다. |
GT8-DEVOPS-0025 | 보안 요구사항 | 배포를 위해 사용되는 Harbor 계정이 적절한 인증 절차를 거쳐야 한다. |
GT8-DEVOPS-0027 | 기능 요구사항 | CI/CD가 파이프 라인으로 구성되어 배포가 자동화되어야 하고 배포된 이미지는 자동으로 Harbor Repository에 업로드되어야 한다. |
요구사항 ID | 타입 | 요구사항 |
---|---|---|
GT8-DEVOPS-0028 | 환경 요구사항 | 실시간으로 클라이언트에게서 메트릭을 수집하는 Prometheus 서버가 구축되어 있어야 한다. |
GT8-DEVOPS-0029 | 기능 요구사항 | 클라이언트에게서 수집한 메트릭은 Grafana를 이용해 시각화하고 이를 통해 실시간 분석이 가능해야한다. |
GT8-DEVOPS-0030 | 기능 요구사항 | 클라이언트 상의 에러 발생 시 서버에서 해당 에러를 메트릭으로 수집하였을 때 alert manager와 slack을 통해 개발자들에게 에러 발생 상황을 공지할 수 있어야 한다. |
GT8-DEVOPS-0031 | 성능 요구사항 | GT8-DEVOPS-0030 요구 사항은 클라이언트 상의 에러를 Prometheus서버가 감지한 시점부터 10초 이내에 이루어져야 한다. |
쉽지 않은 여정이 될 것이다.
DPIC-A 팀 화이팅!!