전체 글

전체 글

    [쿠버네티스 공부] Deployment란?

    그저 사이드 플젝에서 한 번 써보고 싶어서... 쿠버네티스를 공부를 하면서 정리하는 글입니다. Deployment Deployment는 Replicaset의 상위 오브젝트이기 때문에 Deployment를 생성하면 해당 Deployment에 대응하는 Replicaset도 함께 생성된다. 따라서 Deployment를 사용하면 Pod, Replicaset을 직접 생성할 필요가 없다. Deployment를 사용하는 이유? 쿠버네티스는 그럼 왜 Replicaset을 그대로 사용하지 않고, 굳이 상위 개념인 Deployment를 사용해서 간접적으로 Replicaset을 생성하는 것 일까? Deployment를 사용하는 핵심적인 이유는 애플리케이션의 업데이트와 배포를 더욱 편하기 만들기 위해서이다. Deploymen..

    AOP란? 횡단 관심사? 흩어진 관심사?

    AOP가 뭐지? AOP는 Aspect Oriented Programming, 즉 관점 지향 프로그래밍이란, 횡단 관심사(흩어진 관심사)(cross-cutting concern)의 분리를 허용함으로써 모듈성을 증가시키는 것이 목적인 프로그래밍 패러다임이다. 횡단 관심사 (흩어진 관심사)가 뭐지? 여기서 먼저 횡단 관심사란 무엇일까요? 이를 이해하기 위해서 두 가지 helloA(), helloB() 샘플 메소드를 봅시다. public void helloA() { System.out.println("Start......"); AAA(); System.out.println("End......"); } public void helloB() { System.out.println("Start......"); BBB(..

    [Spring] IoC 컨테이너와 DI와 빈의 스코프

    IoC 컨테이너와 DI IoC란? 스프링에서는 오브젝트의 생성, 제거, 사용 및 주입 등의 작업을 개발자가 직접 애플리케이션 코드에 작성하는 대신 독립된 컨테이너가 담당한다. 이를 컨테이너가 코드 대신 (빈) 오브젝트에 대한 제어권을 가지고 있다 해서 IoC (Inversion Of Control)이라고 한다. IoC 컨테이너 vs 빈 팩토리 vs 애플리케이션 컨텍스트 스프링에서는 IoC를 담당하는 컨테이너를 빈 팩토리 또는 애플리케이션 컨텍스트라고 부르기도 한다. 단순히 오브젝트의 생성과 오브젝트 간의 런타임 관계를 설정하는 DI 관점으로 볼때는 빈 팩토리라고 하지만, 스프링 컨테이너는 단순한 DI 작업외에도 더 많은 일을 한다 그래서 더 큰 관점에서 애플리케이션 컨텍스트라고 부르기도 한다. IoC 컨..

    [배포 전략]: Recreate, Rolling Update, Blue/Green, Canary 배포가 뭐죠?

    Deployment Strategy 오늘은 다양하게 발전하고 있는 서비스 배포 전략 기법 중 Recreate, Rolling Update, Blue/Green, Canary 배포 전략에 대해서 정리해봤습니다. 1. Recreate 가장 단순한 배포 전략으로, 기존 버전의 서버를 모두 삭제한 다음 새로운 버전의 서버를 생성하는 방법. 단점) 서비스에 대한 일시적인 DownTime(중단 시간)이 존재한다. (무중단 배포 X) 2. Rolling Update 기존 버전의 서버를 하나씩 죽이고 새로운 버전의 서버를 하나씩 띄우면서 순차적으로 교체하는 방법이다. 즉, 서버를 하나하나씩 버전을 업그레이드하는 방식 장점) 배포 중 추가 자원을 요구하지만, 서비스 DownTime 시간이 없음 단점) 하지만, 이전의 버..

    [쿠버네티스 공부] Replicaset은 무엇일까?

    그저 사이드 플젝에서 한 번 써보고 싶어서... 쿠버네티스를 공부를 하면서 정리하는 글입니다. ReplicaSet, Replication Controller(Deprecated) Replication은 Pod의 Label과 Replication의 Selector를 통해 파드에 연결할 수 있다. Template Template에 파드의 내용을 넣게 되는데, 컨트롤러는 파드에 이상이 생기면 재생성 시키는 역할을 한다. 이때 파드가 다운되면, Template을 통해 파드를 생성한다. 이러한 특징을 통해 버전 업그레이드시 Template에 Pod:v2로 업그레이드 후, 기존의 파드를 다운시키면 컨트롤러는 Template을 가지고 파드를 재 생성한다. => 버전 업그레이드 Replicas 파드의 갯수를 관리 & ..