GitLab의 Auto DevOps는 내재한 베스트 실습과 자동화를 통해 CI/CD 도입을 더욱더 쉽게 만들어주도록 설계되었습니다. 여러분이나 여러분의 팀이 DevOps를 처음 접한다면, 이것이 매우 좋은 시작점이 될 것입니다. Auto DevOps에 대한 새로운 개선 사항과 향후 개선 사항을 공유해 드리기에 앞서 다음의 사항들을 유념해 주시기 바랍니다.
Auto DevOps 활용에는 Kubernetes 클러스터가 필수적입니다. Kubernetes 클러스터 셋업이 되어있지 않으시다면 시작 가이드를 참조하시길 바랍니다.
또한 Auto DevOps를 디폴트로 설정해두어야 합니다. 아직 되어있지 않은 경우 Settings > CI/CD > Auto DevOps
로 이동하고 Default to Auto DevOps pipeline
을 선택합니다. 사용하는 GitLab의 버전 및 라이센스와 Kubernetes 클러스터에 추가하는 구성 요소에 따라 다양한 자동화 단계를 사용할 수 있습니다.
- 자동 빌드: 프로젝트에 도커 파일이 있거나 사용하는 프로그래밍 언어를 기반으로 선택한 Heroku 빌드 팩이 있는 경우 도커 파일을 사용하여 코드를 빌드하지만, 수동으로 설정할 수 있습니다.
- 자동 테스트: Heroku 빌드 팩을 사용하여 코드 베이스에 포함된 모든 테스트를 다시 실행합니다. 자동 코드 품질은 다음과 같습니다. 코드 품질 이미지를 사용하여 코드에서 정적 분석 및 기타 검사를 실행합니다. Auto SAST(정적 애플리케이션 보안 테스트)는 다음과 같습니다. SAST 이미지를 사용하여 보안 문제에 초점을 맞춘 정적 분석 검사를 실행합니다.
- 자동 종속성 검색: 종속성 검사 이미지를 사용하여 프로젝트 종속성에 대한 잠재적인 보안 문제를 확인합니다.
- 자동 라이센스 컴플라이언스 기능: 라이센스 컴플라이언스 이미지를 사용하여 프로젝트 종속성에서 사용하는 라이센스를 검색합니다.
- 자동 컨테이너 검색: Clair를 사용하여 사용된 모든 도커 이미지에 대해 정적 분석 및 보안 문제 검사를 실행합니다.
- 응용프로그램 자동 검토: 팀 구성원이 검토하고 검토할 수 있는 응용프로그램 버전을 임시 환경에 만듭니다. 자동 DAST(동적 애플리케이션 보안 테스트): OWASP ZAProxy 도구를 사용하여 추가 보안 검사를 실행합니다.
- Auto Deploy: Kubernetes 환경 설정에 정의된 대로 애플리케이션을 프로덕션 환경에 배포합니다.
- 자동 브라우저 성능 테스트: Sitespeed.io 이미지를 사용하여 응용 프로그램 웹 페이지의 성능을 테스트합니다.
- 자동 모니터링 기능: Prometheus를 사용하여 배포된 애플리케이션의 시스템 메트릭을 모니터링합니다.
최근 개선된 사항: Kubernetes 1.16 에 대한 대비(#32720)
깃랩에서는 최근에 Kubernetes 1.16 API의 변경 사항에 맞게 Auto DevOps 기능을 재작업했습니다. 사용자 관점에서 변경되는 것은 없지만, 백그라운드에서는 서로 다른 API 엔드포인트에 접근됩니다.