마이크로서비스란 무엇인가?
KUKJIN LEE • 4개월 전 작성
마이크로서비스는 애플리케이션을 느슨하게 결합된 독립적으로 배포 가능한 서비스들로 구성하는 아키텍처 스타일입니다. 각 서비스는 특정 비즈니스 기능에 초점을 맞추며 독립적으로 개발, 배포 및 확장될 수 있습니다.
주요 특성
-
분산화: 각 서비스는 자체 코드베이스와 데이터베이스를 가지며, 분산된 데이터 관리 접근 방식을 촉진합니다.
-
독립적 배포: 서비스는 다른 시스템에 영향을 주지 않고 업데이트, 배포 및 확장할 수 있습니다.
-
기술 중립성: 다양한 서비스는 필요한 도구를 선택하여 서로 다른 기술과 프레임워크를 사용하여 구축할 수 있습니다.
-
탄력성: 한 서비스의 장애가 다른 서비스에 영향을 미치지 않아 전체 애플리케이션의 탄력성이 향상됩니다.
예시
전자 상거래 예시를 들어보면, 각 모듈(사용자 인증, 제품 카탈로그, 주문 처리, 결제 처리)이 별도의 마이크로서비스로 개발되고 배포됩니다. 각 서비스는 자체 데이터베이스와 실행 환경을 가집니다.
클라우드에서 마이크로서비스 장점
-
확장성: 개별 서비스를 독립적으로 확장할 수 있어 자원 사용과 비용을 최적화합니다.
-
민첩성: 팀이 서로 다른 서비스를 동시에 작업할 수 있어 개발 및 배포 주기를 단축합니다.
-
유연성: 필요한 경우 다양한 서비스에 새로운 기술과 프레임워크를 더 쉽게 도입할 수 있습니다.
-
탄력성: 개선된 장애 격리로 인해 하나의 서비스에서 발생한 문제가 전체 시스템에 영향을 미치지 않습니다.
-
지속적 배포: 간소화된 CI/CD 파이프라인을 통해 더 자주 신뢰성 있게 업데이트할 수 있습니다.