MSA-1.3-MSA의 핵심원칙

jaegeunsong97·2023년 8월 31일
0

MSA

목록 보기
3/6

Business Capabilities

  • MSA 핵심원칙 : 마틸 파울러(MSA의 대부)가 정의

    • Organized around Business Capabilites (핵심)
    • Product, Not Projects
    • Design for Failure
  • Organized around Business Capabilites

    • 콘웨이 형님의 법칙 : 시스템이 설계되면, 그 시스템의 구조설계한 조직의 구조유사해진다.
    • Business Capabilities : 조직이 얼마나 빠르고 유연하게 대응할 수 있는지에 대한 능력
      • Business Capabilities - MSA
  • 기존 모놀리스 방식

    • 기능 조직(초점)
    • 직무별 분리 + 1개의 목표를 다 같이 바라봄
      • FE 파트, BE 파트, DBA 파트

  • MSA 방식

    • 목적 조직(초점)
    • 파트별 분리 + 각 파트별 목표를 바라봄
      • A팀(FE + BE + DBA), B팀(FE + BE + DBA) ...

Product, Not Project

  • Project에 집중

    • Project에 집중 -> 1번만 만들면 됨(완성) -> 유지보수만 계속
    • Developer(SI) - Maintainer(고객사) - Client(유저)
    • 고객사에서 분편한 부분을 느껴도 개발적 지식 없어서 유지보수 힘듬
  • Product에 집중

    • Developer + Maintainer(고객사 및 개발) - Client(유저)
    • 고객사가 곧 개발자이기 때문에 불편함을 느끼면 즉각적으로 대응 가능
    • Project로 보는 것이 아닌 Product로 보기때문에 즉각적인 대응 가능
  • Product에 집중하는 MSA

    • Smart endpointsdumb pipes

      • RESTful과 같은 단순한 방식의 프로토콜 사용
      • Enterprise Service Bus(ESB) is Smart Pipe(routing, transformation, business rule...)
      • 관심의 분리 - Separation of Concerns
        • Smart Pipe
    • Decentralized Data Management / Governance

      • 데이터의 유연성, 탄력성의 확보 : Decentralized Data Management
      • 비즈니스 필요성에 따른 최적의 기술스택 사용 : Decentralized Governance
        • 중앙집중 X -> 유연성과 확장성 증가
        • 필요에 따라 대용량 또는 소용량 변경 가능
    • Infrastructure Automation

      • CI/CD 파이프라인 같은 인프라 자동화의 중요성
        • 지속적인 통합, 배포
      • 복잡한 아키텍처 -> 최대한 단순하게 사용 가능한 기술(Automation)들이 핵심
      • 모놀리식 : CI/CD 중요도 낮음(=Business Capabilities 낮음)
      • MSA : CI/CD 중요도 높음(=Business Capabilities 높음)

Design for Failure

  • 시스템은 언제든지 문제가 발생할 수 있다에 기반한 디자인을 만드는 것
    • 감지
      • Circuit Breaker
    • 복구
      • Container Ochestration
      • K8S
    • 의도치 않은 결과 방지
      • Transaction
      • Event Driven
    • 서비스 간의 영향도
      • Chaos Test
  • 결론 : 모든 원칙은 결국 Business Capabilities를 확보하기 위한 수단
profile
블로그 이전 : https://medium.com/@jaegeunsong97

0개의 댓글

관련 채용 정보