Microservice Architecture 설계
Turaco 서비스에서는 다양한 컴포넌트로 아키텍처를 구성하여 실제 서비스를 구성하는 애플리케이션을 쉽고 빠르게 생성하고, 생성한 아키텍처는 버전 관리를 통해 재사용할 수 있습니다.
아키텍처 설계
아키텍처 설계는 다양한 프레임워크로 구성된 디자이너에서 단순 논리적인 애플리케이션 아키텍처를 설계합니다. 설계한 아키텍처를 기반으로 실제 소스코드를 포함한 애플리케이션은 애플리케이션 생성에서 구성합니다.
다양한 컴포넌트
| 카테고리 | 컴포넌트 | 요약 |
|---|---|---|
| 네트워크 | K8S Ingress, Istio | 외부에서 내부로 전달되는 트래픽 요청에 대한 정의 컴포넌트 |
| 백엔드 | Springboot, Node.js, FastAPI | RESTful API 서비스 구성을 위한 컴포넌트 |
| 프론트엔드 | React, Vue, Angular | 사용자 웹 서비스 |
| 데이터베이스 | MariaDB, MySQL, PostgreSQL, Redis, MongoDB(Standalone/ReplicaSet/Shard Cluster) | 관계형 또는 비-관계형 데이터를 관리하는 DBMS 컴포넌트 |
| 메시징 | RabbitMQ, Kafka-cluster | 실시간 스트리밍 데이터를 처리하기 위한 메시지큐 컴포넌트 |
| 컨피그레이션 | K8s Secret, K8s ConfigMaps | K8S 동적 데이터 관리를 위한 리소스 |
| 패턴 | Axon | MSA 패턴 컴포넌트 |
| 수집 및 분석 | Filebeat, LogStash, ElasticSearch, Kibana, Promtail, Loki, Grafana, Tempo, Prometheus | 데이터 수집, 관리 및 처리를 위한 컴포넌트 |
Turaco Architecture Designer
Turaco 서비스에서는 쉬운 마이크로서비스 아키텍처 구성을 위한 UI 기반의 디자이너를 제공합니다.

다양한 컴포넌트
- MSA 구성에 필요한 다양한 서비스 컴포넌트를 제공합니다.
아키텍처 구성
- 컴포넌트를 Drag & Drop하여 서비스를 추가하고 링크를 통해 서비스들간 연관관계를 설정할 수 있습니다.
스테이지 전환
- 선택된 각 컴포넌트의 속성을 변경할 수 있습니다.
기본적인 Web Service 구성하기
웹 서비스의 가장 간단한 서비스 구성으로 실제 사용자가 사용할 수 있는 프론트엔드 웹 서비스와 프론트엔드 서비스 데이터 전송을 위한 백엔드 컴포넌트, 그 데이터들을 관리하는 데이터베이스 컴포넌트로 구성하여 기본적인 웹 서비스를 구성합니다.
- 아키텍처는
워크스페이스➔MSA 개발➔아키텍처페이지에서 설계할 수 있습니다. - 아키텍처 목록에서는 기존 아키텍처 조회, 신규 설계, 아키텍처 변환, 상세/수정 화면 이동을 수행합니다.

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

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