마이크로 서비스 관련 Tool

마이크로 서비스 Tool이라고 표현했지만, 다양한 기술의 모음이라고 생각하면 된다. 이번 글에서는 서로 다른 용도로 사용되는 마이크로 서비스 Tool에 대해서 살펴 볼 것이다.

운영체제

Image for post
Image for post

어플리케이션을 만들때에 가장 중요한 요소 중 하나는 적합한 기반을 설정하는 것이고, 결국 어플리케이션은 운영체제를 기반으로 수행되게 된다. Linux는 이런 운영체제중에 하나이며 가장 일반적으로 사용된다.
Linux container를 사용하여 실행 환경 및 보안, 네트워킹, 스토리지와 같은 부분을 조절할 수 있다.

프로그래밍 언어

마이크로 서비스의 주요 장점은 다른 언어와 기술을 사용할 수 있다는 점이다. 따라서 개발자는 자유롭게 기술 스택을 선택하고 어플리케이션을 개발 할 수 있다. 그러나 현재 시점에서 가장 많이 사용되는 언어는 Java기반의 Spring Boot이다.

Spring Boot

Image for post
Image for post

Spring Boot는 단 몇줄의 코드로 REST기반의 마이크로 서비스 개발을 단순화 한다.

  • 어플리케이션 개발을 빨리 시작하기 위해 일련의 자동 구성 기능을 제공

API 관리 및 테스트 도구

Postman

Image for post
Image for post

Postman은 API테스트를 쉽게 할 수 있도록 도와주는 UI 기반의 툴이다.
Postman의 도움으로 인해 RESTful API 리소스 탐색이 매우 쉬워진다. 또한 결과 테스트도 도움이 많이 된다.

  • Postman은 어플리케이션의 개발 사이클과 쉽게 통합된다. (CI에서 활용 가능)

API Fortress

Image for post
Image for post

API Fortress는 부하 테스트, 상태 모니터링 및 기능 테스트를 자동화하는 Tool이다.

  • 이 도구는 API 관리 플랫폼을 점검하는 용도이다.

메시징

마이크로 서비스는 다른 서비스간 통신이 많기 때문에 Messaging Queue를 사용할 수 있다. 메시징에 사용되는 도구는 아래와 같다.

Apache kafka

Image for post
Image for post

Apache Kafka는 LinkedIn에서 처음 개발한 분산 Pub/Sub 메시징 시스템이고 현재 Apache 프로젝트의 일부이다. Kafka는 확장 가능하고 민첩한 장점을 지니고 있다. 데이터 처리 또는 API 호출에 사용할 수 있는 분산 스트림 처리 플랫폼이다.

Apache Kafka의 기능은 아래와 같다.

  • Kafka는 안정적인 성능을 유지하기 위해서 Pub/Sub에 대한 처리량이 높다.

RabbitMQ

Image for post
Image for post

Kafka와 마찬가지로 이 툴을 사용하여 마이크로 서비스를 서로 연결하여 분산 시스템의 문제를 해결 할 수 있다. 각 개별 서비스간에 이벤트를 교환 할 수 있다.

  • 안정성, 지속성, Publisher 확인 및 고가용성과 같은 기능을 제공한다.

Orchestration 도구

Kubernetes

Image for post
Image for post

Kubernetes는 오픈 소스 컨테이너 관리 도구이다. 컨테이너 관리에는 컨테이너 배포, 컨테이너 확장 및 스케일 제거, 컨테이너 로드 밸런싱등이 포함된다.

관점에 따라서 Kubernetes가 평범하고 중요하지 않다고 느낄 수 있다. 그러나 컨테이너 관리를 위해서는 Kubernetes가 필요하고 컨테이너를 만들기 위해서는 Docker가 필요하다. Kubernetes의 기능은 아래와 같다.

  • Kubernetes를 사용하면 이미지를 다시 작성하지 않고도 어플리케이션 구성을 배포하고 업데이트 할 수 있다.

Istio

Image for post
Image for post

Istio는 Kubernetes에서 서비스 배포를 지원한다. 또한 마이크로 서비스 통신에 대한 관리 효율성, 보안 및 안정성을 위한 기능을 제공한다. 이는 Service Mesh 기술에 의해 수행되므로 어플리케이션과 마이크로 서비스 간의 관계 및 상호 작용을 향상 시킬 수 있다.

  • 서비스의 자동 추적, 모니터링 및 로깅을 수행한다.

모니터링 도구

어플리케이션이 빌드되면 어플리케이션의 작동을 모니터링하는 것은 매우 중요하다. 어플리케이션을 모니터링하기 위해 아래에 언급된 도구를 사용할 수 있다.

Prometheus

Image for post
Image for post

Prometheus는 이상 패턴을 감지하여 추적하고 모니터링 정보를 시각화 할 수 있다.

  • 유연한 Query 언어를 제공한다.

Logstash

Logstash는 로그를 확인할 수 있는 오픈 소스 도구이다. 이 툴을 사용하면 데이터를 숨기거나 중앙에 집중 시키거나 변환할 수 있다.

  • Logstash는 동시에 여러 가지 공통 소스에서 이벤트를 가져 오는 다양한 입력을 지원한다.

Giljae Joo (주길재)

내일을 사랑하오!

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store