- 백엔드 솔루션들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/Confluent | Apache Kafka Reinvented for the Cloud
Confluent makes it easy to connect your apps, data systems, and entire business with secure, scalable, fully managed Kafka and real-time data streaming, processing, and analytics.
www.confluent.io
Aiven - The trusted open source data platform for everyone
Aiven's fully managed, open source cloud data platform lets you create the data pipelines you always dreamed of – in under 10 minutes.
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
Identity - Okta Identity Korea
Okta는 고객부터 직원에 이르기까지 모든 아이덴티티를 보호하는 신뢰할 수 있는 단일 플랫폼입니다. 10,000개 이상의 조직들이 사용자 로그인, 인증 및 관리에 Okta의 소프트웨어와 솔루션, API를
www.okta.com
서버리스
- AWS Lambda
- GCP function
- Knative
- 쿠버네티스만 있으면 모든 클라우드 지원
- https://knative.dev/docs/
Home - Knative
Run serverless containers in Kubernetes with ease. Knative takes care of the details of networking, autoscaling (even to zero), and revision tracking. Teams can focus on core logic using any programming language. Universal subscription, delivery and manage
knative.dev
모니터링 툴
- 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.io
An open source load testing tool. Define user behaviour with Python code, and swarm your system with millions of simultaneous users.
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