본문 바로가기
스터디/Cloud & k8s

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

by zoodi 2025. 3. 23.
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

댓글