- 개발자가 코드를 개발하여 Codecommit에 넣으면 Codebuild에서 해당 코드를 빌드 후 문제가 없으면 Codedeploy로 전송해 Codedeploy에서 배포한다.
- 서버들로 배포된 코드는 S3 버킷에 저장된다.
- Codecommit과 Codebuild는 운영 Account에 넣지 않는다.
- 개발 Account에 운영 Codecommit과 Codebuild가 존재해서 개발 commit에서 완료된 작업을 운영 commit으로 전송하여 배포한다.
- 운영 commit에는 개발자가 직접 본인의 코드를 넣을 수 없고 개발 commit에 있는 코드를 운영 commit으로 전송하여 배포해야 한다.
※ 배포 중에 두 가지 오류가 발생할 수 있다.
1. Codebuild에서 오류
- 개발 코드에서 발생하는 오류가 대부분이며 운영 중인 서버에 영향도가 없다.
- 긴급 상황은 아님.
2. 배포 완료 후 서비스 오류 (배포성공 서비스 오류)
ex) 네이버 홈페이지에서 개발 중에 구글 홈페이지의 기능을 가져오기 위해 구글 홈페이지의 코드를 복사 후 실수로 배포를 하는 경우 고객들은 네이버 페이지가 아닌 구글 홈페이지가 나올 수 있음.
ex2) 이벤트 페이지를 만들어서 배포하였는데 이벤트 페이지가 빈 페이지 일 경우
- 배포는 완료했지만 서비스에서 오류가 발생할 수 있다.
- 그렇기 때문에 운영 commit과 build를 운영 Account에 넣지 않고 개발 Account에서 관리하여 서비스 오류를 최소화한다.
※ 여러 서버에 배포 중 실패했을 경우
- 3번 서버 배포 도중에 에러가 발생하여 3번 서버만 버전이 다른 경우가 발생할 수도 있음.
- 보통 자동화가 걸려있기 때문에 Codecommit부터 다시 시작하긴 함.
- 해당 오류가 지속될 경우 고객은 1,2번 서버와 다른 버전의 페이지를 보게 될 수 있음.
- 개발하다가 운영에 넣어도 될 만큼 개발을 성공하면 운영에 적용 (1)
- 개발하는데 혼자 개발하고 싶은 부분이나 영향도가 큰 개발은 따로 feature으로 빼서 개발 후 적용(2)
- feature메서 개발한 부분까지 모두 가지고 운영에 배포(3)
- 운영에 배포를 했지만 (ex) 07/26 이벤트 시작인데 06/26 이벤트 시작으로 오타를 냈을 경우) 긴급하게 수정이 필요할 때 hotfix(4)
- hotfix가 오래 걸리는 경우 인프라에서 롤백을 해줄 수도 있음.(5)