AirBnB와 같은 숙박 예약 서비스를 개발하는 프로젝트입니다.
- Java, Spring Boot, Spring MVC, MyBatis, Gradle
- MySQL, Redis
- Jenkins, Docker
- Github Wiki에 작성했습니다.
- master
- feature/#(ISSUE_NUMBER)
- chore/#(ISSUE_NUMBER)
- feature#(ISSUE_NUMBER):MESSAGE
- refactor#(ISSUE_NUMBER):MESSAGE
- chore#(ISSUE_NUMBER):MESSAGE
- hotfix#(ISSUE_NUMBER):MESSAGE
- Spring Server
- Public Subnet
- 누구나 웹 요청 가능
- SSH 통신[22 포트]은 설정해둔 IP로만 가능
- Jenkins Server
- Public Subnet
- 8080 포트에 대해서 HTTP 요청 뚫어놓음 -> Github 에서 hook 요청을 해야하기 문
- SSH 통신[22 포트]은 설정해둔 IP로만 가능
- DB
- Private Subnet
- 3306 포트에 대해서 Spring Server만 요청 가능
- Redis
- Private Subnet
- 6379 포트에 대해서 Spring Server만 요청 가능
- PR 요청
- github에서 hook으로 Jenkins에게 요청
- Jenkins는 Jenkinsfile을 스캔하여 파이프라인 진행
- Jar 빌드
- 단위 테스트
- 통합 테스트
- 도커 이미지 생성
- 생성된 도커 이미지 허브에 푸시
- Jenkins Server가 SSH를 통해 Spring Server에 접근하여, hub에 올라가져있는 docker image를 가져온 후, 실행
- 슬랙으로 결과 알림
- Github PR 화면에서 파이프라인 성공 여부 출력
- 성공시, Merge 가능
- 실패시, Merge Block