1. CI/CD 도구 (젠킨스 vs 깃허브 액션 vs AWS Code vs NCP Source)
0. CI/CD
- 연속 빌드(CI) 연속 배포(CD) 순서
- 개발자가 코드를 Git에 커밋하고 Git Server에 푸시한다.
- Git Server가 웹훅을 통해, CI/CD 도구로 요청을 보낸다.
- CI/CD 도구는 파이프라인에 따라 도커(또는 서버)를 사용하여 빌드(CI) 및 배포(CD)를 한다.
<aside>
💁♂️ Git vs Github
📌 Git
- 오픈 소스 버전 관리 시스템(VCS: Version Control System)
- 로컬에서 버전 관리
- 소프트웨어 개발 및 소스 코드 관리에 사용
📌 Github
git은 본인의 코드와 그 수정내역을 기록하고 관리하도록 돕는 버전 관리 프로그램이며, 로컬에서 프로젝트의 기록을 스스로 관리할 수 있도록 해줍니다. git을 통해 브랜치를 생성하고 이전 브랜치로 복구, 삭제, 병합이 가능합니다. 하지만 로컬 저장소를 사용하기 때문에 다른 개발자와 실시간으로 작업을 공유할 수 없습니다.
- Git Repository를 위한 웹 기반 호스팅 서비스
- 클라우드 서버를 사용해서 로컬에서 버전 관리한 소스코드를 업로드하여 공유 가능
- 분산 버전 제어, 액세스 제어, 소스 코드 관리, 버그 추적, 기능 요청 및 작업 관리를 제공
github는 git 저장소를 관리하는 클라우드 기반 호스팅 서비스입니다. git 저장소 호스팅 서비스는 클라우드 기반으로 다른 사람과 소스코드 공유가 가능하며 git의 기본적인 기능을 확장하여 제공합니다. 또한 클라우드 서버에 소스를 올리기 때문에 한 프로젝트에 여러 명의 사람이 참여하여 버전 제어 및 공동 작업이 가능합니다.
[Git] 깃(Git)과 깃허브(Github) 차이
</aside>
https://crispyblog.kr/development/common/8
https://crispyblog.kr/development/common/8
1. Jenkins
- Jenkins는 지속적 통합(continuous integration, CI)과 지속적 배포(continuous delivery, CD)를 위한 대표적인 도구입니다. 빌드, 테스트, 배포 프로세스를 자동화하여 소프트웨어 품질과 개발 생산성을 높일 수 있습니다.
https://blog.wonizz.tk/2020/01/22/devops-jenkins-job-automation/
2. Github Action
깃허브 액션(Github Actions)
은 일종의 훅 서비스입니다. 특정 레포지터리(또는 브랜치)에 푸시
또는 풀 리퀘스트
와 같은 특별한 이벤트가 발생하면 미리 작성된 워크플로우
를 도커 컨테이너에서 실행시킬 수 있습니다.
https://github.com/MyAeroCode/example-github-actions
https://github.com/MyAeroCode/example-github-actions
3. AWS Code
1)Code Commit
- AWS CodeCommit은 기업이 안전하고 조정성이 뛰어난 프라이빗 Git 리포지토리를 쉽게 호스팅할 수 있도록 지원하는 완전 관리형 소스 제어 서비스입니다. CodeCommit을 사용하면 자체 소스 제어 시스템을 운영할 필요가 없으며 인프라 규모 조정을 걱정하지 않아도 됩니다.