REL 3: 워크로드 서비스 아키텍처는 어떻게 설계합니까?
SOA(서비스 지향 아키텍처) 또는 마이크로서비스 아키텍처를 사용하여 확장성과 안정성이 뛰어난 워크로드를 구축합니다. SOA(서비스 지향 아키텍처)는 서비스 인터페이스를 통해 소프트웨어 구성 요소를 재사용 가능하게 만드는 방식입니다. 마이크로서비스 아키텍처는 구성 요소를 더 작고 간단하게 만듭니다.
리소스
Amazon API Gateway: Configuring a REST API Using OpenAPI
Implementing Microservices on AWS
Microservices on AWS
Microservices - a definition of this new architectural term
Microservice Trade-Offs
Bounded Context (a central pattern in Domain-Driven Design)
모범 사례:
-
워크로드를 세그먼트화하는 방법 선택: 모놀리식 아키텍처는 피해야 합니다. 대신 SOA와 마이크로서비스 중에서 선택하십시오. 각 아키텍처를 선택할 때는 이점과 복잡성의 균형을 고려합니다. 신제품의 첫 출시에 필요한 것과 워크로드를 확장할 때 필요한 것은 다릅니다. 작은 세그먼트를 사용하면 민첩성, 조직의 유연성 및 확장성이 향상됩니다. 복잡성에는 지연 시간 증가, 디버깅 복합성, 운영 부담 증가가 포함됩니다.
-
특정 비즈니스 도메인 및 기능을 중심으로 서비스 구축: SOA는 비즈니스 요구 사항에 따라 명확하게 정의된 기능으로 서비스를 구축합니다. 마이크로서비스는 도메인 모델과 경계 컨텍스트를 사용하여 이를 추가로 제한함으로써 각 서비스가 한 가지 작업을 수행하도록 합니다. 특정 기능에 집중하면 다양한 서비스의 안정성 요구 사항을 구분하고 보다 구체적으로 투자의 대상을 지정할 수 있습니다. 또한 비즈니스 문제가 간단해지고 각 서비스에 소규모 팀이 연결되므로 조직의 확장이 수월해집니다.
-
API별로 서비스 계약 제공: 서비스 계약은 서비스 통합에 대한 팀 간의 문서화된 계약으로, 머신 판독 가능한 API 정의, 속도 제한 및 성능 기대치를 포함합니다. 버전 관리 전략을 사용하면 클라이언트에서 기존 API를 계속 사용하면서 준비가 될 때 애플리케이션을 최신 API로 마이그레이션할 수 있습니다. 계약을 위반하지 않는 한 언제든지 배포가 가능합니다. 서비스 공급자 팀은 원하는 기술 스택을 사용하여 API 계약을 충족할 수 있습니다. 마찬가지로 서비스 소비자는 자체 기술을 사용할 수 있습니다.
개선 계획
워크로드를 세그먼트화하는 방법 선택
- SOA 및 마이크로서비스는 상태적으로 더 세분화된 조각화를 제공하며, 이는 확장 가능하고 안정적인 최신 아키텍처로서 선호됩니다. 하지만 모놀리식 아키텍처를 선택해야 할 타당한 이유가 있는 경우, 사용자 채택에 따라 제품을 확장할 때 SOA 또는 마이크로서비스로 변경할 수 있는 기능이 있는 모듈식 아키텍처인지 확인해야 합니다.
- SOA는 마이크로서비스의 복잡성을 어느 정도 피하면서 더 세분화된 조각화를 실현하기에 좋은 절충안이 될 수 있습니다.
Microservice Trade-Offs - 이를 워크로드에 적용할 수 있고 조직에서 지원할 수 있는 경우, 마이크로서비스 아키텍처를 사용하여 최고의 민첩성과 안정성을 실현해야 합니다.
Implementing Microservices on AWS - AWS App Mesh를 서비스 지향 아키텍처와 함께 사용하여 안정적인 서비스 검색 및 액세스를 제공할 수 있습니다.
What is AWS App Mesh?
특정 비즈니스 도메인 및 기능을 중심으로 서비스 구축
- 도메인 분석을 수행하여 워크로드에 대한 DDD(도메인 중심 설계)를 매핑합니다. 그러면 워크로드의 요구 사항에 맞는 아키텍처 유형을 선택할 수 있습니다.
How to break a Monolith into Microservices
Getting Started with DDD when Surrounded by Legacy Systems
Eric Evans “Domain-Driven Design: Tackling Complexity in the Heart of Software”
Implementing Microservices on AWS
- 워크로드 및 설계 목표, 한도 및 사용에 대한 기타 고려 사항과 관련하여 API를 정의합니다.
- API 정의.
- API 정의는 확장 및 추가 파라미터를 허용해야 합니다.
- 설계된 가용성 정의.
- API는 다양한 기능에 대해 여러 설계 목표를 가질 수 있습니다.
- 한도 수립
- 테스트를 사용하여 워크로드 기능의 한도를 정의합니다.
- API 정의.
API별로 서비스 계약 제공
Amazon API Gateway: Configuring a REST API Using OpenAPI
- 버전 관리 전략을 사용하면 클라이언트에서 기존 API를 계속 사용하면서 준비가 될 때 애플리케이션을 최신 API로 마이그레이션할 수 있습니다.
- Amazon API Gateway는 어떤 규모에서든 개발자가 API를 손쉽게 생성할 수 있게 해주는 완전관리형 서비스입니다. 이전의 Swagger Specification인 OpenAPI Specification(OAS)을 사용하여 API 계약을 정의한 다음 이 정의를 API Gateway로 가져올 수 있습니다. 그런 다음 API Gateway를 사용하여 API를 버전 관리하고 배포할 수 있습니다.