소프트웨어 아키텍처
정의
소프트웨어 아키텍처는 기능적인 측면보다는 안정적인 운영을 위한 전체적인 코드를 설계하는 것을 의미합니다.
IT의 역사
- 초기: 하드웨어 중심
- 현재: 소프트웨어 중심
현재 아키텍처 트렌드
- 탄력적 (Resilient)
- 깨지지 않는 (Anti-Fragile)
- 클라우드 네이티브 (Cloud Native)
확장 방식
- 수직적 확장 (Scale-Up): 시스템의 성능을 높이기 위해 하드웨어 성능을 증가.
- 수평적 확장 (Scale-Out): 여러 대의 서버를 추가하여 확장.
Anti-Fragile의 4가지 특징
- Auto-scaling
- 시스템의 부하에 따라 자동으로 확장 및 축소.
- Microservices
- 역할을 분리하여 하나의 서비스 장애가 다른 서비스에 영향을 주지 않음.
- Chaos Engineering
- 예상치 못한 장애 상황에서도 시스템을 복구할 수 있도록 대비.
- 예: 카오스 몽키(Chaos Monkey).
- CD (Continuous Deployment)
- 지속적인 배포로 신속하게 변화에 대응.
결론
현재의 아키텍처 트렌드는 Cloud Native 아키텍처를 지향합니다.
'Docker' 카테고리의 다른 글
컨테이너 가상화 기술과 Docker (0) | 2024.12.04 |
---|