일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- InfoProvider
- docker
- 파이썬
- aws
- BW
- VSCode
- DW
- GitHub
- JavaScript
- Jenkins
- HANADB
- EC2
- Grafana
- 깃허브
- SAP
- BW4HANA
- InfoCube
- 클라우드
- InfoObject
- 자료형
- Spring
- 직매입
- 특약매입
- Python
- react
- Git
- ADSO
- 배포
- Java
- Today
- Total
개몽가
CI/CD 란 무엇인가? 본문
[CI/CD 란?]
CI/CD는 Continuous Intergration/Continuous Delivery,Deployement 약자로, 직역하면 지속적 통합/지속적 제공을 말한다.
즉, 어플리케이션 개발 및 배포 단계를 자동화한다는 개념이다.
[CI/CD 도입 배경 및 도입 프로젝트]
학부시절부터 현업 및 토이 프로젝트를 진행하면서 개발소스코드 통합 및 배포 절차를 보면,
학부시절) 개별로 짠 코드를 압축해 한 명에게 전달하면 전달받은 한 명이 소스코드를 Compare하면서 통합 진행
현업) VCS를 통해 소스코드 통합 후, 최종 소스코드 파일리스트를 Jenkins가 읽어서 빌드할 수 있도록 지정해둔 Deploy 파일에 입력
-> Jenkins 수동 Build 클릭 -> 서버 수동 재기동
토이 프로젝트) Git과 Jenkins의 WebHook을 통한 CI/CD 경험
학부시절엔 VCS 조차 사용해보지 않아 다른 사람이 개발한 것을 압축해서 멜로 보내주지 않으면 통합할 수가 없었고, 이를 받기 전까지 동시에 한 파일을 수정해 충돌이 나는 것조차 알지 못한 상태로 로직을 짜게되어 곤란하고 노가다 일이 종종 발생했었다.
첫 현업에서는 VCS를 SVN을 사용하여 학부시절과 같은 상황은 어느정도 보완할 수 있었고 Jenkins 배포툴을 사용해 형상에 있는 최종 커밋버전을 손쉽게 배포할 수 있었다. 하지만 이 부분 담당자가 손으로 직접 배포 대상 리스트 취합하고, 빠진 파일이 있는지 반복 확인 등이 필요했다.
이런 수고스러운 작업을 보완 및 향상시킬 수 있는 개념이 바로 CI/CD 이다.
[CI/CD 차이]
CI(Continuous Intergration)
- 개발자를 위한 자동화 프로세스
- 코드 변경 사항을 정기적으로 빌드 및 테스트되어 Share Repository에 통합되기 때문에 동시 작업으로 충돌 발생 및 버그 등을 해결할 수 있음
CD(Continuous Delivery,Deployement)
- 지속적인 서비스 제공(Continuous Delivery), 지속적인 배포(Continuous Deployment)를 의미
- Delivery : 개발자들이 추가 및 수정한 변경 사항이 버그 테스트를 완료해 Repository에 자동으로 업로드되고, Repository에서 실시간 프로덕션 환경으로 배포 진행하는 것을 의미
- Deployment : 개발자들의 변경 사항을 Repository에서 실제 사용자들이 사용가능한 프로덕션 환경까지 자동으로 릴리즈 하는 것을 의미
CI/CD는 파이프라인으로 표현되는 실제 프로세스를 의미하고 어플리케이션 개발에 지속적인 자동화 및 지속적인 모니터링을 추가하는 것을 의미
CI/CD 구축 경험 프로젝트는 아래 링크 !
[배포 자동화 구축 1] AWS EC2 인스턴스 생성하기
EC2(Amazon Elastic Compute Cloud) AWS의 클라우드 컴퓨팅 플랫폼으로 사용자가 가상 컴퓨터를 임대받아 그 위에 사용자가 만든 애플리케이션을 실행할 수 있음 클라우드의 가상서버(인스턴스)를 생성 AMI
shingme.tistory.com
'Infra > DevOps' 카테고리의 다른 글
[배포 자동화 구축 4] Github push 하면 Jenkins에서 자동빌드 (Webhook 연동) (0) | 2021.01.11 |
---|---|
[배포 자동화 구축 3] Jenkins와 Github 연동 및 gradle 빌드 세팅 (0) | 2021.01.03 |
[배포 자동화 구축 2] AWS EC2에 Jenkins 설치 (0) | 2020.12.29 |
[배포 자동화 구축 1] AWS EC2 인스턴스 생성하기 (0) | 2020.12.26 |
fork한 깃 최신repository로 update하기 (0) | 2020.07.19 |