대규모 환경에서 릴리즈 성능 보장
Mattermost 릴리즈가 대규모 환경에서 성능을 보장하는 방법
Mattermost의 각 릴리즈가 대규모 환경에서 높은 성능 기준을 유지하도록 보장하기 위해, Mattermost 엔지니어링 팀은 철저한 부하 테스트를 수행하고, 확장성을 염두에 두고 기능을 개발하며, 데이터베이스 스키마 마이그레이션에 대한 엄격한 지침을 따릅니다. 월간 릴리즈 부하 테스트 # 매달 배포 승인을 받기 전에, Mattermost의 릴리즈 후보는 실제 세계의 대규모 사용 패턴과 일치하는 시뮬레이션 데이터를 사용하는 포괄적이고 성숙한 부하 테스트 도구 세트 를 통해 부하 테스트를 받습니다. 다양한 구성을 커버하는 여러 테스트가 수천 명의 사용자와 수백만 개의 포스트를 포함하는 Mattermost의 고가용성 배포에 대해 실행됩니다. PostgreSQL과 MySQL 모두 테스트되지만, MySQL이 Mattermost v11에서 지원 종료 될 때 MySQL 테스트는 중단됩니다. 부하 테스트는 평균 API 요청 시간, 데이터베이스 I/O, 메모리 사용량, 동시성, 초당 요청 수 등을 자세히 기술하는 보고서를 생성합니다. 릴리즈 후보에 대한 이 성능 보고서는 최신 이전 안정 버전의 보고서와 비교됩니다. 편차가 발견되면 릴리즈 후보가 최종 릴리즈로 승격되기 전에 조사하고 수정합니다. 각 보고서와 분석은 공개 개발자: 성능 채널에 게시됩니다. 확장 가능한 기능 및 시스템 개발 # 확장성은 새로운 기능과 시스템 개발 중에 중요하게 고려되며, 소프트웨어 설계 프로세스의 처음부터 기술 사양에 포함됩니다. 구현의 일환으로, 부하 테스트 에이전트가 해당 기능 또는 시스템에 대한 커버리지를 포함하도록 업데이트됩니다. 그런 다음 부하 테스트가 실행되고 결과가 기준선과 비교됩니다. 코드 변경 사항은 병합되기 전에 최소 두 명의 개발자와 SDET/QA 분석가가 검토합니다. 병합 후, 새 빌드가 생성되어 다음 날 Mattermost 커뮤니티 서버 에 배포되며, 변경 사항이 릴리즈 후보에 포함되기 전에 3-4주 동안 성능에 미치는 영향이 모니터링됩니다. 데이터베이스 스키마 변경 # 데이터베이스 스키마 변경은 업그레이드 시 위험을 줄이고 성능에 미치는 영향을 최소화하기 위해 최소화됩니다. 스키마 변경이 필요한 경우, Mattermost는 마이그레이션 중 및 이후에 위험을 최소화하고 성능 영향을 방지하는 엄격한 마이그레이션 지침 을 따릅니다. 더 복잡한 마이그레이션이 필요한 경우, 상세 분석이 수행되어 가이드와 함께 게시됩니다. 예시 분석은 Mattermost v6.0 스키마 마이그레이션 입니다. 또한 모든 데이터베이스 스키마 변경은 월간 릴리즈 프로세스의 일환으로 부하 테스트됩니다. 릴리즈 후 모니터링 # Mattermost의 새 버전이 릴리즈된 후, 수주에 걸친 기간 동안 Mattermost Cloud 고객에게 롤아웃됩니다. 롤아웃 중에는 성능 및 오류율 메트릭이 예상치 못한 변화 여부를 모니터링합니다. 사용자에게 영향을 미치는 변화가 관찰되면 릴리즈가 롤백되고 편차가 조사되며, 수정 사항은 패치 릴리즈의 일환으로 제공됩니다. 또한 Mattermost 채널,