2017-11-23 3 views
2

저는 마이크로 서비스 및 서버리스 솔루션을 연구 중이며 AWS의 API 게이트웨이를 통해 다양한 DynamoDb 테이블과 통신하는 S3 및 람다 함수에서 호스트되는 각도 프론트 엔드를 가지고 놀고 있습니다.AWS에서 서버리스 프레임 워크 및 마이크로 서비스를 설계하는 방법 람다

모든 예제 및 비디오 읽기 /보기에는 간단한 '수행 할 응용 프로그램'또는 이와 유사한 일부로 간단한 CRUD 마이크로 서비스가 사용됩니다. 내 문제는 비즈니스 로직이 어디에 위치합니까? 복잡한 응용 프로그램을 작성하는 경우 내 모든 비즈니스 논리가 내 프론트 엔드 각도 응용 프로그램에있는 것을 원하지 않습니다. 아니면 내가? 나는 차례로 CRUD 마이크로 서비스를 호출하는 Application API를 만들 수 있지만 모 놀리 식 접근법처럼 느껴진다.

확실한 답변이 없을 수도 있지만 아무도 모범 사례에 대한 초보자에게 조언 할 수 있습니까?

답변

2

가 난 단지 몇 Microservices와 서버를 사용 Microservices

  • 시작을 설계에 따라 몇 가지 모범 사례가 있습니다 (이하 앞까지 더 나은, 당신은 분할 결정을 지연, 서비스 분리해야 정확히 알지 못한다면)
  • API로가는 비즈니스 로직을 분리하고 MVC의 컨트롤러로 핸들러를 사용하여 비즈니스 로직을 호출하십시오. (이것은 람다에 의존하지 않고 단위 테스트 로직에도 도움이 될 것입니다).
  • API에 간단한 CRUD 만 쓸 필요는 없습니다. 그것은 귀하의 도메인 및 비즈니스 로직에 따라 다릅니다. (그러나 다른 서비스로 코드를 분리하지 않고 또 다른 단일체를 구축하지 마십시오. 여러 AWS 서비스 한도는 & 등의 서비스에서 종점이 얼마나 있어야하는지에 대한 가이드를 제공합니다)
  • 마이크로 서비스 (예 : 각 마이크로 서비스간에 데이터베이스를 동기화하려면 SNS, DynamoDB 스트림 및 람다를 사용하여 Pub-Sub 패턴 사용)
  • 프리젠 테이션 로직을 대부분 입력하려면 각도 응용 프로그램을 사용하십시오.
  • COR을 피하기 위해 CloudFront를 프록시와 CDN으로 사용하십시오.

자세한 정보가 필요하면 다음 문서를 참조하십시오. Deploying Angular/React Apps in AWS

참고 : 모범 사례 S3와 CloudFront를의 생성을 자동화 할 Deploying Angular/React Apps in AWS에 CloudFormation을 사용할 수 있습니다.

+0

귀하의 답변에 감사드립니다. 크게 감사드립니다. 우리가 말하는대로 당신의 기사를 읽고 곧이 질문에 다시 방문해야합니다. – prime

+0

기사 읽기, 감사합니다. 내 질문에 아직도 조금 혼란스러워. 예를 들어; 두 개의 CRUD 마이크로 서비스가있는 경우 "게시물"과 "사용자"로 하나씩 관련 사용자 세부 정보가있는 게시물을 가져와야 할 경우 필자는 필요에 따라 데이터를 검색/결합하여 다른 각도 프론트 엔드에서 사용하는 다른 끝점을 만들 수 있습니까? 시간 내 줘서 고마워. – prime

+0

게시자와 사용자를 위해 두 개의 Microservices가있는 경우 각 서비스가 자체 포함되어 있는지 확인하십시오. 예 : 게시물을 쿼리 할 때 작성자 정보가 서비스 내에 저장되어 있어야합니다. 여기서 AWS DynamoDB와 같은 문서 데이터베이스가 저장 공간에 적합합니다. 사용자 업데이트 서비스가 사용자 마이크로 서비스에 있다고 가정 해 보겠습니다. 그런 다음 사용자 데이터 업데이트시 pubsub 메신저 시스템을 사용하는 경우 데이터를 동기화 할 수 있어야합니다. 또한 pubsub 메신저 작업은 DynamoDB 스트림, Lambda 및 SNS를 사용하여 구현할 수 있습니다. – Ashan

관련 문제