분류 전체보기

아래의 지난 글에서도 언급했듯이, 쿠버네티스에서 카나리아 배포를 사용할 경우 로드 밸런싱 때문에 문제가 생길 수 있다. 신 버전에서 구 버전 서버로 로드 밸런싱이 되어 UI/UX가 변경되는 등의 혼돈이 생기는 것이다. (자세한 글은 아래 참조!) [Kubernetes] 롤링(rolling) vs Blue/Green vs Canary 업데이트 시나리오 쿠버네티스에서 배포한 애플리케이션 코드가 수정되었거나, 보안 취약점을 수정하기 위해 패치를 했다고 가정해보자. 이 경우에는 버전 업데이트를 위해서 새 파드가 생성되어야 한 cn-c.tistory.com 그렇다면 이러한 종류의 문제는 어떻게 해결할 수 있을까? 어떻게 카나리아 배포가 있는 서버에 접속한 유저는 계속 카나리아 배포를 보도록 하고, 구 버전 서버에..
시나리오 쿠버네티스에서 배포한 애플리케이션 코드가 수정되었거나, 보안 취약점을 수정하기 위해 패치를 했다고 가정해보자. 이 경우에는 버전 업데이트를 위해서 새 파드가 생성되어야 한다. 즉, 새로운 이미지를 빌드하고, 이를 쿠버네티스 클러스터 상에 배포하여 사용자가 업데이트 된 버전에 접근 가능하도록 만들어 주어야 한다. 롤링(rolling) 업데이트 위와 같은 상황에서 쿠버네티스의 롤링 업데이트 기능(순차적 업데이트라고 이해하면 된다)을 사용하면 서비스 다운타임없이 업데이트를 해 줄 수 있다. 롤링 업데이트 메커니즘은 배포가 새 버전으로 업데이트될 시 새 ReplicaSet을 만들고, 이전 ReplicaSet의 레플리카가 감소하면서 새 ReplicaSet의 레플리카 수가 천천히 증가하는 것이다. 아래 그..
http://helloworld.com라는 주소를 가진 컴퓨터가 있다고 가정해보자. 이때 이 주소는 실제 ip 주소가 아닌, 도메인 주소이다. 도메인 주소란 인터넷에 연결된 컴퓨터를 사람이 쉽게 기억할 수 있도록 문자로 만든 인터넷 주소를 뜻한다. 이 컴퓨터의 실제 서버 주소는 127.0.0.1:3000와 같은 ip 주소이므로, 사용자들이 해당 주소를 기억하기 쉽지 않기 때문에 문자로 구성된 도메인 주소를 따로 만든 것이다. 📌 참고: DNS를 통한 도메인-ip 변환 도메인 주소를 ip 주소로 바꾸는 과정은 도메인 이름 시스템(DNS)에 의해 일어난다. DNS는 사용자가 요청한 도메인 주소에 대한 ip 주소 목록을 가지고 있을 경우 응답하고, 가지고 있지 않을 경우 다른 DNS 서버에게 다시 요청한다. ..
이번 챕터에서는 영역 특화 언어(Domain-Specific Language)를 통해 관용적인 API를 디자인하는 법을 배울 것이다. 전통적인 API와 DSL 스타일 API의 차이점을 공부하고, DSL 스타일 API가 다양한 실용적인 문제, 즉 DB 접근, HTML 생성, 테스팅 등에 사용되는 방법을 배울 것이다. 코틀린 DSL 설계는 코틀린 언어의 여러 특성을 활용하는데 그중 하나가 5장에서 살펴본 수신 객체 지정 람다이다. 또다른 새로운 특징은 invoke로, 이는 10장에서 KFunction을 call이나 invoke로 호출할 수 있는 것에 관해서 11장에 설명할 것이라고 하고 넘어갔다. invoke를 사용하면 DSL 코드 안에서 람다와 프로퍼티 대입을 더 유연하게 조합할 수 있다. #APIs에서 ..
지금까지 함수와 클래스에 대한 많은 feature를 보았지만, 이들은 전부 클래스나 함수의 이름을 명확하게 명시할 것을 요구한다. 예를 들어 함수를 호출하려면 해당 함수가 정의된 클래스나 이름, 또는 파라미터 타입을 알아야 한다. 그러나 Annotations과 reflection를 사용하면 이러한 제약에서 벗어나 미리 알고있지 않은 임의의 클래스를 다룰 수 있게 해준다. 애노테이션: 라이브러리가 요구하는 의미를 클래스에게 부여할 수 있음 리플렉션: 실행(runtime) 시점에 컴파일러 내부 구조를 분석할 수 있음 #애노테이션 선언과 적용 애노테이션의 핵심 컨셉은 코틀린에서도 비슷하다. 애노테이션은 추가적인 메타데이터를 선언할 때 사용할 수 있게 해준다. 메타데이터는 소스코드나 컴파일된 클래스 파일, 또는..
Developer Cathy
'분류 전체보기' 카테고리의 글 목록 (14 Page)