서버리스 아키텍처란 무엇입니까?
서버리스(서버리스 아키텍처)는 애플리케이션이 상태 비저장 컴퓨팅 컨테이너에서 실행되고, 이벤트에 의해 트리거되며, 비즈니스를 완전히 관리한다는 의미입니다. 레벨 상태는 데이터베이스나 기타 매체에 저장됩니다.
서버리스를 사용하면 개발자가 인프라에 대한 부담을 덜고 비즈니스 로직에 더 집중할 수 있습니다.
서버리스에는 일반적으로 BaaS(Backend as a Service)와 FaaS(Function as a Service)라는 두 가지 필드가 포함됩니다.
BaaS는 타사 애플리케이션 및 서비스에 광범위하게 의존하는 서버리스 시스템입니다. .서버 계산 방법. BaaS 공급자는 암호화, 사용자 인증 및 클라우드 데이터베이스 사용을 제공할 수 있습니다. 이러한 서비스는 클라우드 제공업체가 제공하는 API를 호출하여 접근할 수 있으며, 이러한 기능을 직접 개발하는 것보다 다양한 유형의 시스템에 쉽게 통합할 수 있습니다.
FaaS는 메시지에 의해 트리거되는 이벤트 중심 서비스입니다. FaaS 공급자는 일반적으로 AWS의 SNS와 같은 다양한 동기 및 비동기 이벤트를 통합하여 특정 기능을 실행합니다. , 현재 널리 사용되는 AWS Lambda 함수입니다.
서버리스 아키텍처의 장점
운영 비용 절감:
서버리스는 매우 간단한 아웃소싱 솔루션입니다. 이를 통해 서버, 데이터베이스, 애플리케이션의 관리는 물론 로직까지 서비스 제공자에게 위임할 수 있습니다. 이 서비스의 사용자 수가 매우 많으므로 규모의 경제가 발생합니다. 비용 절감에는 인프라 비용과 인건비(운영/개발/유지보수)라는 두 가지 측면이 포함됩니다.
개발 비용 절감:
클라우드 서비스인 서버리스를 사용하면 전체 애플리케이션 구성 요소를 상품화할 수 있습니다.
확장성:
수평 확장은 완전히 자동화되고 탄력적이며 서비스 제공업체에 의해 관리됩니다. 기본 인프라의 가장 큰 이점은 필요한 컴퓨팅 성능에 대해서만 비용을 지불한다는 것입니다.
간단한 관리:
서버리스 아키텍처는 다른 아키텍처보다 확실히 간단합니다. 구성요소가 적다는 것은 관리 부담이 줄어든다는 것을 의미합니다.
컴퓨팅 리소스의 효율적인 사용:
Forbes의 통계에 따르면 상업용 및 기업 데이터 센터의 일반적인 서버는 평균 최대 처리 전력 출력의 5%~15%만 제공합니다. 이는 의심할 여지 없이 엄청난 자원 낭비이다. 서버리스를 통해 서비스 제공업체는 컴퓨팅 성능을 제공하여 실시간 요구 사항을 최대한 충족하고 컴퓨팅 리소스를 보다 효과적으로 활용할 수 있습니다.
서버리스 아키텍처의 단점
상태 관리:
자유로운 확장을 위해서는 상태 비저장이 필요하며, 상태 저장 서비스의 경우 서버리스를 사용합니다. 유연성.
지연 시간:
서버리스 애플리케이션은 분산도가 높고 결합도가 낮습니다. 즉, 지연 시간은 항상 문제가 되며 단순히 서버리스 애플리케이션을 사용하는 것은 비현실적입니다.
로컬 테스트:
서버리스 애플리케이션의 로컬 테스트가 어렵다는 것은 매우 까다로운 문제입니다. 프로덕션 환경을 시뮬레이션하기 위해 테스트 환경에서 다양한 데이터베이스와 메시지 큐를 사용할 수 있지만 서버리스 애플리케이션의 통합 또는 엔드투엔드 테스트는 어렵습니다.