본문 바로가기

DevOps/CI-CD5

[CI-CD] 도커 설계 예시 문제 다음과 같은 구조의 웹 서비스를 개발 및 배포하려는 상황 [서비스 구성]- FE: React- BE 1: Spring Boot (CRUD API 서버)- BE 2: FastAPI (AI 처리 서버)- DB: MySQL, Redis[요구사항]- 로컬 개발 환경에서는 Docker Compose로 전체 서비스 실행 가능해야 함- CI/CD를 통해 Docker 이미지 빌드 및 레지스트리 push가 자동화- 서비스 간 통신은 내부 네트워크를 통해 이루어지는 상황- 장애 발생 시 롤백이 가능해야 함[고려사항]Docker 레이어 캐시 및 빌드 최적화이미지 태깅 전략서비스 간 의존성 및 기동 순서 문제 1. docker-compose로 구성된 서비스에서 Spring Boot 컨테이너가 MySQL에 접근하려는 상황올바.. 2026. 4. 21.
[CI-CD] GitHub Actions과 GitHub Secrets 개념 CI-CD는 이런 관점에서 생기게 되었다“코드를 푸시했는데 자동으로 테스트가 돌아가고, 빌드가 끝난 뒤 배포까지 된다면 얼마나 좋을까?”이런 자동화를 가능하게 하는 도구 중에서 가장 보편적이고 가장 쉬운 툴이 바로 GitHub Actions이다. ㅁGitHub Actions: GitHub 레포지토리 안에서 자동화된 워크플로우를 구성할 수 있는 CI/CD 도구 CI: Continuous Integration(지속적 통합)CD: Continuous Deployment(지속적 배포)즉, 코드 변경이 발생할 때마다 자동으로 빌드·테스트·배포를 수행하도록 설정할 수 있는 시스템이다. GitHub Actions는 workflow파일(.yml 형식)을 기반으로 작동한다. e.g. backend-cicd.yaml.. 2025. 10. 16.
[CI-CD] ArgoCD를 쓰는 이유 ㅁArgoCD(Argo Continuous Delivery): K8s 환경에서 배포(Delivery)를 Git 기반으로 자동화할 수 있게 도와주는 GitOps 툴 쉽게 말하면, “Git 저장소에 있는 K8s YAML 파일을 기준 삼아서, 클러스터 상태를 그와 동기화(Sync) 시켜주는 도구”다시 말해, k apply -f를 사람이 직접 입력하지 않아도, Git에 있는 파일만 바꾸면 알아서 반영되게 만드는 게 핵심이다!k apply -f 는 명령 기반 / ArgoCD는 상태 기반 ArgoCD는 왜 쓰는가?ArgoCD를 도입하는 가장 큰 이유는 아래 3가지이다 배포의 일관성과 추적성 확보Git에 있는 YAML 파일만이 단일 소스(Single Source of Truth)누가 언제 어떤 설정을 바꿨는지 .. 2025. 5. 2.
[CI-CD] Jenkinsfile 작성법 https://claremont.tistory.com/entry/CI-CD-%EC%A0%A0%ED%82%A8%EC%8A%A4Jenkins-%EA%B0%9C%EB%85%90-%EC%9E%A1%EA%B8%B0 [CI-CD] 젠킨스(Jenkins) 개념 잡기CI/CD를 처음 접할 때, 보통 Github Actions 와 Jenkins 라는 이름을 자연스럽게 접하게 된다!깃허브 액션이 좀 더 쉽고 간편하고, 젠킨스가 좀 더 복잡하기는 하다하지만 그만큼 더 강력하다 이 글에서claremont.tistory.com 저번 글에서 Jenkins의 개념과 설치 방법, 그리고 기본적인 동작 방식에 대해 다뤄봤다.특히 Jenkins가 왜 필요한지, 어떻게 소스 변경을 감지하고 빌드-테스트-배포까지 자동화하는지 전체적인 .. 2025. 5. 2.
[CI-CD] 젠킨스(Jenkins) 개념 잡기 CI/CD를 처음 접할 때, 보통 Github Actions 와 Jenkins 라는 이름을 자연스럽게 접하게 된다!깃허브 액션이 좀 더 쉽고 간편하고, 젠킨스가 좀 더 복잡하기는 하다하지만 그만큼 더 강력하다 이 글에서는 Jenkins가 무엇인지, 왜 필요한지, 그리고 기본적인 동작 방식을 정리해보려 한다 젠킨스는 주로 지속적 통합(Continuous Integration, CI) 과 지속적 배포(Continuous Delivery, CD) 를 위한 도구로 사용된다. 쉽게 말하면, "코드를 커밋하거나 푸시할 때마다, Jenkins가 알아서 빌드, 테스트, 배포까지 자동으로 처리해주는 시스템" 이다.Jenkins를 이용하면 사람이 직접 빌드 명령어를 입력하거나 서버에 수동으로 코드를 올리는 과정을 생략.. 2025. 4. 29.