Cloud Native Architecture
- 확장 가능한 아키텍처
시스템의 수평적 확정에 유연
확장된 서버로 시스템의 부하 분산, 가용성 보장
시스템 또는 서비스 애플리케이션 단위의 패키지(컨테이너 기반 패키지)
모니터링
- 탄력적 아키텍처
서비스 생성 - 통합 - 배포, 비즈니스 환경 변화에 대응 시간 단축
분활 된 서비스 구조
무상태 통신 프로토콜
서비스 추가와 삭제 자동으로 감지
변경된 서비스 요청에 따라 사용자 요청 처리(동적 처리)
- 장애 격리(Fault isolation)
특정 서비스에 오류가 발생해도 다른 서비스에 영향 주지 않음
Cloud Native Application
- Microservices
- CI/CD
- 지속적인 통합(CI)
- 지속적 배포
- Continuous Delivery -> 수동 반영
- Contiunous Deployment -> 자동 반영
- DevOps
- 개발 조직과 운영 조직의 통합
- Development + QA + Operations
- Containers
12Factors
- BASE CODE
- DEPENDENCY ISOLATION
- Configurations
- linkable backing servies
- stages of creation
- stateless processes
- port binding
- concurrency
- disposability
- development & porduction party
- Logs
- Admin processes for eventual processes
Monolithic vs MSA
- Monolith Architecture
- 모든 업무 로직이 하나의 애플리케이션 형태로 패키지 되어 서비스
- 애플리케이션에서 사용하는 데이터가 한곳에 모여 참조되어 서비스되는 형태
- Microservices Architecture Components
- Spring Cloud
- Centalized configuration management(환경 설정 관리)
- Spring Cloud Config Server
다양한 설정을 관리 가능
- Location transparency
- Load Distribution(Load Balancing)
- Ribbon(Client Sid)
- Spring Cloud Gateway
- Visibility and monitoring
- Zipkin Distribitued Tracing
- Netfilx Api gateway
- Fault Tolerance