방명록
- 백엔드 솔루션들2024년 03월 24일 08시 19분 59초에 업로드 된 글입니다.작성자: 재형이반응형
Application servers
- Application servers
- spring
- Apache tomcat
- Jboss : 빵빵한 기술 지원. 근데 요즘 필요할까???
- Pythom Django, Flask
- Single Threaded Application Server (Optimized to C10K)
- node.js
- verte.x
Reverse proxy
- Reverse proxy only : HAProxy
- Webserver + reverse proxy
- 캐싱, 압축, SSL 등 다양한 기능 추가 가능
- nginx : single thread and more faster
- Apache httpd
Message Queue
- RabbitMQ
AMQP 기반, MQTT 지원
다양한 기능과 다양한 메세징 토폴로지 지원 - Active MQ
JMS, 오래된 제품중 하나. 오래되서 안정성은 좋지만, 글쎄?? - Redis
- Zero MQ
제일 빠른 성능, 큐 미들웨어로 보기보다는 프레임웍으로 보는 게 낫지 않을까? - Kafka
대용량 분산큐. 요즘 뜨는
기능이 매우 단순 - 그냥 요즘은 Redis 많이 쓰임. 근데 대용량 처리가 필요? Kafka
- 근데 Kafka는 관리가 어렵기 때문에 Management Service를 보통 사용한다. ex) Confluent Kafka
https://www.confluent.io/ https://aiven.io/ - 트랜젝션 보장이 필요하다고 하면 Active MQ, Zero MQ, RabbitMQ (RabbitMQ가 오픈소스 중에 가장 나음)
- redis랑 kafka는 트랜젝션 없음. 대신 속도 빠름
대용량 파일 시스템
- GlusterFS
파일 시스템에 마운트가 가능/NFS (AWS NFS) / NetApp NFS - OpenStack SWIFT
AWS S3와 유사한 Object Storage - 온프레미스는 NetApp 쓰고, 클라우드는 클라우드 플랫폼에서 제공하는 NFS 서비스를 쓰는게 일반적이다
RDBMS
- MySQL (언젠가는 유료화 BY 오라클?) , MariaDB
- Postgres
- 클러스터링
- MySQL Cluster (유료 BY 오라클)
- MySQL Replication (약간 타임랙이 있음)
- Galera Replication (타임랙은 없으나, 확장에 한계가 있음. 3노드가 적절 , 최대 5노드)
NOSQL
도큐먼트 DB 계열
- MongoDB (MongoDB Atlas)
- RDB와 유사한 많은 기능 제공.
- 가장 널리 쓰임, 자료도 많고 쓰기도 쉽고
- 구조가 분산 구조가 아니라 샤딩 구조로 대용량으로 올라가면 확장성에 문제가 있음. (그때 되면 대박 나지 않았을까 이미??)
- CouchBase
- CouchDB 계열, memcached를 이용하여 자체 캐싱 레이어 제공. 빠름
- 링구조의 아키텍쳐.
- 자체 콘솔 제공
- 최신 버전은 유료, 그 아래 버전은 무료
- 구조상은 제일 아름다운데….
- 그냥 MongoDB를 많이 사용함
키-값 DB 계열
- Cassandra
- Dynamo 기반 링구조 (특정 마스터 서버가 없음)
- 하나의 파일에 대해서 3-copy를 유지함
- 그러다 보니 노드가 하나 죽거나 추가될 때 3-copy 유지를 위해 복제를 하게 되는데 이때 오버헤드가 발생
- 3-copy는 장애가 발생했을 때를 위한 것인데 오히려 이것 땜에 장애가 생기는 아이러니함;;
- 그래서 NoSQL은 온프렘이 아닌 경우에는 그냥 클라우드 매니지드 서비스를 쓰자. 운영 난이도가 너무 높음
- 빠른 쓰기 성능
- Eventual consistency
- Column 패밀리 기반
- Dynamo 기반 링구조 (특정 마스터 서버가 없음)
- HBase
- 마스터-슬레이브 구조
- 구글 빅테이블 구조 기반
- 옛날에는 카산드라와 양대 산맥이었는데, 요즘은 어디에??
- DynamoDB
- 비쌈
- Elastic Search
- 요즘 재미있는 제품. 예전에 검색 서버인 줄만 알았는데
- 요즘 ELK 스택과 더불어 분석 기능을 제공함. 다음 버전에는 큐브 기반의 분석까지 제공 예정
- NoSQL과 더불어 검색용 스토리지로 보완해서 쓰면 좋음.
- 문제는 한글…
- AI 때문에 입지가 많이 흔들리는 중~
In memory db
- Memcached
- Redis
- 다양한 테이타 모델.
- 대세
- 근데 클러스터링이 안됨 (자체 샤딩하셔야) 이었지만 요즘은 클러스터링도 가능함
- 스냅샷뜰때 Fork 되면서 SWAP발생하면 성능 저하
- Infinispan 잘안씀
- Hazelcast 잘안씀
- 그냥 Redis가 대세임
Identity management
- WSO IDM
- 그나마 나음. 제품이 깔끔하게 정리되어 있고 개념 잡기 좋음
- Okta
서버리스
- AWS Lambda
- GCP function
- Knative
- 쿠버네티스만 있으면 모든 클라우드 지원
- https://knative.dev/docs/
모니터링 툴
- DataDog가 짱임, 대신 비쌈
- 모니터링에서 제일 중요한건 어떤 툴을 사용하느냐가 아니라 정보모델을 어떻게 정의할지가 가장 중요함 (어떤 지표를 어느 부분에서 볼 것인지, 같은 지표라고 하더라도 운영팀과 개발팀이 보는 곳이 다르다) → 근데 데이터독이 잘 구현해두었음
- 그래서 처음에 데이터독 trial 버전을 쓰던지 해서 대시보드 구조를 익힌 다음에 그것을 가져다가 오픈소스를 사용해서 구현하는 방식으로 하자
- 무료 기능과 유료 기능이 나눠져 있는 경우에는 소수의 서버에만 유료 기능을 적용시키면 비용 절감 가능. 어차피 로드밸런서 뒤에 api 서버를 묶어두었을 경우에는 장애 패턴이 동일하기 때문에 이런 Trick을 사용할 수 있음 (10대 중에 8대 무료 기능, 2대만 유료 기능)
로그 모니터링
- Event logging : Sentry
- Elastic Search + Logstash + Kibana = ELK
- Logentries
성능 테스트
- Apache Jmeter
- JVM 기반이라 JVM 튜닝을 제대로 못하면 성능 테스트하면서 자기가 먼저 죽어버리는 기이한 현상을 볼 수 있음
- nGrinder
- Locust
https://locust.io/
- Locust 쓰자. 쉽고 좋다!
유용한 서비스들
- https://onesignal.com/
푸쉬서비스 - https://www.cloudflare.com/
무료 CDN - https://www.whitehatsec.com/
Security Scanning
모의해킹을 통해 리포트, 비싸기 때문에 trial 기간을 활용. 한두번만 하면 됨. - https://www.tinfoilsecurity.com/
Security Scanning
반응형'아키텍쳐 > 레퍼런스 아키텍쳐 - Common' 카테고리의 다른 글
LLM 시스템 아키텍쳐 설계 (0) 2024.04.13 머신 러닝 시스템 아키텍쳐 설계 (0) 2024.04.08 빅데이터 시스템 아키텍쳐 설계 (데이터 매쉬) (0) 2024.04.07 비동기 백엔드 아키텍쳐 설계 (0) 2024.03.17 다음글이 없습니다.이전글이 없습니다.댓글 - Application servers