MicroService

·2022년 8월 20일
0

마이크로서비스는 애플리케이션 구축을 위한 아키텍처 기반의 접근 방식이다. 아키텍처 프레임워크인 마이크로서비스는 분산되어 있고 느슨하게 결합되어 있으므로 한 탐에서 변경한다 해도 전체 애플리케이션이 분할되지는 않는다. 마이크로서비스 사용의 이점은 개발 팀이 애플리케이션의 새로운 구성 요소를 신속히 빌드하여 변화하는 비즈니스 요구를 충족할 수 있다.


MicroService의 특징

  • 자율성
    마이크로서비스 아키텍처의 각 구성 요소 서비스는 다른 서비스의 기능에 영향을 주지 않으면서 개발, 배포, 운영하고 확장할 수 있다. 서비스가 해당 코드 또는 구현을 다른 서비스와 공유할 필요는 없다. 개별 구성 요소 간의 통신은 잘 정의된 API를 통해 이루어진다.

  • 전문성
    각 서비스는 일련의 기능을 위해 설계되며 특정 문제를 해결하는 데 중점을 둔다. 개발자가 시간이 지남에 따라 서비스에 더 많은 코드를 제공하여 서비스가 복잡해지면 더 작은 서비스로 분할할 수 있다.


MicroService의 이점

  • 민첩성
    마이크로서비스는 해당 서비스를 소유한 독립적인 소규모 팀 조직을 육성하는 역할을 한다. 팀은 충분한 이해를 바탕으로 하는 소규모 컨텍스트 내에서 활동하며 더 독립적이면서 신속하게 업무를 수행할 수 있다. 덕분에 개발 주기 시간이 단축된다. 그리고 조직의 집계 처리량 측면에서 큰 이점을 누리게 된다.

  • 유연한 확장성
    마이크로서비스의 경우 각 서비스가 지원하는 애플리케이션 기능의 수요를 충족하도록 해당 서비스를 독립적으로 확장할 수 있다. 따라서 팀은 필요한 인프라의 규모를 적절히 조절하고 기능의 비용을 정확하게 측정하고 서비스의 수요가 급증하는 경우에도 가용성을 유지할 수 있다.

  • 손쉬운 배포
    마이크로서비스는 지속적 통합 및 지속적 전달을 통해 새로운 아이디어를 손쉽게 시험하고 문제가 발생할 경우 간단히 롤백할 수 있게 해 준다. 이처럼 저렴한 실패 비용 덕분에 실험을 진행할 수 있어 더 쉽게 코드를 업데이트하고 새로운 기능의 출시 시간을 앞당길 수 있다.

  • 기술적 자유
    마이크로서비스 아키텍처는 모든 규모에 부합하는 접근 방식을 추구하지 않는다. 팀은 특정한 문제를 해결하는 데 가장 적합한 도구를 자유롭게 선택할 수 있다. 따라서 마이크로서비스를 구축하는 팀은 작업별로 가장 적합한 도구를 선택할 수 있다.

  • 재사용 가능한 코드
    소프트웨어를 잘 정의된 소규모 모듈로 분할하면 팀이 기능을 여러 용도로 사용할 수 있게 된다. 특정 기능을 위해 구축된 서비스를 다른 기능의 빌딩 블록으로 사용할 수 있는 것이다. 이를 통해 개발자가 코드를 처음부터 작성하지 않고도 새 기능을 생성할 수 있어 애플리케이션이 자체적으로 부트스트랩 작업을 생성할 수 있다.

  • 복원성
    서비스가 독립적이므로 실패에 대한 애플리케이션의 저항성이 증가한다. 모놀리식 아키텍처에서는 단일 구성 요소가 실패하는 경우 전체 애플리케이션이 실패하게 될 수 있다. 마이크로서비스에서는 기능을 저하시키고 전체 애플리케이션을 충돌시키지 않는 방식으로 전체 서비스 실패를 처리한다.


참고 : 마이크로서비스란 무엇입니까?

profile
파워블로거입니다 주인이 힘이 센 건 아니고 그냥 하고 싶습니다

0개의 댓글