MSA 학습(1) - Software Architecture
Antifragile
- Auto Scaling
-자동 확장성
-시스템을 구성하는 인스턴스를 하나의 그룹으로 묶고, 그룹에서 유지되어야할 최소 인스턴스를 지정하고 사용량에 따라 자동으로 인스턴스를 증가할 수 있는 환경
- Microservices
-클라우드 네이티브 어플리케이션의 핵심
-전체 서비스에서 개별적인 모듈이나 기능을 독립적으로 개발, 배포, 운영할 수 있도록 세분화된 서비스
- Chaos Engineering
-시스템이 급격하게 변하더라고 견디고, 신뢰성을 쌓기위해 실행 방법, 규칙
-예견되지않은 불확실성에도 안정적으로 운영
- Continuous Deployment
-CI/CD 지속적인 통합/배포
Cloud Native Architecture
- 확장 가능한 아키텍처
- 시스템의 수평적 확장에 유연
- 확장 서버로 시스템 부하 분산, 가용성 보장
- 시스템 또는 서비스 애플리케이션 단위의 패키지(컨테이너 기반)
- 탄력적 아키텍처
- 어플리케이션을 구성하는 각 기능을 하나의 서비스로 개발하고 통합하고 배포하는 시간을 CI/CD로 처리함으로써 시스템에 적용되는 시간 단축
- 전체 어플리케이션을 구성하는 도메인 특성에 따라 서비스의 경계를 구분
- 분리된 서비스 간 원활한 통신을 위해 종속성을 최소화하고 상태를 갖지 않는 서비스를 제공
- 서비스 추가 삭제 자동 감지
- 장애 격리
- 여러 개로 분리되어 개발되는 서비스는 하나의 독립적인 어플리케이션과 같기 때문에 오류 간섭 최소화
- 업데이트 시 전체 서비스를 배포하지 않기 때문에 다른 서비스에 영향을 주지 않음