Argo Rollouts (1) - 개요와 설치하기
1. 개요 일반 Kubernetes Deployment를 수정하면 새 ReplicaSet을 만들고, 기본 RollingUpdate 전략에 따라 이전 Pod와 새 Pod를 점진적으로 교체한다. 이 전략은 간단하지만 새 버전을 얼마나 노출할지, 중간에 관찰을 위해 멈출지,…
1. 개요 일반 Kubernetes Deployment를 수정하면 새 ReplicaSet을 만들고, 기본 RollingUpdate 전략에 따라 이전 Pod와 새 Pod를 점진적으로 교체한다. 이 전략은 간단하지만 새 버전을 얼마나 노출할지, 중간에 관찰을 위해 멈출지,…
1. 개요 카나리 배포는 새 버전을 일부에 먼저 적용하고, 오류율·응답 시간·로그처럼 중요한 신호를 확인한 뒤 점차 배포 범위를 넓히는 방식이다. 이번 실습에서는 파란색( blue ) 버전을 먼저 5개 배포한 뒤, 노란색( yellow ) 버전을 20%부터 점진적으로…
1. 개요 내장 Tomcat과 DispatcherServlet 처럼 애플리케이션을 실행하기 위해 필요한 기술 객체까지 애플리케이션 클래스에 함께 두면, 비즈니스 코드와 기반 설정의 경계가 흐려진다. 이번 글에서는 여러 애노테이션을 하나로 묶는 합성 애노테이션(compo…
1. 개요 앞 글에서는 @Import 에 TomcatWebServerConfig 와 DispatcherServletConfig 를 직접 적어 인프라 빈을 분리했다. 구성 클래스가 몇 개뿐이라면 충분하지만, 라이브러리가 제공하는 기능이 많아지면 애노테이션 코드를 고칠 때…

1. 개요 앞 글에서 만든 @MyAutoConfiguration 에는 @Configuration(proxyBeanMethods = false) 가 들어 있다. false 하나가 무엇을 바꾸는지 알려면, @Bean 메서드가 일반 자바 메서드와 다르게 동작하는 이유부터 살…
1. 개요 앞 글에서는 스프링 컨테이너가 HelloController 와 HelloService 를 만들고 연결하도록 구성했다. 이번에는 그 연결 방식인 의존성 주입(DI, Dependency Injection) 을 테스트에 활용한다. DI를 적용하면 컨테이너를 띄우지…

1. 개요 여러 사람이 코드를 합치면 빌드, 테스트, 배포 확인을 반복해야 한다. Jenkins는 이런 반복 작업을 이벤트나 일정에 따라 실행하는 오픈 소스 자동화 서버다. Git 저장소에서 코드를 가져와 테스트하고, 이미지를 만들고, 결과를 알리는 CI/CD 흐름을…
1. 개요 Jenkins를 설치한 뒤에는 무엇을 언제 실행할지 Job으로 정의한다. 가장 단순한 Freestyle Job은 화면에서 소스 저장소, 실행 명령, 실행 뒤 동작을 설정할 수 있어 Jenkins의 기본 흐름을 익히기에 좋다. 이 글에서는 Freestyle J…

1. 개요 수동으로 Build Now 를 누르는 방식은 자동화의 출발점일 뿐이다. 실제 CI는 코드가 바뀌었을 때 Jenkins가 알아서 빌드해야 한다. Jenkins에는 GitHub가 변경 사실을 알려 주는 Webhook 방식과 Jenkins가 저장소를 주기적으로 확…
1. 개요 Freestyle Job은 빠르게 시작할 수 있지만, 화면에서 바꾼 빌드 절차는 애플리케이션 코드와 함께 리뷰하거나 버전을 비교하기 어렵다. Jenkins Pipeline은 빌드·테스트·배포 순서를 코드로 작성하고 Jenkinsfile 로 저장소에 커밋하는…