내 잡다한 노트
Stateful 애플리케이션 본문
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 |