Skip to main content

Microservice Architecture 설계

Turaco 서비스에서는 다양한 컴포넌트로 아키텍처를 구성하여 실제 서비스를 구성하는 애플리케이션을 쉽고 빠르게 생성하고, 생성한 아키텍처는 버전 관리를 통해 재사용할 수 있습니다.

아키텍처 설계

아키텍처 설계는 다양한 프레임워크로 구성된 디자이너에서 단순 논리적인 애플리케이션 아키텍처를 설계합니다. 설계한 아키텍처를 기반으로 실제 소스코드를 포함한 애플리케이션은 애플리케이션 생성에서 구성합니다.

다양한 컴포넌트

카테고리컴포넌트요약
네트워크K8S Ingress, Istio외부에서 내부로 전달되는 트래픽 요청에 대한 정의 컴포넌트
백엔드Springboot, Node.js, FastAPIRESTful API 서비스 구성을 위한 컴포넌트
프론트엔드React, Vue, Angular사용자 웹 서비스
데이터베이스MariaDB, MySQL, PostgreSQL, Redis, MongoDB(Standalone/ReplicaSet/Shard Cluster)관계형 또는 비-관계형 데이터를 관리하는 DBMS 컴포넌트
메시징RabbitMQ, Kafka-cluster실시간 스트리밍 데이터를 처리하기 위한 메시지큐 컴포넌트
컨피그레이션K8s Secret, K8s ConfigMapsK8S 동적 데이터 관리를 위한 리소스
패턴AxonMSA 패턴 컴포넌트
수집 및 분석Filebeat, LogStash, ElasticSearch, Kibana, Promtail, Loki, Grafana, Tempo, Prometheus데이터 수집, 관리 및 처리를 위한 컴포넌트

Turaco Architecture Designer

Turaco 서비스에서는 쉬운 마이크로서비스 아키텍처 구성을 위한 UI 기반의 디자이너를 제공합니다. architecture designer guide

number 다양한 컴포넌트

  • MSA 구성에 필요한 다양한 서비스 컴포넌트를 제공합니다.

number 아키텍처 구성

  • 컴포넌트를 Drag & Drop하여 서비스를 추가하고 링크를 통해 서비스들간 연관관계를 설정할 수 있습니다.

number 스테이지 전환

  • 선택된 각 컴포넌트의 속성을 변경할 수 있습니다.

기본적인 Web Service 구성하기

웹 서비스의 가장 간단한 서비스 구성으로 실제 사용자가 사용할 수 있는 프론트엔드 웹 서비스와 프론트엔드 서비스 데이터 전송을 위한 백엔드 컴포넌트, 그 데이터들을 관리하는 데이터베이스 컴포넌트로 구성하여 기본적인 웹 서비스를 구성합니다.

  • 아키텍처는 워크스페이스MSA 개발아키텍처 페이지에서 설계할 수 있습니다.
  • 아키텍처 목록에서는 기존 아키텍처 조회, 신규 설계, 아키텍처 변환, 상세/수정 화면 이동을 수행합니다.

architecture designer

외부 접근 관리를 위한 네트워크 타입을 선택합니다.

  • K8s Ingress: 클러스터 내의 서비스에 대한 외부 접근을 관리하는 K8s API 오브젝트
  • Networking.istio: 클러스터에서 컨테이너를 연결, 모니터링, 보호하는 구성 가능한 오픈 소스 서비스-메시 계층
  • K8S Ingress(네트워크) - Vue(프론트엔드) - Springboot(백엔드) - MariaDB(데이터베이스) 각각의 컴포넌트를 Drag & Drop 후에 각 컴포넌트별로 컴포넌트명, 설명등 간단하게 필수 속성값을 입력합니다.
  • 각 컴포넌트별 링크로 서비스들간의 연관관계를 설정할 수 있습니다.
  • 컴포넌트별 속성과 연관관계를 설정하고 아키텍처명을 입력 후 저장하면 기본적인 웹 서비스 아키텍처 구성이 완료됩니다.

예제에서는 외부에서 접속할 수 있도록 K8S ingress에서 프론트엔드, 백엔드 컴포넌트를 링크하여 Endpoint를 설정하고, 백엔드 컴포넌트는 데이터 관리를 위한 데이터베이스 컴포넌트와 링크합니다.

architecture designer

그외 컴포넌트

추가로 다양한 컴포넌트를 사용하여 아키텍처를 구성하려면 고급가이드 페이지를 참고해주세요.