마이크로서비스 개발의 필수 요소들


• CQRS

Command and Query Responsibility Segregation (명령과 책임분리)

• 명령 : 데이터 변경 (Create, Update, Delete) 작업

• 쿼리 : 데이터 쿼리(Read)작업

• 명령과 쿼리 작업의 책임을 분리하는 것

CQRS

• EventSourcing

순차적으로 발생하는 이벤트를 적용된 순서대로 모두 저장

이벤트의 갱신이나 삭제 연산은 수행되지 않음

이벤트 소싱은 확장성이 뛰어나고 분산된 변경처리 방식

EventSourcing

• API 게이트웨이

마이크로서비스는 API를 통해 통신

URL별 : a.vora.net 과 b.vora.net 를 구분해 라우팅

모듈별(Prefix별 / Host별) : a.vora.net/a 과 a.vora.net/b 를 구분해 라우팅

여러 서비스의 엔드포인트와 REST API를 관리

api-gateway

• 컨테이너, Docker 및 Kubernetes

쿠버네티스의 POD은 가상서버보다 작고 경량으로 마이크로서비스에 적합


• 서버리스(Serverless)서비스로 제공되는 API들

서버운영과 유지보수 불필요

어플리케이션이 필요한 경우에만 시작

유휴 상태일 때는 비용부과되지 않음 (서비스에 따라 저장용량 비용 발생)

개발기간과 비용단축


• Identity : OAuth

• Directory

• IAM (Identity and Access Management)

• Event Sourcing

• Messaging :

- Topics

- Queues

- Incoming Webhooks

- Outgoing Webhooks

- Scheduler

• Long-running

• Core Storage (S3)

• Simple URL Shortner

• Generate QR Code

• Business Process

• Automation Rule

• Email

• SMS

• DNS

• IOT

• Search query

• Rate Limiting