본문 바로가기

MSA9

Istio 베하 비티시보이즈 입니다. 이번글에서는 Istio에 대해서 알아보겠습니다. istio는 서비스 메시를 관리하는 오픈 소스 소프트웨어입니다. Istio는 마이크로서비스 아키텍처에서 실행되는 서비스 간 통신과 각 서비스의 행동을 관리하며 네트워크 트래픽을 보안, 라우팅, 부하 분산 등의 작업을 수행할 수 있습니다. Istio는 Envoy와 같은 sidecar 프록시를 사용하여 애플리케이션 코드 수정 없이 인프라스트럭처 계층에서 행동을 제어할 수 있습니다. 그래서 Istio를 사용하게 되면 MSA의 분산 네트워크 환경에서 각 app들의 네트워크 연결을 쉽게 설정할 수 있게 됩니다. Service Mesh란? - 애플리케이션의 다양한 부분들이 서로의 데이터를 공유하는 방식을 제어하는 방법입니다. - API등을 .. 2023. 8. 4.
Kong API Gateway가 뭐예요? Kong이란 무엇인가? Kong 공식페이지를 보면, Kong은 MSA구성을 가속화하는 가장 유명한 오픈 소스 API Gateway라고 말합니다. 또한 경량화 된 프록시 환경위에 구축 되어 있어, 어디서든지 모든 마이크로 서비스에 성능 및 확장성을 제공한다고 합니다. 이외에도 가장 큰 특징은, 모든 기능을 Restful Interface로 제공하고 있으며, API Gateway를 구성하는 필수 기능들, 예를 들면 OAuth 인증, Logging, 유량제어 등을 Plugin 기반으로 손쉽게 추가하여 사용할 수 있으며, 위에서 언급한대로 Platform(런타임)에 구애받지 않고 어디서든지 Kong을 구축할 수 있습니다. Kong 시작하기 여러 문서나 블로그를 찾아보았는데, 대부분 Docker를 이용하여 설치를.. 2022. 12. 10.
MSA 장애 예방을 위한 Circuit Breaker(feat. Spring) 1. Test Source Code 1.1 main application @EnableCircuitBreaker Circuit breaker 사용을 위하여 EnableCircuitBreaker Annotation 추가합니다. @EnableHystrixDashboard HystrixDashboard 사용을 위하여 @EnableHystrixDashboard Annotation 추가합니다. 1.2. Service Circuit breaker 적용하기 위해서 실 서비스 메서드 위에 @HystrixCommand(fallbackMethod = “getFallback”) Annotation 정의하고, Service 장애 시 호출한 fallback 메서드는 getFallback 메서드로 지정합니다. 앞서 정의한 Fal.. 2022. 12. 2.
Circuit Breaker를 이용한 MSA 장애 예방 MSA (Micro Service Architecture) 의 문제점 MSA를 운영 하다 보니 어느 한 서버의 장애가 전체 장애로 확산이 되어 더 큰 문제가 되는 경우를 많이 경험할 수 있습니다. 이를 해결하기 위해 각 마이크로 서비스 간 전파 차단기 역할을 하는 Circuit Breaker에 대해 알아보고자 합니다. Circuit Breaker 의 역할 마이크로 서비스 사이에서 서비스의 상태를 확인 하여 정상일 때 API를 전달하고, 정상이 아님을 감지 했을 때 API 를 전달 하지 않고 쓰레드들이 응답을 기다리지 않도록 다른 메세지로 답을 하여 장애가 전파 되지 않도록 해주는 역할을 합니다. MSA 에서는 일반적으로 다른 서비스를 호출하여 데이터를 검색하며 Downstream 서비스가 다운될 가능성이.. 2022. 12. 2.
Ingress 란? - 1 반갑습니다! 💙베하💙 누구든 탑승할 수 있는 유임승차 팀의 BTC 룰루랄라 입니다!!💨😉 저번 포스팅은 쿠버네티스 기능 중 하나인 Service에 대해서 설명 드렸는데요~ 이번 포스팅에서는 Kubernetes의 Ingress에 대해서 추가적인 기능에 대해서 설명해 드리겠습니다. 이제 쿠버네티스 기능에 대해서 막바지로 달려가고 있네요~ 그럼 시작해 보겠습니다! 룰루랄라~♬ ⚡️ 목표 도메인을 이용하여 서로 다른 서비스에 접근하는 방법을 알아봅니다. 하나의 클러스터에서 여러 가지 서비스를 운영한다면 외부 연결을 어떻게 할까요? NodePort를 이용하면 서비스 개수만큼 포트를 오픈하고 사용자에게 어떤 포트인지 알려줘야 합니다. 그럴순 없죠! 위 샘플은 example.com, subicura.com/blog,.. 2022. 6. 27.
Service - 2 반갑습니다! 💙베하💙 누구든 탑승할 수 있는 유임승차 팀의 BTC 룰루랄라 입니다!!💨😉 저번 포스팅은 쿠버네티스 기능 중 하나인 Service에 대해서 설명 드렸는데요~ 이번 포스팅에서는 Kubernetes의 Service에 대해서 추가적인 기능에 대해서 설명해 드리겠습니다. Service는 애플리케이션을 동작하기 위한 가장 중요한 기능이므로 꼭 알아 두셔야 될 것 같아요!! 그럼 서비스에 대해서 추가적으로 알아 보겠습니다~ 룰루랄라~♬ Service(NodePort) 만들기 CluterIP는 클러스터 내부에서만 접근할 수 있습니다. 클러스터 외부(노드)에서 접근할 수 있도록 NodePort 서비스를 만들어봅니다. apiVersion: v1 kind: Service metadata: name: coun.. 2022. 6. 13.
Service - 1 반갑습니다! 💙베하💙 누구든 탑승할 수 있는 유임승차 팀의 BTC 룰루랄라 입니다!!💨😉 저번 포스팅은 쿠버네티스 기능 중 하나인 Deployment에 대해서 설명 드렸는데요~ 이번 포스팅에서는 Kubernetes의 Service에 대해서 간략하게 설명해 드리겠습니다. Service는 앞전 설명드렸던 개념들보다 알아두어야 할 기능들이 많으므로 2~3번에 걸쳐 포스팅 할 예정입니다! 그럼 서비스에 대해서 한번 알아 보겠습니다~ 룰루랄라~♬ ⚡️ 목표 Service(서비스)를 이용하여 Pod을 노출하고 클러스터 외부에서 접근할 수 있는 방법을 알아봅니다. Pod은 자체 IP를 가지고 다른 Pod과 통신할 수 있지만, 쉽게 사라지고 생성되는 특징 때문에 직접 통신하는 방법은 권장하지 않습니다. 쿠버네티스는 P.. 2022. 6. 2.
Deployment 반갑습니다! 💙베하💙 누구든 탑승할 수 있는 유임승차 팀의 BTC 룰루랄라 입니다!!💨😉 저번 포스팅은 쿠버네티스 기능 중 하나인 ReplicaSet에 대해서 설명 드렸는데요~ 이번 포스팅에서는 Kubernetes의 Deployment에 대해서 간략하게 설명해 드리겠습니다. 룰루랄라~♬ Deployment ⚡️ 목표 Deployment(배포)를 이용하여 Pod을 새로운 버전으로 업데이트하고 롤백하는 방법을 알아봅니다. Deployment는 쿠버네티스에서 가장 널리 사용되는 오브젝트입니다. ReplicaSet을 이용하여 Pod을 업데이트하고 이력을 관리하여 롤백Rollback하거나 특정 버전revision으로 돌아갈 수 있습니다. Deployment 만들기 이전에 만든 ReplicaSet을 Deployme.. 2022. 5. 20.