스터디/Cloud & k8s

[쿠버네티스 스터디.1-1] 모던 애플리케이션의 특징

zoodi 2025. 3. 23. 20:12
728x90

전통적인 애플리케이션 vs 모던 애플리케이션

전통적인 애플리케이션이란?

모놀리식 구조로 수동 배포하는 구조의 애플리케이션

모던 애플리케이션이란?

빠르게 변화하는 기술 환경과 비즈니스 요구에 맞춰 설계된 애플리케이션

- 특징: 클라우드 네이티브 (cloud-native)

 

전통적 애플리케이션 모던 애플리케이션
모놀리식 구조 마이크로서비스 아키텍처 MSA
수동 배포 CI/CD 자동화 배포
물리 서버 기반 클라우드 및 컨테이너 기반
낮은 확장성 높은 확장성(scale- in, out)
다운타임 발생 가능 고가용성 및 무중단 배포

 

 

클라우드 네이티브

애플리케이션을 클라우드 환경에서 효과적으로 개발, 배포, 운영할 수 있도록 설계하는 방법

클라우드 환경에서 애플리케이션이 더 잘 동작하도록 만들어진 것

 

  • 특징
    • 유연한 확장성
    • 빠른 배포 및 업데이트
    • 자동화: 인프라 관리 및 배포 자동화
  • 참고사례
    • 넷플릭스: 수백 개의 서비스를 클라우드 환경에서 운영하여 매일 수천번의 배포를 자동화함
    • spotify: 음악 스트리밍 서비스의 트래픽 급증에도 빠르게 서버를 확장하여 대응함

마이크로서비스 아키텍처 (MSA, Microservice Architecture)

MSA는 애플리케이션을 작고 독립적인 서비스로 나누어 개발하는 방법.

즉 하나의 큰 프로그램을 여러 개의 작은 프로그램(서비스)로 나누어서 관리하는 것이다.

 

  • 특징
    • 독립적인 개발 및 배포
    • 유지보수 용이
      • 하나의 서비스만 수정하면 된다.
    • 확장성
      • e.g. 장바구니 기능이 인기가 많으면 그것만 확장
  • 실제사례
    • Amazon: 쇼핑몰의 결제, 배송, 추천 시스템을 독립된 마이크로서비스로 관리
    • Netflix: 영화 추천, 사용자 인증, 스트리밍 서비스 등이 모두 독립적으로 운영됨

DevOps 및 자동화된 배포 파이프라인

배포 파이프라인

새로운 기능이나 버그 수정을 사용자에게 제공하기 위해 거치는 자동화된 단계

1.코드작성 : 개발자가 새로운 기능 개발
2.빌드: 코드를 컴퓨터가 실행 가능한 형태로 변환
3.테스트: 자동화된 테스트를 통해 오류 확인
4.배포: 코드가 production (real server)에 배포됨

 

  • 중요성
    • 빠른 배포
    • 오류 감소
    • 효율성
  • 실제사례
    • Github Actions: 코드 변경사항이 있으면 자동으로 테스트와 배포 진행
    • Jenkins: sw 빌드/테스트/배포 자동으로 관리하는 도구

핵심 요약

 

모던 애플리케이션 개발은 더 빠르고 안정적인 소프트웨어 개발과 운영을 가능하게해준다~

 

모던 애플리케이션의 핵심 특성

자동화된 CI/CD pipeline과 컨테이너 기술

CI/CD란?

  • CI (Continuous Integration): 코드 변경 사항을 자동으로 통합하고 테스트
  • CD (Continuous Deployment) : 검증된 코드를 자동으로 배포

 

컨테이너 기술

  • Docker: 일관된 환경에서 애플리케이션 실행
  • Kubernetes: 컨테이너 오케스트레이션을 통한 자동화된 배포, 확장, 관리

 

분산처리 핵심 개념

  • 데이터 샤딩: 데이터를 여러 노드에 분산 저장하여 읽기/쓰기 성능 향상
  • 분산 컴퓨팅 : 작업을 여러 서버에 나누어 병렬 처리
  • 데이터 일관성 관리: 분산된 환경에서도 데이터 정확성 유지 (e.g. CAP 이론)

 

728x90