이성적으로는 돈 내고 쓰면서 빠르게 개발하는게 낫다는걸 알지만
하나하나 구축하려는 욕심이 든다
적정기준을 정해놓고 따르는게 좋을 것 같은데
서비스 구축을 하면서 사용해야 하는 서비스가 몇가지 있는데
- 인프라
- 그냥 서버.. linux, unix, windwos ..
- k8s cluster
- object storage
- cdn
- DevOps
- 빌드
- 배포
- Logging & 모니터링
- 로그수집
- 모니터링
- 알림
구축하는데 들어가는 비용이 이익을 상회하지 않는 경우
비용: 시간, 돈, 인력
이익: 만족감, 기술발전, 속도, 돈
비교
인프라
IDC에 서버 올려서 직접 구축하면 제일 싸긴하다… 효율적으로 사용할 수 없다.
초기비용이 크고 서버 관리하는 기술도 생각보다 어렵고
경험이 없으면 삽질을 엄청 많이 하게 된다
코드만 만지던 사람들이 생각도 못한 변수가…
그리고 서버를 코드화 할 수 없으면 곤란한 상황이 많이 발생한다.
메이저 클라우드 업체를 쓰면 서버를 완전 코드화할 수 있다.
- AWS
- GCP
- Azure
- Heroku
서버만 쓸 수도 있지만 클러스터까지 쓸 수도 있고
- k8s
- ecs
네이버 클라우드 등 국내 서비스는 안됨. XXX
CDN, ObjectStorage는 클라우드플레어 등 다른 회사를 써도 되고 메이저 클라우드를 써도 되는데 다 코드화가 가능하다.
코드화가 가능하면 인프라 구축이 매우 쉬워진다.
SI도 아닌데 한번 구축하면 끝이지 왜 환경을 재현해야 하냐고???? 하는 경우가 있는데
- CloudFlare
인프라 코드화의 장점
- 테스트 환경 구축: production 환경에
- 서비스 확장이 간편: 인프라 규모를 확장할 때 오류 가능성이 낮다.
- 테스트 자동화가
DevOps
위에 있는거에서 DevOps는 코드화 해서 쉽게 할 수 있고
githubaction같은 무료서비스도 많으니 그냥 써도 된다. 서버를 직접구축하면 조금 더 빠르긴한데 취향에 따라 마음대로 해도 되는 부분…
아직 돈내고 써서 엄청 좋아지는 서비스가 없다
- kustomize
- gitops
- githubaction
- gitlabaction?
- drone
- argocd
- keel
로깅 & 모니터링
hadoop, elastic search, prometheus 거의 이 중 한쪽 생태계와 주변기술 아닐까
구축하는게 튜토리얼대로 하면 금방 할 수 있기도 한데…
서비스에 맞게 튜닝을 하려면 신경쓸게 많다.
생각보다 잘 안되는 편
어떻게 보면 진짜 비핵심적인 부분이기도 해서
진짜 필요한 부분에서는 직접 로그를 DB에 저장하던지 하고
전체적으로는 돈내고 써야하는 분야
sentry, datadog, … 등등 검색하면 많다
클라우드에서 기본 제공해주는 서비스는 대부분 ES, Hadoop 기반이고
커스터마이징이 불편해서 별도로 작업이 많이 필요하다.