따라하며 배우는 도커와 CI환경 수강 및 실습하면서 정리한 내용입니다.
Github에서 진행되는 오픈소스 프로젝트를 위한 지속적인 통합(CI: Continuous Integration) 서비스. 2011년 설립, 초창기에는 Ruby만 지원했으나 현재 대부분의 개발 언어 지원함. 해당 서비스 이용시 깃헙 레포에 있는 프로젝트를 특정 벤트에 따라 자동으로 테스트 및 빌드, 배포할 수 있다.
프로젝트가 끝날 때까지 통합이 연기될 때 발생하는 Integration Hell(저장소의 코드가 개발자의 베이스라인과 달라지는 상황)을 피하기 위해 도입되었다고 한다.
동작하는 과정
1. 개발자가 코드를 작성하고 공유 저장소(Git)에 변경사항을 커밋한다.
2. CI서버가 레포지토리를 모니터링하고 모든 변경사항을 평가한다.
3. CI는 시스템을 구축하고 통합 및 단위 테스트를 수행한다.
4. 서버가 배포 가능한 앱을 릴리즈한다.
5. CI서버는 버전 및 빌드된 코드에 빌드 태그를 할당한다.
6. CI 서버는 성공/실패 여부를 개발팀에 보고한다.
Travis CI와 Jenkins
.travis.yml
도커에서 docker-compose.yml에 작성한 것과 유사하게 트래비스도 설정을 travis.yml파일을 만든다
Apatche, Nginx 같은 서버에서 Java, NET, PHP, Node.js, Python, Ruby, Go, Docker와 함께 개발된 웹 응용 프로그램 및 서비스를 배포하고 확장하는 서비스. EC2 인스턴스나 데이터베이스 같이 많은 것들을 포함한 환경을 구성하며 만들고 있는 소프트웨어를 업데이트 할 때마다 자동으로 해당 환경을 관리해줌.
Elastic Compute Cloud의 약자. 하드웨어에 선투자할 필요 없이 빠르게 애플리케이션을 개발, 배포할 수 있다. 원하는 만큼의 가상 서버를 구축하고 보안 및 네트워크 구성과 스토리지 관리가 능하며, 요구사항이나 변도앗항에 신속하게 규모 확장 및 축소가 가능해 서버 트래픽 예측 필요성이 줄어든다. 쉽게 컴퓨터 한대라고 생각하면 됨.
AWS 리소스에 대한 엑세스를 안전하게 제어할 수 있는 웹 서비스. IAM을 사용해 리소스를 사용하도록 인증(로그인) 및 권한 부여된 대상 제어
travis에서 빌드할 때 사소하지만 결정적인 '.'을 빼먹어서 났던 빌드 오류
travis에서 github action 실습할 때 실제 비번을 잘못 알고 있어서 로그인 오류 난것도 있었지만, 수정 이후에도 계속 오류가 나서 몇분간 파일 보다가 deploy.yaml에서 환경변수 입력할 때DOCKER_USERNAME, DOCKER_SECRET_KEY 앞에서 $을 빼먹은 것을 발견