Service Mesh 이해하기, 1부
오늘날 클라우드 기반의 마이크로서비스 아키텍처는 많은 조직이 자신의 어플리케이션을 구축하고 배포하는 주요한 방법이 되었습니다. 그러나 이러한 분산 시스템의 복잡성을 관리하는 것은 많은 도전과제를 가지고 있습니다. 그 해결책 중 하나가 바로 Service Mesh 입니다. 이 포스트에서는 Service Mesh의 핵심 이해를 돕기 위해 명확하게 설명하겠습니다.
IT 산업에서 가장 큰 이슈 중 하나는 Service Mesh 개념입니다. NGINX에서는 NGINX Plus의 검증된 능력을 활용하여 컨테이너화된 애플리케이션 간 상호 프로세스 통신을 용이하게 하고 보안을 강화하는 Service Mesh를 구현하는 실험을 시작했습니다. “Service Mesh 란 무엇인가?”라는 질문에 처음 답변했을 때부터, Service Mesh 솔루션의 혁신과 상용화는 급격히 발전해왔습니다.
이 글에서는 새롭게 등장한 주요 개발 동향을 요약하고 강조하겠습니다.
목차
1. Service Mesh란?
2. Service Mesh의 장점
3. Service Mesh의 동작방식
4. Service Mesh 업계 위치
5. Service Mesh 사용 사례
6. 결론
1. Service Mesh란?
Service Mesh는 마이크로서비스 간의 네트워크 통신을 관리하고 조절하는 소프트웨어 인프라입니다. 이는 개별 서비스들의 복잡성을 줄이고 보안, 관찰성, 유연성, 높은 가용성을 보장하는 중요한 역할을 합니다.
2. Service Mesh의 장점
Service Mesh를 이용하면 개발자는 마이크로서비스 간의 통신에 대한 부담을 줄일 수 있습니다. 트래픽 관리, 서비스 검색, 로드 밸런싱, 인증, 권한 부여, 보안, 측정 및 모니터링 등 복잡한 네트워크 작업들이 Service Mesh에 의해 처리되며, 개발자는 비즈니스 로직에만 집중할 수 있습니다.
3. Service Mesh의 동작 방식
Service Mesh는 일반적으로 두 개의 주요 구성 요소인 데이터 플레인과 컨트롤 플레인으로 구성됩니다.
데이터 플레인은 개별 서비스 인스턴스에 주입되는 프록시를 통해 모든 네트워크 트래픽을 관리합니다. 이러한 프록시는 NGINX와 같은 오픈 소스 소프트웨어를 사용합니다.
컨트롤 플레인은 이러한 프록시를 관리하고 구성하는 역할을 합니다. Istio, NGINX Service Mesgh 등의 Service Mesh 솔루션은 이러한 컨트롤 플레인을 제공합니다.
4. Service Mesh 업계 위치
기업의 인프라 및 운영, DevOps 전문가들 중 일부만 Service Mesh에 대해 실험해 보았습니다.
그들은 일반적으로 공개 및 기업 앱을 빠르게, 안전하게, 확장 가능하게 제공하는 책임이 있는 신뢰할 수 있는 전략가와 기술 혁신자입니다. 가용성, 성능 및 이용률에 대한 서비스 수준 목표를 충족하면서 경쟁 업체보다 더 많은 가치를 제공하는 것이 이러한 혁신자들의 주요 전략적 동기입니다.
혁신자들은 Service Mesh가 더 나은 DevOps 프로세스 플랫폼으로 발전할 수 있는 방법을 구상합니다.
지난 1년 정도 동안, Service Mesh와 관련된 기술 중 일부가 주도적인 역할을 하기 시작했습니다.
예를 들어, 컨테이너를 위한 Docker와 오케스트레이션 (Orchestration)을 위한 Kubernetes가 그 중 일부입니다.
구글, IBM 및 Lyft에서 지원하는 오픈소스 프로젝트인 Istio는 기업 아키텍트들 사이에서 계속해서 관심을 받고 있습니다. 그러나 Istio는 복잡하여 사용하기 어렵고, 상당한 인프라 용량을 필요로 합니다. 이로 인해 다양한 실험 및 프로젝트가 소개, 개선 또는 통합되었습니다.
5. Service Mesh 사용 사례
- Solo.io는 조직이 여러 Service Mesh를 사용할 수 있도록 하는 “Service Mesh 오케스트레이터 (Orchestrator)”로 SuperGloo를 도입했습니다.
- HashiCorp는 잘 알려진 서비스 레지스트리 도구와 함께 Sidecar proxy를 관리하기 위한 Consul Connect 도구를 번들로 제공하여 Consul을 Service Mesh로 재패키징했습니다.
- Conduit은 Linkerd 와 합병했으며 CNCF(Cloud Native Computing Foundation)는 Linkerd 2.0을 공식 프로젝트로 채택했습니다.
동시에, 적용 가능성과 개념적인 사용 사례를 테스트하기 위해 수행된 일부 초기 단계 실험은 종료되거나 다른 프로젝트와 합쳐졌습니다. NGINX는 더 이상 nginMesh 프로젝트를 개발하고 있지 않으며 개방형 소스 커뮤니티에 개발 및 지원을 맡겼습니다. NGINX Conf 컨퍼런스에서 NGINX는 NGINX 애플리케이션 플랫폼을 기반으로 엔터프라이즈급 솔루션을 제공하기 위한 대담하고 새로운 방향을 추구할 것을 발표했습니다.
6. 결론
Service Mesh는 마이크로서비스 아키텍처에서 네트워킹 문제를 해결하는 효과적인 방법입니다. 이는 개발자들이 효율적으로 서비스를 개발하고 유지보수하는 데 큰 도움을 주며, 기업들이 더욱 안정적인 서비스를 제공할 수 있게 해줍니다.
NGINX는 Service Mesh의 흥미진진하고 빠른 개발과 상용화를 예상하고 비즈니스에서 요구하는 기능을 성공적으로 제공할 수 있도록 지원하기를 기대합니다. 이 시리즈의 다음 포스트에서는 여러 Service Mesh 주제를 살펴보겠습니다.
먼저 티핑 포인트, 즉 Service Mesh의 이점이 비용과 위험을 능가하는 시기를 파악하는 방법과 해당 지점에 도달하기 전에 앱 제공 인프라를 개선하는 방법을 고려합니다. 그런 다음 가용성, 성능, 보안, 유연성, 확장성, 정책 관리 및 사용 용이성과 같은 기능의 중요한 측면을 자세히 살펴보겠습니다. NGINX는 당신이 그 여정에 NGINX와 함께하기를 바랍니다!