모놀리식 애플리케이션은 여러 기능을 위한 사용자 인터페이스와 데이터 액세스 계층을 하나의 애플리케이션으로 결합합니다. 일반적으로 일체형 애플리케이션은 조직 내의 여러 팀에서 수정되는 단일 코드베이스로 존재하며, 해당 팀이 유지 관리하는 모든 기능을 포함하는 단일 단위로 배포됩니다.
모놀리식 애플리케이션은 구성 요소가 긴밀하게 통합되어 있어 개발하고 배포하기가 더 쉬운 경우가 많습니다. 그러나 애플리케이션의 범위와 성능 요구 사항이 증가함에 따라 모놀리스는 유지 관리 및 확장이 어려워질 수 있습니다.
모놀리식 시스템은 빠르게 확장하거나 정기적으로 유지 관리할 필요가 없는 규모가 작고 복잡하지 않은 애플리케이션에 적합할 수 있습니다. 아래에는 일반적으로 모놀리식 기반을 갖는 몇 가지 애플리케이션의 예가 나와 있습니다(하지만 이러한 애플리케이션의 새로운 기능은 더 컨테이너화된 인프라를 기반으로 할 수 있음).
모노리식 아키텍처의 몇몇 측면은 시대에 뒤떨어졌지만 여전히 많은 목적과 긍정적인 특성이 있습니다.
모노리스의 장점은 다음과 같습니다.
모노리스의 단일성은 긍정적인 측면이 있지만, 문제를 야기할 수도 있습니다.
모노리스의 몇 가지 단점은 다음과 같습니다.
모놀리식 아키텍처와 대조적으로 마이크로서비스 아키텍처가 있습니다. 마이크로서비스는 작은 구성 요소를 결합하여 크고 복잡한 애플리케이션을 구축하는 소프트웨어 아키텍처 접근 방식입니다. 이러한 구성요소는 각각 단일 기능(예: 인증, 알림 또는 결제 처리)을 수행하거나 모놀리스 내에서 번들로 작동할 수 있습니다. "마이크로서비스"(또는 단순히 "서비스")는 작은 구성 요소 자체를 지칭하는 용어이기도 합니다.
모놀리식 앱은 밀접하게 결합되어 있는 반면(즉, 구성 요소가 상호 연결되어 있는 경우), 마이크로서비스 앱은 분산되어 있습니다(즉, 구성 요소가 독립적으로 작동할 수 있는 경우). 애플리케이션이 더욱 크고 복잡해짐에 따라 많은 조직에서는 모놀리스에서 벗어나거나 마이크로서비스 형식으로 새로운 앱을 통합하는 것을 모색하고 있습니다.
NGINX는 모놀리식 및 마이크로서비스를 탐색하는 사람들을 위해 다음과 같은 무료 교육 리소스를 제공하게 되어 자랑스럽게 생각합니다.