마이크로서비스와 서버리스의 관계
마이크로서비스 아키텍쳐 이론은 잘게 쪼개진 서비스들을 API 서비스 단위로 호출하는 방식
서버리스 아키텍쳐는 클라우드 환경에서 개발자들이 서버 환경 구성에 대한 고민없이 함수만을 서비스의 기본 단위로 하여 배포, 확장하는 구조를 가지고 있다. 즉, 요청이나 특정 이벤트가 발생할때 함수를 실행하는 FaaS 형태
사실상 마이크로서비스 이론의 실질적 구현이 서버리스라고 볼 수 있다.
서버리스 ⊂ 마이크로서비스
https://kr.tmaxsoft.com/info/storyTView.do?seq=297
[Product] 마이크로서비스의 실질적 구현, 서버리스
최근 자주 혼용해서 쓰이는 아키텍처인 마이크로서비스와 서버리스 아키텍처의 관계는 어떻게 이해하는 것이 맞을까요?
kr.tmaxsoft.com
서버리스의 특징중 하나인 무상태성인 무엇인가
stateless란 현재의 트랜잭션에 사용하는 이전에 저장된 정보는 없다라는 것으로 특정 기능을 실행하는데 필요한 자원만을 할당해 처리한 다음 자원을 다시 공유풀에 반환하는 식으로 애플리케이션을 실행 서비스로 깔끔하게 나누고 서로 독립적으로 느슨하게 연결한다.
즉 멱등성이 유지, side effect가 없는 것이 무상태성
또한 데이터 통합을 간소화하는 것으로 비표준 형식의 대규모 데이터는 중요한 비즈니스 가치를 가지고 있지만, 다중 소스 또는 애플리케이션으로 통합하는 것이 우선이다.
비즈니스 전략의 핵심인 애플리케이션과 기기는 여러 클라우드 환경 전반에 걸쳐 서로 쉽게 엑세스 할 수 있어야 한다.
https://www.itworld.co.kr/news/124572
https://www.redhat.com/ko/topics/cloud-native-apps/stateful-vs-stateless
스테이트풀(Stateful)과 스테이트리스(Stateless) 차이 및 비교
스테이트풀(Stateful)과 스테이트리스(Stateless)의 차이는 상호 작용 상태가 얼마나 오래 기록되는지, 해당 정보가 어떤 방식으로 저장되는지에 따라 구별됩니다.
www.redhat.com
IDG 블로그 | 서버리스가 전혀 맞지 않는 애플리케이션
간단히 말해 서버리스 시스템은 기업이 인프라 문제를 처리해야 하는 수고를 없애준다. 스토리지나 컴퓨트 서버의 프로비저닝과 운영을 신경 쓰지 않아
www.itworld.co.kr
마이크로서비스를 구성할 때, 데이터베이스를 꼭 분리해야 하나요? 데이터가 한 곳에 모여있지 않고 중복되어도 괜찮은가요? 모범 사례를 알아보고, 이유를 함께 적어주세요
데이터가 분리되어 있지 않고 집중화가 되면 생기는 문제와 전환 사례를 쿠팡을 통해 알 수 있다.
MSA 전환 이전 쿠팡에서는
1. 부분 장애가 전체 서비스 장애로 이어짐2. 서비스를 부분적으로 scale-out 하기 어려움3. 서비스 변경이 어렵고, 수정시 영향도를 파악하기 어려움4. 작은 변경에도 많은 테스트가 필요함5. 조직이 성장할수록 배포 대기 시간이 비약적으로 증가함과 같은 문제점을 겪고 있었고
MSA 전환 이후에는
서비스 별로 팀을 나누고 데이터 베이스를 이용함으로써 위와 같은 문제가 해결되었음
데이터를 분산화하면서 데이터 별로 중복이 일어날 수 있고 그 자체가 문제는 아니지만
협업에서 비용과 시간이 증가할 가능성이 있다.
즉, MSA에 의해 서비스 별로 데이터 베이스를 관리할 때 원활한 트랜잭션 협조를 위해 데이터의 일관성 또한 중요하다.
쿠버네티스 : 마이크로서비스 아키텍처 구현 데모
쿠버네티스 환경에서 많이 알려진 마이크로서비스 아키텍처 ( MSA : Microservices Architecture) 샘플 애플리케이션인 북인포 ( Bookinfo ) 를 배포하여 MSA 의 특징들을 살펴봅니다. Java, Ruby, Node.js
www.openmaru.io