[마이크로서비스] 마이크로서비스 아키텍쳐를 고려하는 이유

IMKUNYOUNG·2022년 9월 16일
0

자국 시장에서 서비스하던 기존의 기업 운영 트렌드는 시대가 지나면서 글로벌 시장으로 확대되고 있다. 글로벌 고객이 확대되면서 경쟁도 치열해지고 이러한 경쟁 압박이 생기면서 기업들은 아래의 문제점을 겪기 시작했다.

  • 복잡성 증가
    고객은 조직의 모든 부분이 자신을 인식하길 원한다. 단 하나의 데이터베이스와 통신하고 다른 애플리케이션과 통합하지 않는 단절된 애플리케이션을 원하지 않으며 회사 데이터센터 내부의 서비스와 데이터베이스를 넘어 외부 서비스 제공자와도 통신하길 원한다.

  • 고객은 더 빠른 출시를 원한다
    고객은 더 이상 소프트웨어 패키지를 연 단위로 릴리스하거나 업데이터를 원하지 않는다. 대신 새로운 기능이 몇 주나 며칠 안에 빠르게 릴리스되길 기대한다.

  • 성능 및 확장성
    글로벌 애플리케이션에선 애플리케이션이 처리해야 할 트랜잭션 양과 유입될 시점을 예측하기 어렵다. 애플리케이션은 여러 서버로 신속히 확장한 후 확장이 필요 없다면 축소해야 한다.

  • 고객은 애플리케이션을 항상 사용할 수 있길 기대한다
    애플리케이션의 한 부분에서 에러나 문제가 있어도 애플리케이션 전체가 다운되어서는 안 되고 회복성이 높아야 함.

이러한 기대 사항을 충족하기 애플리케이션을 기존의 모놀리식 구조에서 벗어나 독립적으로 빌드하고 배포할 수 있는 작은 서비스 단위로 애플리케이션을 분해할 필요성이 생겼다


✔️ 분산 방식의 애플리케이션 구축의 장점

  • 유연성(flexible)
    새로운 기능을 신속하게 제공하도록 서비스를 분리된 단위로 구성하고 재배치한다면 코드 변경에 따른 예상되는 위험과 배포를 위한 테스트 시간을 줄 일 수 있다.

  • 회복성(resilient)
    전체 애플리케이션의 작은 부분에 장애가 발생하여 서버가 다운되더라도 그 부분만 다운되고 애플리케이션의 나머지 기능은 원활히 사용할 수 있다.

  • 확장성(scalable)
    분리된 서비스를 여러 서버에 수평적으로 쉽게 분산할 수 있다. 반면 모놀리식 애플리케이션은 한 부분에 트래픽이 몰리더라도 인프라 전체를 (수직적으로) 확장해야 한다.

0개의 댓글