서비스를 출시하기 전에 점검하는 항목들은 주로 "개발 및 운영 편의성과 시스템 안정성"에 관한 항목들입니다.
사이드 프로젝트에서 모든 부분을 완벽하게 개발하기는 어렵지만, 훌륭한 엔지니어라면 시스템의 확장성과 유지보수성에 무게를 두고 서비스를 런칭해야 합니다.
서비스가 흥행하게되면, 꽤 오랜기간동안 유지보수하는 큰 규모의 프로젝트로 발전할 가능성이 큽니다. 일정 복잡도에 도달하게 되면 프로젝트가 점차 사람의 손만으로는 개발하기 어려워지기 때문에 이런 상황에서 사용할 수 있는 도구들과 키워드에 대해서 소개합니다. 아래 물음에 대해서 스스로 답해보거나 어느 시점에 도입할지 팀원들과 논의해보는 시간이었으면 좋겠습니다.
1. CI : 지속적 통합
•
Lint
소스코드의 스타일, 잠재적 버그에 플래그를 달아놓는 도구, 프로젝트의 소스코드에 linter가 적용되었나요?
•
Format
소스코드의 스타일을 일괄적으로 변경하는 도구, 팀이 일관된 소스코드이 스타일을 지키고 있나요?
•
Static program analysis
프로그램을 실행시키지 않고, 소스코드를 분석하여 잠재적 버그/보안 취약점을 찾아냄, 정적 분석이 사용되고 있나요?
•
Test
유닛 테스트를 하고 있나요? 테스트 프레임워크가 사용되고 있나요? (상세설명은 생략합니다)
Keyword : Linter, Formatter, Static program analysis, Software Testing, Unit Testing, Observability, Service Monitoring
2. CD : 지속적 배포
•
사람의 손으로 매뉴얼하게 배포되지 않도록 자동화되어있나요? ️
•
롤백이 가능한가요? ️
•
브랜치 전략이 있나요?
* 점검도구 : Introduction to GitLab Flow | GitLab
•
커밋 컨벤션이 있나요?
* 점검도구 : Conventional Commits
Keyword : automation, ansible, terraform, branch strategy, blue green deployment, canary deployment, AB Testing, convention
3. 부하 테스트
아마 프로덕션 레벨에서 사용하는 대표적인 부하 테스팅 도구는 Apache JMeter 일 것입니다. UI를 제공해주지만, 조금 디테일하게 설정할 것들도 많아 복잡할 수 있습니다. 간단히 Cli로 사용하기는 artillery를 추천합니다.
•
서버 성능을 스케일업하면 QPS를 더 받을 수 있는 구조인가요?
•
스케일 아웃이 가능한 구조인가요?
•
PS: 여러분은 혹시 Postman으로도 간단히 부하 테스트가 간단히 된다는 사실을... 알고 계신가요? Performance testing with Postman. The article contains the Postman test… | by Anna Dolnyk | Medium
Keyword : CDN, Cache, Load Balancer, DNS, RAID, Shard, Replica, Stateful, Stateless
4. 운영
•
서비스 최소 운영 비용은?
ex) API Server, DB, Cache, 도메인 1년 총 120,000원
•
데이터 베이스의 storage full 까지 남은 기간은?
ex) 10gb RDB, 1년 운영 가능
•
다국적 언어 지원이 가능한가요?
ex) 서비스 매뉴얼이나 설명이 여러 언어로 지원
•
서비스 모니터링이 가능한 상태인가요?
* 점검도구
- Cloud Monitoring as a Service | Datadog
- Application Monitoring and Error Tracking Software | Sentry
- ELK Stack : Elasticsearch, Logstash, Kibana | Elastic
- Grafana : The open observability platform | Grafana Labs
- Grafana Loki | Grafana Labs
- InfluxDB 1.X: Open Source Time Series Platform | InfluxData
- GitHub - influxdata/telegraf:
Keyword : Cloud Pricing Calculator, i18n, Observability