Stop Thinking, Just Do!

Sungsoo Kim's Blog

Istio and Service Mesh

tagsTags

18 May 2022


Article Source


Istio and Service Mesh

Abstract

In this video you will learn about Service Mesh and one of its implementation, which is Istio. In order to understand the concepts, we will first look at the new challenges introduced by a Microservice Architecture.

Then we will see how different features of a Service Mesh solve these challenges. We will look at how Istio implements Service Mesh and learn about Istio architecture as well as how to configure Istio for our microservice application.

Istio란?

Istio는 애플리케이션 네트워크 기능을 유연하고 쉽게 자동화할 수 있는 투명한 언어 독립적 방법을 제공하는 현대화된 서비스 네트워킹 레이어인 서비스 메시다. 클라우드 기반 애플리케이션을 구성하는 다양한 마이크로서비스를 관리하는 데 널리 사용되는 솔루션이다. Istio 서비스 메시는 또한 이러한 마이크로서비스가 서로 통신하고 데이터를 공유하는 방법을 지원한다.

조직이 클라우드로의 이동을 가속화하면서 필요에 따라 애플리케이션도 현대화하고 있다. 그러나 모놀리식 레거시 앱을 클라우드 기반 앱으로 전환하면 DevOps팀에 문제가 발생할 수 있다.

개발자는 클라우드에서 이동성을 보장하기 위해 느슨하게 결합된 마이크로서비스를 사용하여 앱을 어셈블하는 방법을 학습해야 한다. 동시에 운영팀은 점점 더 커지는 하이브리드 및 멀티 클라우드 환경 내에서 새로운 클라우드 기반 앱을 관리해야 한다. Istio를 사용하면 이러한 작업을 수행할 수 있다.

Istio의 정의

Istio는 조직에서 분산형 마이크로서비스 기반 앱을 어디서나 실행할 수 있도록 지원하는 오픈소스 서비스 메시다. 왜 Istio를 사용해야 하나요? Istio를 통해 조직은 마이크로서비스를 보호, 연결, 모니터링할 수 있으므로 엔터프라이즈 앱을 더욱 빠르고 안전하게 현대화할 수 있다.

Istio는 애플리케이션 코드를 변경할 필요 없이 서비스 간 트래픽 흐름을 관리하고 액세스 정책을 적용하며 원격 분석 데이터를 집계한다. Istio는 기존의 분산형 애플리케이션에 투명하게 레이어링하여 배포 복잡성을 완화한다.

Istio 서비스 메시의 이점

  • 일관된 서비스 네트워킹 달성
    • 네트워킹 운영자는 개발자 오버헤드를 추가하지 않고도 모든 서비스의 네트워킹을 일관성 있게 관리할 수 있다.
  • Istio 이점을 통한 서비스 보호
    • 보안 운영자는 인증, 승인, 암호화를 비롯한 서비스 간 보안을 쉽게 구현할 수 있다.
  • 애플리케이션 성능 향상
    • 카나리아 롤아웃과 같은 권장사항을 구현하고 애플리케이션을 심도 있게 파악하여 성능을 개선하기 위해 집중해야 하는 부분을 파악할 수 있다.

Istio, Envoy, Kubernetes의 작동 방식

Istio와 Istio 아키텍처를 이해하기 위해서는 Envoy와 Kubernetes에 대해 알아야 한다. Istio 대 Envoy 또는 Istio 대 Kubernetes의 문제가 아니다. 마이크로서비스 기반의 컨테이너화된 환경이 원활하게 작동하도록 이들을 함께 사용할 수 있다.

예를 들어 Istio 같은 서비스 메시는 제어 영역과 데이터 영역으로 구성된다. Istio는 Envoy의 확장된 버전을 데이터 영역으로 사용한다. 그러면 Envoy가 Istio 서비스 메시의 모든 인바운드 트래픽과 아웃바운드 트래픽을 관리한다.

반면 Kubernetes는 컨테이너화된 애플리케이션을 자동화하고 조정하여 이를 배포 및 확장하는 데 사용되는 많은 수동 프로세스를 제거하는 오픈소스 플랫폼이다. Istio는 플랫폼에 독립적이지만, 개발자들은 Istio와 Kubernetes를 함께 사용하는 경우가 더 많다.

Istio는 플랫폼에 독립적이며 다양한 환경에서 실행되도록 설계되었다.

  • 클라우드
  • 온프레미스
  • Kubernetes
  • Mesos

Istio의 용도

Istio를 통해 조직은 분산형 애플리케이션을 대규모로 제공할 수 있다. 트래픽 관리, 승인, 암호화는 물론 감사 및 관측 가능성과 같은 서비스 간 네트워크 작업을 단순화한다. 다음은 Istio의 이점을 제공하는 가장 일반적인 사용 사례다.

안전한 클라우드 기반 앱

강력한 ID 기반 인증, 승인, 암호화를 통해 애플리케이션 수준에서 보안을 강화할 수 있다.

효율적인 트래픽 관리

다양한 라우팅 규칙, 재시도, 장애 조치, 결함 주입으로 트래픽 동작을 세밀하게 제어할 수 있다.

서비스 메시 모니터링

Istio의 강력한 추적, 모니터링, 로깅 기능으로 서비스 성능이 업스트림에 미치는 영향을 자세히 파악할 수 있다.

Kubernetes 및 가상 머신을 통한 간편한 배포

Istio는 컨테이너 및 가상 머신을 포함한 기존 워크로드와 최신 워크로드 모두에 대해 가시성과 네트워크 제어를 제공한다.

고급 기능으로 부하 분산 간소화

클라이언트 기반 라우팅, 카나리아 롤아웃과 같은 고급 기능과 함께 모든 트래픽에 자동화된 부하 분산을 사용할 수 있다.

정책 시행

액세스 제어, 비율 제한, 할당량을 지원하는 플러그인 가능한 정책 레이어 및 구성 API를 사용하여 정책을 시행할 수 있다.


comments powered by Disqus