본문 바로가기

Docker

소프트웨어 아키텍쳐

소프트웨어 아키텍처

정의

소프트웨어 아키텍처는 기능적인 측면보다는 안정적인 운영을 위한 전체적인 코드를 설계하는 것을 의미합니다.


IT의 역사

  • 초기: 하드웨어 중심
  • 현재: 소프트웨어 중심

현재 아키텍처 트렌드

  1. 탄력적 (Resilient)
  2. 깨지지 않는 (Anti-Fragile)
  3. 클라우드 네이티브 (Cloud Native)

확장 방식

  • 수직적 확장 (Scale-Up): 시스템의 성능을 높이기 위해 하드웨어 성능을 증가.
  • 수평적 확장 (Scale-Out): 여러 대의 서버를 추가하여 확장.

Anti-Fragile의 4가지 특징

  1. Auto-scaling
    • 시스템의 부하에 따라 자동으로 확장 및 축소.
  2. Microservices
    • 역할을 분리하여 하나의 서비스 장애가 다른 서비스에 영향을 주지 않음.
  3. Chaos Engineering
    • 예상치 못한 장애 상황에서도 시스템을 복구할 수 있도록 대비.
    • 예: 카오스 몽키(Chaos Monkey).
  4. CD (Continuous Deployment)
    • 지속적인 배포로 신속하게 변화에 대응.

결론

현재의 아키텍처 트렌드는 Cloud Native 아키텍처를 지향합니다.

'Docker' 카테고리의 다른 글

컨테이너 가상화 기술과 Docker  (0) 2024.12.04