요르딩딩
SW 아키텍처 강의 본문
728x90
반응형
- API Server (오토스케일링 판단해야함.)
- Runtime
- VM
- Serverless
- CloudRun -> Knative
- 구글 클라우드: n2 < n2d (성능도 좋은데 더 싸다.) 잘보고 판단해야한다.
- Appengine(Standard - SDK , Flex)
- CloudRun -> Knative
- ...
- Runtime
- L7, L4 : WAF(보안) 필요하면 사용
- Cloud Amor
- Spot VM
- GPU cloud
- Lambda Labs : https://lambdalabs.com/
- 인프라 설정시 비용을 잘 봐야한다.
- 멀티 스레드 서버 : 자바에서 많아야 500개 (예시. 은행창구)
- 50000개하려면 100대 필요 : C10k (10000) -> 20대 사용
- 복잡한것도 처리 유용!!!
- Node.js server : 싱글 스레드가 루프형식 (예시. 스타벅스)
- 주문은 한명이 받고, 바리스타들이 커피제조
- 비지니스로직이 무거운 경우, 문제 발생 : 간단한것만 사용!!!
- API -cache(레디스) -> DB
- 레디스 : 키 - 벨류(해쉬, sorted sets, sets, lists ...)
- 직접 다루지 마라, 복잡하다 -> 관리해주는거 사용할것!!!
- Database
- RDBMS
- Com(상용) : 오라클(비쌈), MS-SQL(저렴)
- OSS(오픈소스) : MySQL(XA/GIS가 안됨), Postgres (XA/GIS/vector됨)
- mysql은 마이그레이션이 잘 안되어. postgres사용함.
- AWS : RDS, Aurora(겉만 mysql, 엔진이 다름, 성능 좋음)
- 유저가 적으면 RDS쓰다가, Aurora로 갈아타면 된다.
- google : cloudSQL, AlloyDB (성능 좋음)
- https://cloud.google.com/alloydb/omni?hl=en
- Sharding : 데이터 쪼개는 방식 (조인은 힘들다)
- vertical sharding : 잘 안씀
- horizontal sharding : mysql / nosql 혼합해서 주로 사용
- NoSQL
- 용량때문에 사용
- 64core
- KV store/ Documentdb/ GraphDB
- no rebalancing\
- 되도록이면 매니지서비스를 사용하자!!! 직접쓰는거는 위험
- cassandra : 쓰기 빠름
- cloud spanner :Consistency(일관성)/ Availablity(한대가 죽어도 유지 가능)/ Partition-Tole rance (지역별로 끊어져도 자체지역에서 사용 가능)
- 보통은 3개중에 2개만 됨
- https://bcho.tistory.com/666
https://bcho.tistory.com/665
- 키 설정이 중요
- .Pub/Sub & Routing patterns
- message queue disgin considerations
- 메세지 큐가 쌓여 cpu 70%넘어가면 오토스케일링
- 메세지 큐를 모니터링하는게 어렵
- 쿠버네티스 :https://keda.sh/
- 스프링도 큐 사용
- 제니퍼 : was 모니터링 툴
- RDBMS
- 인증
- https://www.okta.com/okta-advantage/?utm_source=google&utm_campaign=amer_mult_usa_all_wf-all_dg-ao_a-wf_search_google_text_kw_workforce-OktaBrand-exact_utm2&utm_medium=cpc&utm_id=aNK4z0000004DlbGAE&utm_term=okta&utm_page={url}&utm_content=679261513163&gad_source=1&gclid=Cj0KCQjwo8S3BhDeARIsAFRmkOOhGmokDKK59W-L3LHO4q1FYbnzL7oeBHsTeWrx6zARgpPaF6RY04QaAm8uEALw_wcB
- https://wso2.com/identity-and-access-management/
- https://firebase.google.com/docs/auth?hl=ko
- https://github.com/zaiyou12/firebase-custom-login
- 탈퇴 프로세스 만들기
- backend
- https://developers.google.com/speed/pagespeed/module?hl=ko
- https://pagespeed.web.dev/
- CDN : contents caching
- 여러대 사용해라.
- https://cloud.google.com/media-cdn/docs/overview?hl=ko
- REST API response caching
- 백엔드 솔루션
- application servers : spring, jboss(빵빵한 기술지원, 요즘 필요할까??)
- single threaded application server : node.js ..
- Reverse proxy : HAProxy
- Message Q : Redis (가볍고, 매니지 지원 좋음) / Kafka(대용량 분산큐, 요즘 뜸)
- 대용량 파일 시스템 : GlusterFS
- NFS 많이 사용했었다 성능이 낮았음 -> NerApp (용량 적고, 빠름)
- Blob : S3, GCS(빅데이터), HDFS (빅데이터)
- DAOS/ Lustre : 빠르다. 용량도 많고 비쌈, 머신러닝이나 유전자분석 시스템에 주로 사용.
- Fuse : Local cache로 사용
- DMA : 다이렉트 메모리 엑세스
- BI 리포팅 툴 : 미국에서 Looker 많이 씀, 한국은 Tableu, 오픈소스 Matabase
- 분석엔진
- google bigQuery/ snowflake(AWS)/ postgres(OLAP) : NL to SQL
- https://github.com/GoogleCloudPlatform/applied-ai-engineering-samples/tree/opendataqna
- https://medium.com/@koratarpans99/natural-language-to-sql-with-langchain-nl2sql-f4adc84b81da
- google analytics : 분석툴, 무료(유저수 상관x), 원본데이터 추출 가능
- firebase : 분석툴
- 성능 테스트
- apache ab, apache jmeter(잘안씀) ...
- locust (오픈소스, 추천!!!, 부하테스트): https://locust.io/
- 모바일 앱 테스트 환경
- 유용한 서비스들
- security(침입테스트) : https://www.whitehatsec.com/
- LLM Application Architecture
- 생성형 AI를 잘 쓸줄 알아야한다.
- safety filter (I/O): 이상한 질문 받지고 응답하지도 못하게함.
- Template : 템플릿을 잘만드는게 중요
- Example Selector : N- shot (예제 N개 1-2개 효과가 좋음, 정확도 차이)
- Orchestration
- LLM : chatGPT(젤 똑똑), Gemma, SLLM, Gemini, (용도에 맞게 선정해야함.)
- Output Formatter
- Agent (중요!!) : 뒤에다 툴을 다는것, Gemini -> youtube, wolfram, google...
- https://smith.langchain.com/
- https://product.kyobobook.co.kr/detail/S000213921986
- 멀티 에이전트 아키텍처 : M-Agent: 멀티로 연결 가능
- Cache : 텍스트의 유사도로 판별
- Memory
- RAG : 문서검색
- Embedding : 데이터를 벡터화 시키는것
- Simmilarity Search: 벡터간의 거리를 기반으로 계산.
- RAG Architecture : 서치를 도울 프롬프트 문장을 어디서 자를것인가가 어렵다.
- model tuning
- fine tuning : fine tuned gpt 3.5와 4버전은 90퍼센트까지 비슷해지며 저렴 하지만, 귀찮
- Distillation : large모델에게 질문시켜 small model를 튜닝 시킨다.
- RLHF
- 중요!!!
- REST API
- DATA mesh
- 자료 공유
- Devops
- Site Reliability Engineering
- 모니터링 시스템
- 지표가 중요
- SLI
- SRE팀 : metrics & monitoring/ Capacity planning(Finops)/ Change management/ Eermency response/ Culture
- Monitoring & alerting
- 매일 측정(SLI, SLO)/ 모니터링(사전 예측)/ 알람
- https://www.pagerduty.com/
- Change Management :70프로가 변화때문에 이슈발생 (원클릭 롤백시스템 만들것!!)
- 슈퍼맨 -> 장애매뉴얼 만들어서 업데이트해야한다. 플레이북
- SLI (service Level Indicator)
- SLO
- Standardized indicator
- toil
- Breakdown approach
- register incident
- error logging
- 모니터링 시스템
- Site Reliability Engineering
728x90
반응형
Comments