찌니의 프로그래밍 삼매경

[MSA] MSA(MicroService Architecture) 특징 본문

MSA(MicroService Architecture)

[MSA] MSA(MicroService Architecture) 특징

zzI니☆ 2022. 10. 7. 11:49
728x90

MSA 특징


서비스를 통한 컴포넌트화

MSA에서는 서비스 단위를 컴포넌트로 정의하고 있다.
하나의 컴포넌트는 특정 비즈니스 기능을 담당하고, 독립적인 프로세스로 실행되며 자율적으로 배포가 가능하다. 따라서 서비스는 응집도 높게 설계되어야 하고, 서비스 간에는 명확한 인터페이스를 제공하여 협력해야 한다.

 

 MSA는 한 팀에서 개발/운영을 포함한 전체 라이프사이클을 책임진다

  1. 고객과의 접점을 늘리고 피드백을 늘려 나가므로, 팀원들은 자신들이 만드는 소프트웨어를 바라보는 시각의 전환을 경험할 수 있게 된다.
  2. 단순히 기능을 개발하고 넘기는 것이 아닌, 소프트웨어가 고객에게 어떠한 가치를 어떻게 전달할 수 있을지 고민하는 계기가 된다.
  3. 소프트웨어와 기업의 비즈니스 연관 관계를 인식할 수 있다.

 분산된 거버넌스

스스로 효율적인 방법론과 도구, 기술을 찾아 적용

 분산된 데이터관리

MSA는 해당 서비스의 데이터를 각자 관리하므로 서비스는 서로 다른 데이터 저장 기술을 사용할 수 있다.

따라서 각 서비스는 다른 서비스의 데이터베이스에 직접 접근하지 않고, API를 통해서만 다른 서비스의 데이터에 접근하게 된다.

이렇게 되면 트랜잭션 처리가 어려워지고, 일관성 또한 즉시 적용되지 않고 시간이 지나야 적용되는 불편함이 생긴다.

 

 인프라 자동화

다수의 서비스와 인스턴스가 존재하는 환경에서는 자동화가 필수이다.
따라서 자동화된 테스팅, 자동화된 CI, 자동화된 CD가 필수적으로 이루어져야 하고, 실제로 많은 역량을 쏟고 있다.

 

 장애 방지 설계

일부 서비스 장애가 전체 시스템 장애로 전파되는 것을 막는것이 장애 방지 설계의 핵심

서비스에 이상 동작을 최대한 신속하게 알 수 있어야 하고, 가능하면 자동으로 복구할 수 있도록 설계해야 한다.

Spring Cloud, Kubernetes를 이용

728x90
Comments