Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- tensorflow
- LeNet
- reshape
- 머신러닝(딥러닝)
- 이것이 자바다
- 머신러닝
- 판다스
- flatten
- 데이터베이서
- MySQL
- 파이썬
- Java
- 생활코딩 머신러닝야학
- 야학
- 데이터베이스 개론
- 머신러닝야학
- 생활코딩
- 데이터베이스
- 연산자
- 생활코딩 데이터베이스
- JavaScript
- 개발자
- Python
- 카카오클라우드스쿨2기
- 딥러닝
- CNN
- Database
- pandas
Archives
- Today
- Total
IT's 우
[아키텍처]모놀로식 애플리케이션 마이크로서비스 아키텍처(MSA) 비교 본문
728x90
모놀로식 애플리케이션 | 마이크로서비스 아키텍처(MSA) |
하나의 통합된 유닛으로 만들어짐 | 독립적으로 배포할 수 있는 소규모 서비스의 모음 |
모놀리식 아키텍처란 무엇?
- 소프트웨어 프로그램의 전통적인 모델로, 자체 포함 방식이며 다른 애플리케이션과 독립적인 통합된 유닛으로 만들어진다.
- 모든 비즈니스 관련 사항을 함께 결합하는 하나의 코드 베이스를 갖춘 대규모의 단일 컴퓨팅 네트워크
장점
- 손쉬운 배포- 실행 파일 또는 디렉터리가 하나여서 배포가 더 쉽다.
- 개발- 하나의 코드 베이스로 애플리케이션을 구축하여 개발이 더 쉽다.
- 성능- 중앙 집중식 코드 베이스 및 레포지토리에서는 대부분 하나의 API만으로 마이크로서비스에서 여러 API가 수행하는 것과 동일한 기능을 수행할 수 있다.
- 테스트 간소화- 모놀리식 애플리케이션은 하나의 중앙 집중식 장치이므로 분산된 애플리케이션보다 엔드투엔드 테스트를 더 빠르게 수행할 수 있다.
- 간편한 디버깅- 모든 코드가 한 곳에 있으므로 요청을 따라가서 문제를 찾기 더 쉽다.
단점
- 느린 개발 속도- 대규모 모놀리식 애플리케이션에서는 개발이 더욱 복잡해지고 속도 느려진다.
- 확장성- 개별 컴포넌트를 확장할 수 없다.
- 안정성- 모듈에 오류가 있으면 애플리케이션 전체의 가용성에 영향을 줄 수 있다.
- 기술 채택의 장벽- 프레임워크 또는 언어를 변경하면 애플리케이션 전체에 영향을 미치므로 변경 시 비용과 시간이 많이 소요되는 경우가 많다.
- 유연성 부족- 모놀리스의 경우 모놀리스에서 이미 사용한 기술로 제한된다.
- 배포- 약간만 변경하는 경우에도 전체 모놀리스를 다시 배포해야 한다.
마이크로서비스 아키텍처란 무엇?
- 독립적으로 배포 가능한 일련의 서비스를 이용하는 아키텍처 방법
- 서비스에는 특정한 목표를 가진 자체 비즈니스 로직 및 데이터베이스가 있다.
- 업데이트, 테스트, 확장, 배포 및 확장은 각 서비스 내에서 이루어진다.
- 주요 비즈니스, 도메인별 문제를 별도의 독립적인 코드 베이스로 분리한다.
장점
- 애질리티- 배포가 잦은 소규모 팀에서 애자일 작업 방식을 유도
- 유연한 확장- 마이크로서비스가 부하 용량에 도달하면 해당 서비스의 새 인스턴스를 포함하는 클러스터에 신속하게 배포하여 부담을 완화할 수 있다.
- 지속적 배포
- 높은 유지 관리성 및 테스트 편의성
- 독립적 배포 가능- 마이크로서비스는 개별적인 유닛이므로 개별 기능을 빠르고 쉽게 독립적으로 배포할 수 있다.
- 기술 유연성
- 높은 안정성- 전체 애플리케이션이 중단될 위험 없이 특정 서비스에 대한 변경 사항을 배포할 수 있다.
- 팀의 만족도 향상- 더 자율적이며 직접 구축 및 배포할 수 있기 때문에
단점
- 무분별한 개발 확산- 여러 팀이 더 많은 장소에 더 많은 서비스를 만들기 때문에 모놀리스 아키텍처에 비해 더 복잡해진다. 무분별한 개발 확산이 적절하게 관리되지 않으면 개발 속도 느려지고 운영 서능 저하된다.
- 기하급수적인 인프라 비용- 각각 테스트 도구, 배포 플레이북, 호스팅 인프라, 모니터링 도구 등에 대한 자체적인 비용 발생 가능
- 조직 오버헤드 추가- 팀에서는 업데이트 및 인스턴스를 조정하기 위해 또 다른 커뮤니케이션과 공동 작업이 이루어져야 한다.
- 디버깅 문제- 자체적인 로그 집합을 가지고 있어 디버깅 더 복잡하다.
- 표준화 부족- 공통 플랫폼이 없어 여러 언어, 로깅 표준 및 모니터링이 사용될 수 있다.
- 명확한 소유권 부족- 더 많은 서비스가 도입됨에 따라 실행하는 팀의 수 증가. 시간이 지나면 팀에서 어떤 서비스를 활용할 수 있는지, 그리고 지원을 받으려면 누구에게 문의해야 하는지 파악하기 어려워진다.
참고자료:
마이크로서비스와 모놀리식 아키텍처 비교 | Atlassian
마이크로서비스와 모놀리식 아키텍처 비교 | Atlassian
모놀리식 애플리케이션은 하나의 통합된 유닛인 반면, 마이크로서비스 아키텍처는 독립적으로 배포할 수 있는 소규모 서비스의 모음입니다.
www.atlassian.com
728x90
반응형
'CS' 카테고리의 다른 글
OOP-Encapsulation(캡슐화), Inheritance(상속),Polymorphism(다형성) (0) | 2023.02.28 |
---|---|
컨테이너 뽀개기 (0) | 2023.02.07 |
DDD와 MVC와 Layered Architecture (0) | 2023.02.07 |