ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 마이크로서비스(microservice) 개요
    Search: SwDevTheory SwDevTheory 2022. 11. 27. 11:41



    마이크로서비스(microservice)는 서비스를 단일 보다 분할하는 형태를 가지는 소프트웨어 개발 기법이다. Ex 각 애플리케이션 프로세스가 독립 서비스로 실행되고 서비스마다 한 가지 기능을 수행한다.

    마이크로서비스는 정의된 API를 통해 통신하는 소규모의 독립적인 서비스로 구성되는 소프트웨어 개발을 위한 아키텍처 및 조직적 접근 방식이다.

    애플리케이션을 느슨하게 결합된 서비스의 모임으로 구조화하는 서비스 지향 아키텍처(SOA)로 볼 수 있다.

    마이크로서비스 아키텍처의 반대는
    모놀리식 아키텍처다
    모놀리식 아키텍처의 경우 모든 프로세스가 긴밀하게 결합되고 단일 서비스로 실행된다.
    애플리케이션의 한 프로세스에 대한 수요가 급증하면 해당 아키텍처 전체를 확장해야 한다. 코드 규모가 증가하게 되면 모놀리식 애플리케이션은 기능을 추가하거나 개선하기가 더 복잡해진다.


    마이크로서비스 특징
    - 애플리케이션의 배포 확장 용이.
    - 서버스마다 독립 실행. 애플리케이션의 특정 기능에 대한 수요를 충족하도록 각각의 서비스를 업데이트, 배포 및 확장에 유리.
    - 소규모 팀으로 분할.
    - 새로운 유형의 기능 도입에 유리. 새로운 아이디어를 구현하기가 유리하다.
    - 자율성
    독립된 다른 서비스의 기능에 영향을 주지 않으면서 개발, 배포, 운영하고 확장할 수 있다.  코드 또는 구현을 다른 서비스와 공유할 필요는 없다. 개별 구성 요소 간의 통신은 잘 정의된 API를 통해 이루어진다.
    - 전문성
    각 서비스는 일련의 기능을 위해 설계되며 특정 문제를 해결하는 데 중점을 둔다. 시간이 지남에 따라 서비스에 더 많은 코드를 제공하여 서비스가 복잡해지면 더 작은 서비스로 분할할 수 있다.
    - 민첩성
    필요에 띠라 독립적인 소규모 팀 조직을 집중 육성 가능.
    - 유연한 확장성
    독립적인 팀은 필요한 인프라의 규모를 적절히 조절하고, 기능의 비용을 정확하게 측정하고, 서비스의 수요가 급증하는 경우에도 가용성을 유지할 수 있다.
    - 기술적 자유
    팀은 특정한 문제를 해결하는 데 가장 적합한 도구를 자유롭게 선택할 수 있다.

    마이크로서비스 문제
    - 자원 효율성
    - 재사용 가능한 코드
    소규모 모듈로 분할하여 개선 접근.
    - 안정성
    서비스가 독립적이다. 많은 단일 구성 요소 중 하나라도 실패하는 경우 전체 연관 서비스가 실패하게 될 수 있다. 마이크로서비스에서는 기능을 저하시키고 전체 애플리케이션을 충돌시키지 않는 방식으로 전체 서비스 실패를 처리해야 한다.



    'SwDevTheory' 카테고리의 다른 글

    인자, 인수, 매개변수, argument, parameter,  (0) 2023.01.13
    Hash 해시  (1) 2023.01.07
    IPFS(InterPlanetary File System)  (0) 2023.01.07
    암호화 비대칭키  (0) 2023.01.03
    Sha256  (0) 2022.11.13
    암호화방식 비대칭암호화(공개키암호화)  (0) 2022.11.12
    big-end, little-end, middle-endian, bi-endian  (0) 2022.08.14
    URI(Uniform Resource Identifier)  (0) 2022.08.12

    댓글