Skip to content

Latest commit

 

History

History
86 lines (69 loc) · 3.51 KB

Microservice.md

File metadata and controls

86 lines (69 loc) · 3.51 KB

Microservice

Microservice란?

  1. 기존의 모놀리식 아키텍처의 방식이나 패러다임을 상당 수 바꿔야함

  2. 독립적으로 배포 가능한 형태의 작은 서비스로 이루어짐

  3. 각각의 도메인 구성에 따라 서비스 경계를 잘 구성해야함

  4. 서로 상태에 대해서 RestAPI 방식으로 통신해야함

  5. 환경 설정 정보(Config)는 코드 내에 가지고 있지 않고 외부 시스템으로 관리

  6. 클라우드 네이티브 기술을 활용

  7. 부하, 분산, 스케일업, 스케일 다운

  8. CI / CD (A 서비스엔 호스트 2개, B 서비스엔 호스트 3개 등 무중단 배포를 위한 CI / CD 필요)

  9. 시각화 관리 필요


마이크로서비스 도입?

  • 어느정도 변화가 생길 것인가? (시간과 비용을 생각하더라도 이득인가?)

  • 독립 라이프 사이클 (서비스의 경계가 잘 분리되어 이루어져있는가?)

  • 독립적인 확장성 (유지보수 및 확장성 가능한가? 스케일링이 쉽게 되어있는가?)

  • 격리된 오류 (오류 사항이 독립적인가?)

  • 외부 종속성과의 상호 작용을 단순화시켜야함 (서비스간의 종속성을 최소화함, 응집력은 높여야함)

  • Polyglot(여러가지 프로그램 언어, 스토리지 기술)을 지원하는가? (독립적인 언어와, 데이터 베이스로 개발할 수 있다)

SOA vs MSA


  ㅇ 서비스 공유 지향점
    - SOA : 재사용을 통한 비용 절감
    - MSA : 서비스 간의 결합도를 낮추어 변화에 능동적으로 대응
    
  ㅇ 차이점 (기술방식)
    - SOA : 공통의 서비스를 ESB(Enterprise Service Bus : 간단하게 표현하면 비즈니스 내에서 서비스, 애플리케이션, 자원을 연결하고 통합하는 미들웨어)에 
            모아 사업 측면에서 공통 서비스 형식으로 서비스 제공
    - MSA : 각 독립된 서비스가 노출된 REST API를 사용

Microservice Architecture


 독립적으로 배포,확장될 수 있는 서비스를 조합해서 거대한 서비스를 구성하는 아키텍처 패턴

image

  • 구성

    • API GateWay
    • Service Discovery
    • Orchestration
    • 등등등
  • 사용처

    • 넷플릭스
    • 트위터
    • 아마존
    • 나이키

Service Mesh


  - Service Discovery, Load Blancer, Service Router, Config Store 등 포함
  - 서비스간의 통신을 추상화하고 안전하고 빠르고 신뢰성있게 만들어주는 인프라 컨스트럭쳐 레이어 

image

  • 특징
    • URI 경로, HOST 헤더, API 버전 등 응용 프로그램 규칙을 기반으로 하는 네트워크 레이어
    • 경량 아키텍처를 통해 라우팅, 공통 기능 설정 가능
    • 서비스 배포 전략에도 도움이 된다.
    • 인증 관련, 암호화
  • MSA 인프라 -> 미들웨어
    • 프록시 역할, 인증, 권한 부여, 암호화, 서비스 검색, 요청 라우팅, 로드밸런싱
    • 자가 치유 복구 서비스
  • 서비스 간의 통신과 관련된 기능을 자동화

MSA 표준 구성


  - CNCF(Cloud Native Computing Foundation)
    - 클라우드 환경으로 구성하면 상호 작용을 하면서 구성

image