일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 웹해킹
- gcp
- Baekjoon
- 사이버보안
- programmers
- 백준
- 웹보안
- spring Batch
- webhacking.kr
- 파이썬
- 회고
- 시스템 해킹
- 스프링 배치
- Batch
- docker
- Python
- 네트워크
- nodejs
- kotest
- node.js
- 리버싱
- gcp cloud build
- 보안
- cloud run
- 프로그래머스
- gcp ci/cd
- pwnable.xyz
- hackctf
- sequelize
- 포너블
uju's Tech
[GCP] CI/CD 적용기 1탄 - CI/CD란 무엇인가 본문
<본 포스팅은공부목적으로 작성되었습니다. 혹시 틀린 부분이 있거나 문제가 되는 부분이 있다면 답글 달아주세요!>
최근에 한 프로젝트에 리드 개발자로 참여하게 되었다.ㅎㅎ
몇개의 프로젝트를 경험해 보았지만 리드 개발자로 프로젝트를 참여한 적은 처음이었다.
항상 follower 입장이다보니 전체적인 infra 혹은 코드 구조를 주어진 상태에서 하는 경우가 대부분 이었다.
처음 리드 개발자로 참여하게된 만큼 직접 infra 구축을 생각하게 되었고 그 과정에서 빌드와 배포를 직접하는 것이 아닌 버전별로 자동으로 배포를 하게 하고 싶었다. 이렇게 도커와 ci/cd에 입문!하게 되었다 ㅎㅎ
aws를 사용할까 하다가 때마침... gcp (Google Cloud Platform) 프리티어를 받아둔 기억이 떠올라 gcp에서 ci/cd를 구현하게 되었다.
(개인적으로는..ㅎㅎ gcp가 aws보다 훨씬..UI 측면에서 편하다고 생각한다..(aws 복잡해..))
github와 gcp 를 연동하기에 앞서 CI/CD의 정확한 개념을 알고자 포스팅을 하게 되었다..!
(그냥 공부한거 정리하는 정도..!, 사실 구글링하면 훨씬 자세하게 나온다..)
CI/CD는 지속적 통합/지속적 제공으로 애플리케이션 개발 단계를 자동화하여 보다 애플리케이션을 보다 짧은 주기로 제공하는 방법이다.
CI = Continuous Integration
CD = Countinous Delivery
CI와 CD의 약어에서 알 수 있듯이 CI는 지속적인 통합으로 코드 변경 사항이 정기적으로 빌드 및 테스트 되어 공유 리포지토리에 통합된다.
CD는 지속적인 배포 및 제공으로 대포적으로 컨테이너 레지스트리에 자동으로 업로드 되는 것을 말한다.
aws는 ci/cd를 CodePipeline으로 제공할 수 있는데 빌드, 테스트, 배포 이러한 형태로 자동화 할 수 있다.
결과적으로 CI/CD를 적용하여 빌드 및 배포를 수작업 해야하는 시간을 줄이고 빠르게 배포가 가능하여 항상 최신 상태로 유지할 수 있다.
또한 앞서 말한 테스의 자동화에서 충돌이나 에러가 발생하면 더욱 빠르게 접근하여 수정이 가능해진다.
CI/CD를 적용하여 얻는 장점이 무척 크다고 생각하였기에 이번에 진행하는 프로젝트에서 적용하기로 결정하였다.!
다음에는 험난한 gcp 적용기를 설명하도록 하겠다..!
아래의 링크를 통해 CI/CD를 간단히 살펴보고 참고하였다.
https://medium.com/@hoi5088/ci-cd-%EA%B0%9C%EB%85%90-4e6a45dbcfe2
https://www.redhat.com/ko/topics/devops/what-is-ci-cd