내 잡다한 노트

Stateful 애플리케이션 본문

DevOps

Stateful 애플리케이션

peanutwalnut 2024. 11. 17. 22:12

Stateful 애플리케이션은 데이터를 지속적으로 저장하고, 해당 데이터의 상태에 따라 작동하는 애플리케이션을 의미합니다. 이 애플리케이션은 이전 작업의 상태를 기억해야 하며, 이를 기반으로 다음 작업을 처리합니다.

 

1. 데이터베이스

예시:

  • MySQL
  • PostgreSQL
  • MongoDB
  • Redis
  • Cassandra

특징:

  • 데이터베이스는 클라이언트 요청을 처리하고 데이터를 저장해야 합니다.
  • 노드 간 데이터 일관성(consistency)을 유지하는 것이 중요합니다.
  • Kubernetes에서 **Persistent Volume(PV)**을 사용해 데이터를 지속적으로 유지해야 합니다.

 

2. 메시지 브로커

예시:

  • RabbitMQ
  • Apache Kafka
  • ActiveMQ

특징:

  • 메시지 브로커는 메시지를 큐(queue)에 저장하여 처리하거나 전달해야 합니다.
  • 메시지가 손실되지 않도록 데이터를 안정적으로 저장해야 하며, 클러스터 간 메시지 복제가 필요할 수 있습니다.

 

3. 스토리지 시스템

예시:

  • Ceph
  • GlusterFS
  • MinIO

특징:

  • 파일, 블록, 객체 데이터를 클라이언트에 제공하며 지속적으로 데이터를 저장합니다.
  • 데이터의 가용성과 무결성을 보장하는 것이 중요합니다.

 

4. 세션 관리 서비스

예시:

  • Memcached (사용자 세션 관리)
  • Redis (세션 스토리지로 사용)

특징:

  • 웹 애플리케이션에서 사용자의 세션 정보를 저장하고 관리.
  • 클라이언트가 동일한 노드에 액세스해야 데이터 일관성이 유지되지만, Redis는 클러스터 모드로 HA를 지원하기도 합니다.

'DevOps' 카테고리의 다른 글

Provisioning 이란?  (0) 2024.11.24
DORA 메트릭  (1) 2024.11.23
CI / CD  (0) 2024.11.19
Stateless 애플리케이션  (0) 2024.11.17
DevOps란  (0) 2024.07.24