MSA & 쿠버네티스(Kubernetes) - k8s
-
Message System이란?MSA & 쿠버네티스(Kubernetes) - k8s 2022. 3. 18. 17:03
용어 정리 MOM ( Message Oriented Middleware, 메시지 지향 미들웨어) 독립된 애플리케이션 간에 데이터를 주고받을 수 있도록 하는 시스템 디자인 함수 호출, 공유 메모리 등의 방식이 아닌, 메시지 교환을 이용하는 중간 계층에 대한 인프라 아키텍처 개념 서비스 간의 결합이 낮아지고 비동기로 메시지를 전달함. Message Broker 메시지 처리 또는 메시지 수신자에게 메시지를 전달하는 시스템으로 MOM을 기반으로 구축됨 MQ(Message Queue, 메시지 큐) Message Broker와 MOM을 구현한 소프트웨어 ( RabbitMQ, ActiveMQ, kafka 등) MOM은 메시지 전송 보장을 해야 하므로 AMQP를 구현함 AMQP(Advanced Messgae Queue..
-
서비스 메시(Service Mesh)란? + API Gateway와 차이점MSA & 쿠버네티스(Kubernetes) - k8s 2022. 3. 17. 13:22
서비스 메시란? Mesh란 그물,망사라는 뜻을 가지고 있으며, Service Mesh는 Serivce들이 그물처럼 엮여있는것을 뜻합니다. MicroService Architecture를 적용한 시스템의 내부 통신이 그물(Mesh) 네트워크의 형태를 띄는 것에 빗대어 Service Mesh로 명명됩니다. 애플리케이션 계층이 아닌 인프라 플랫폼 계층에 특정 모듈을 삽입하여 애플리케이션에 대한 라우팅, 보안 및 안정성 기능을 추가하는 도구입니다. 서비스 메시는 쿠버네티스와 같은 컨테이너 오케스트레이션 환경에서 일반적으로 애플리케이션 코드(사이드 카 라고 불리는 패턴)와 함께 배치된 확장 가능한 네트워크 프록시 모듈로 구현됩니다. 그림을보면 MicroService와 SideCar로 구성되어 있고, SideCar..
-
API 게이트웨이(Gateway)란?MSA & 쿠버네티스(Kubernetes) - k8s 2022. 3. 14. 01:05
API 게이트웨이(Gateway)란? API란? Application Programming Interface의 약자로 컴퓨터나 컴퓨터 프로그램 사이의 연결을 제공합니다. 게이트웨이란? 컴퓨터 네트워크에서 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 컴퓨터나 소프트웨어를 두루 일컫는 용어 Microservice Architecture(이하 MSA)에서 언급되는 컴포넌트 중 하나이며, 모든 클라이언트 요청에 대한 end point를 통합하는 서버입니다. 서비스로 전달되는 모든 API요청의 관문역할을 하는 서버로 시스템의 아키텍처를 내부로 숨기고 외부의 요청에 대한 응답만을 적절하게 합니다. 클라이언트는 서버의 구조가 Monolithic Archiecture인지 Microserv..
-
프록시 서버란?MSA & 쿠버네티스(Kubernetes) - k8s 2022. 3. 13. 23:20
프록시 서버란? 단순히 캐시 같은 기능을 하는 서버..?라고만 알고 있었기 때문에 확실하게 정리해보고자 합니다. Proxy라는 단어의 뜻은 무엇일까요? '대리' 라는 의미를 가집니다. 네트워크 기술에서는 프락시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킵니다. 간단히 말하자면 프록시 서버는 클라이언트와 서버 사이의 중개인(대리인)으로써 클라이언트의 모든 HTTP 요청을 받아 서버로 전달합니다. Alice와 Bob이 직접 통신하면 될 텐데 왜 프락시 서버를 사용할까요? 1. 캐시 데이터를 사용하기 위해 프록시 서버 중 일부는 프록시 서버에 요청된 내용을 캐시를 사용해 저장해둡니다. 그러면 캐시에 저장되어 있는 내용에 ..
-
MSA 아키텍쳐란?MSA & 쿠버네티스(Kubernetes) - k8s 2022. 3. 5. 15:59
모놀리식 아키텍처 (Monolithic Architecture) Monolithic은 사전적 의미로 단단히 짜여 하나로 되어 있는, 돌덩이 하나의 라는 의미를 가집니다. 기존에 우리가 사용하던 전통적인 방식의 개발 방법을 모놀리식 아키텍처라고 불립니다. 아래의 그림처럼 한 덩어리의 구조라고 볼 수 있습니다. 핵심 비즈니스 로직이 하나의 돌덩이처럼 뭉쳐있습니다. 장점 1. 어떤 기능이던지 개발되어있는 환경이 같아서 복잡하지 않습니다. 2. 쉽게 고가용성 서버 환경을 만들 수 있습니다. (같은 애플리케이션을 하나 더 생성) 3. End-to-End 테스트가 용이합니다. ( MSA의 경우 테스트에 필요한 서비스들을 모두 동작시켜야 함) 단점 1. 한 프로젝트가 너무 커지게 되면 애플리케이션의 구동 시간이 증가..
-
쿠버네티스(Kubernetes,k8s)란?MSA & 쿠버네티스(Kubernetes) - k8s 2022. 3. 2. 16:30
쿠버네티스란? 쿠버네티스는 그리스어로 "키잡이"를 뜻에서 유래되었습니다. 쿠버네티스 또는 k8s로 불리는데 k8s라는 표기는 첫 글자 k와 마지막 글자 s 사이에 8글자를 나타내는 약식 표기입니다. 컨테이너화 된 애플리케이션의 자동 배포, 스케일링 등을 제공하는 오픈소스 기반의 관리시스템입니다. 구글에 의해 설계되었고 리눅스 재단인 CNCF에 의해 관리되고 있습니다. 도커를 포함하여 일련의 컨테이너 도구들과 함께 동작합니다. 컨테이너화된 애플리케이션..? 아래 글을 읽어보시면 좀 더 이해가 잘되실 텐데 VM에서 O/S가 빠져있는 것이 바로 컨테이너이며 이 컨테이너를 통해 배포함을 의미합니다. 쿠버네티스를 사용하는 이유? 전통적인 배포 시대 애플리케이션을 물리 서버에서 실행했습니다. 만약에 하나의 물리 서..