서비스 메시 (Service Mesh)

개념

마이크로서비스 세계에서, 앱은 네트워크를 통해 통신하는 여러 개의 작은 서비스로 나뉜다. Wi-Fi 네트워크와 마찬가지로 컴퓨터 네트워크는 본질적으로 신뢰할 수 없고, 해킹될 수 있으며, 종종 느려지기도 한다. 서비스 메시는 서비스 간의 트래픽(즉, 통신)을 관리하고 모든 서비스에 걸쳐 균일하게 안정성(reliability), 관찰 가능성(observability) 및 보안 기능을 추가함으로써 이러한 새로운 문제들을 해결한다.

다루는 문제

마이크로서비스 아키텍처로 전환한 엔지니어들은 이제 수백에서 심지어는 수천 개의 개별 서비스를 처리하고 있으며, 이들은 모두 통신을 필요로 한다. 이는 곧 많은 트래픽이 네트워크를 통해 송수신되는 것을 의미한다. 또한 개별 애플리케이션은 규제 요구 사항을 만족하기 위해 통신을 암호화하거나, 운영 팀에 공통 메트릭을 제공하거나, 문제 진단에 도움이 되도록 트래픽에 대한 자세한 통찰을 제공해야 할 수 있다. 이러한 기능을 개별 응용 프로그램에 내장한다면, 각 기능 때문에 팀 간 마찰이 발생하거나 새로운 기능의 개발 속도가 늦어질 수 있다.

문제 해결 방식

서비스 메시는 코드 변경 없이 클러스터 전체의 모든 서비스에 걸쳐 균일하게 안정성, 관찰 가능성 및 보안 기능을 추가한다. 서비스 메시 이전에는 해당 기능이 모든 서비스에 각각 인코딩되어야 했고, 이는 버그와 기술 부채(technical debt)의 잠재적 원인이 되었다.