Computer >> 컴퓨터 >  >> 프로그램 작성 >> 데이터 베이스

블랙 프라이데이와 사이버 먼데이:데이터가 준비되었습니까?

블랙 프라이데이와 사이버 먼데이:데이터가 준비되었습니까?

블랙 프라이데이, 사이버 먼데이, 심지어 그린 먼데이(일부 "친환경"을 절약하고 크리스마스에 최적의 배송 날짜를 지정하는 마지막 월요일)는 올해 확실히 큰 토론 주제입니다. 가장 일반적인 공개 대화 주제는 특가 상품 찾기, 탐나는 명절 선물 쇼핑, 소비자가 지출하는 엄청난 금액에 관한 것입니다.

Black Friday 2018의 판매 보고서에 따르면 온라인 판매는 62억 달러로 전년도보다 23.6% 증가했습니다, 사이버 먼데이는 2018년의 가장 큰 판매일이었습니다. 온라인 매출은 79억 달러로 2017년보다 19.3% 증가했습니다.

그러나 또 다른 매우 중요한 병렬 대화가 현재 진행 중이며, 그 하나는 원활한 온라인 쇼핑, 신용 카드 번호 보안, 온라인 및 현장 판매 프로세스 결함을 유지하는 데 필요한 막대한 기술 및 데이터 관리 노력에 관한 것입니다. 무료. 대부분의 쇼핑객은 쇼핑을 가능하게 하는 기술의 양이나 복잡성, 가격이 설정되고 구매가 처리되는 방식에 대해 결코 멈추지 않고 생각하지만, 쇼핑 경험의 이면에 있는 데이터 기술에 생계가 달려 있는 우리에게는 이것이 가장 중요합니다. 연중 계획 및 구현 시간.

따라서 귀하가 판매자이거나 판매자를 지원하거나 전자 상거래 또는 금융에 관여하고 있다면 아마도 지금은 정말 바쁘고 항상 휴대전화를 가까이에 두고 있을 것입니다. 이제 데이터베이스, 지원 인프라 및 애플리케이션이 쇼핑 시즌 동안 견딜 수 있는 과부하에 대비할 때입니다.

이 블로그는 블랙 프라이데이가 다가옴에 따라 고려해야 할 데이터 기술 스택의 일부 주요 영역, 준비 방법에 대한 포인터, 블랙 프라이데이 및 사이버 먼데이를 준비하기 위해 ObjectRocket 팀이 귀하와 협력할 수 있는 방법에 대해 설명합니다.

블랙 프라이데이와 사이버 먼데이:데이터가 준비되었습니까?

데이터 스택을 준비하는 일반적인 단계

어떤 데이터베이스를 사용하든 준비하기 위해 취해야 하는 몇 가지 단계가 있습니다. 여기에는 데이터 저장소를 원활하게 실행하기 위한 표준 모범 사례가 포함되지만 블랙 프라이데이와 사이버 먼데이를 준비할 때 특히 시급합니다.

  • 대량 트래픽에 대비 :용량 계획, 성장 예측, 데이터 안정성, 고가용성, 복제, 장애 조치 클러스터는 증가된 트래픽 부하를 견디기 위한 기본 개념입니다. 준비할 때 다음 항목을 고려하십시오.
    • 샤드 클러스터의 경우 이러한 피크 기간 동안 공간이 부족하지 않도록 샤드를 추가하는 것이 좋습니다. 여기 ObjectRocket에서 우리는 일반적으로 전체 디스크로 인한 중단을 방지하기 위해 사용량이 60% 정도 증가할 것으로 예상하는 고객을 유지하기를 원합니다.
    • Elasticsearch 클러스터 버전 6.x 이상을 사용하는 경우 더 작은 계획 크기를 사용하는 경우 급속한 성장 가능성, 특히 중요한 목표를 고려해야 합니다. 읽기 전용 잠금을 피하기 위해 디스크 크기를 95% 미만으로 유지합니다. 용량을 계획할 때 각 샤드에 512MB까지 성장할 수 있고 최대 12시간 동안 그 상태를 유지할 수 있는 트랜스로그가 있다는 점을 염두에 두십시오.
    • 자동 크기 조정을 사용하지 않는 더 작고 단순한 복제본 세트의 경우 성장 예측에 따라 동시성과 성장을 처리할 수 있는 계획 크기로 이동하는 것이 좋습니다.
    • 트래픽이 증가함에 따라 데이터베이스에 대한 연결 요청도 증가합니다. 애플리케이션 팀 구성원/고객과 함께 검토하여 올바른 연결 풀링 설정과 올바른 OS 설정(예:ulimits ,  사용자에 대한 리소스 제한을 표시하고 설정할 수 있습니다. 때때로 애플리케이션은 우리가 처리할 수 있는 단일 복제본 세트 또는 4개의 기본 mongo(샤딩된 클러스터에서 연결을 수신하는 특수 노드)보다 더 많은 연결을 열어야 할 수 있습니다. 이 경우 우리는 종종 고객과 협력하여 연결을 처리하기 위해 더 많은 mongo를 할당합니다.
    • oplog의 크기가 올바른지 확인하는 것도 고려해야 할 또 다른 영역입니다. oplog는 보조 노드가 동기화 소스에서 데이터를 복제하는 모든 생성, 읽기 및 삭제 작업의 제한된 컬렉션(고정 크기)입니다. 보조 노드는 동기화 중인 노드의 oplog 크기가 작고 작업을 따라갈 수 없는 경우, 특히 피크 기간에 동기화되지 않을 수 있습니다. oplog가 클수록 2차 노드가 다운되더라도 2차 노드가 1차 노드의 활동과 동기화되어야 하는 시간이 늘어납니다.
  • 테스트, 조정 및 추가 테스트 :데이터베이스를 더 많이 테스트할수록 데이터베이스에 대해 더 많이 알게 됩니다. 스트레스 및 성능 테스트를 실행하고 고객이 쇼핑을 시작하기 훨씬 전에 변경 사항을 적용해야 할 때입니다.
    • 과거 딸꾹질/데이터 오류, 약점 영역을 살펴보고 강화해야 할 사항이 있는지 확인합니다(그러나 BF 직전에 큰 수정 사항을 적용하지 마십시오). .
    • 준비 기간 초기에 부하 및 성능 테스트를 수행하고 연중 내내 이러한 유형의 테스트를 지속적 통합 프로세스에 구축합니다.
    • 가능한 경우 테스트 환경에서 트래픽 패턴과 부하 길이를 시뮬레이션합니다.
  • 분석 활용 :지난 몇 개월 동안 트래픽 흐름 및 기타 패턴을 살펴봤다면 "정상"이 무엇인지 잘 알고 있을 것입니다.
    • 빅 데이터 이전에 해결할 수 있는 차선책으로 보이는 성능 또는 입출력 문제를 찾아보세요.
    • 트래픽 패턴 연구:가장 바쁜 시간에 최대 연결 수를 확인한 다음 20% 더 많은 용량을 계획하세요.
    • Elasticsearch의 경우 CPU 사용량/GC 시간/쿼리 시간을 제공하는 New Relic과 같은 타사 메트릭 수집기를 사용할 수 있습니다. 이 모든 통계는 블랙 프라이데이의 큰 주를 계획하는 데 도움이 됩니다.
  • 주요 수리 또는 업그레이드는 보류하십시오. 큰일에 너무 가깝다! 그리고 팀 전체에 이러한 중단을 알리십시오.
  • 보안을 다시 확인하십시오. 측정하고, 알고 이해하고, 다른 사람에게 설명할 수 있는 능력에 대해 준비하고 자신감을 갖습니다(필요한 경우). 최소한 데이터 유출의 "소프트 타겟"이 아닌지 확인하십시오.
  • 개인정보 보호 규정 , 보안 문제와 유사하게 점점 더 중요해지고 있습니다. GDPR 요구 사항은 판매 캠페인(및 관련 쿠키) 사용 및 고객 데이터 사용/저장 방식에 영향을 미칩니다.
  • 미래를 바라보는 지속적인 개선 :블랙프라이데이/사이버먼데이마다 회고모임(레트로)을 열어 다음번에 개선할 부분을 찾는 것이 좋습니다!

데이터베이스별 고려사항 

다음은 ObjectRocket이 지원하는 일부 데이터베이스에 대한 몇 가지 프로 팁입니다.

MongoDB 프로 팁

MongoDB는 전자 상거래용 NoSQL 데이터베이스 중에서 점점 더 인기 있는 선택이며 속도와 확장성이 주요 이점입니다. 많은 판매자가 MongoDB 제품 카탈로그를 사용하여 제품 제공, 가격 책정, 배송 및 재고를 관리합니다. MongoDB 전문가의 전문가 팁은 다음과 같습니다.

  • 복제본 세트의 세 호스트 이름이 모두 복제 세트의 경우 연결 문자열에 추가되고 샤딩된 클러스터의 경우 4개의 몽고가 모두 추가되었는지 확인합니다.
  • 데이터베이스에 대한 불필요한 연결을 너무 많이 열지 않도록 연결 풀을 사용하고 있는지 확인하십시오.
  • 트래픽 및 읽기/쓰기가 얼마나 증가할지(성장 예측) 고려하고 MongoDB의 자동 확장 기능을 활용하세요.
  • 성수기 전후에 성능 조정(메모리 사용량, 연결 처리, 복제본 세트의 상태)을 최신 상태로 유지하십시오.

Elasticsearch 프로 팁

우리는 Elasticsearch 전문가 팀으로부터 블랙 프라이데이와 사이버 먼데이를 위한 데이터베이스 준비를 위한 몇 가지 Pro 팁을 수집했습니다. Elasticsearch는 주로 스트리밍 로그 데이터의 시각화 및 분석에 사용되거나 검색의 중요한 온라인 쇼핑 기능(자동 완성, 패싯 검색 및 동의어 포함)에 상관없이 전자 상거래 기술 스택의 중요한 부분입니다.

  • 블랙 프라이데이 2일 전에 스냅샷 촬영 빈도를 높입니다. 쇼핑 주말 내내 하루에 2~3회 스냅샷을 촬영한 다음 사이버 먼데이 이후에는 일반 백업 일정으로 돌아가는 것이 좋습니다. 이러한 스냅샷이 최대 트래픽 이전에 발생하도록 예약한 다음 최대 트래픽 이후에 다시 발생하도록 예약하는 것이 좋습니다. Elasticsearch 백업은 diff 형식으로 수행되기 때문에 하루에 3번 스냅샷을 수행하면 스냅샷의 기간이 상당히 짧아집니다.
  • 로그 파일을 시각화하기 위해 주로 Elasticsearch를 사용하는 경우:
    • 행사 기간 동안 데이터 소비 증가를 계획합니다.
    • 가장 중요한 로그 및 이벤트를 분석할 수 있도록 적절한 설정으로 Kibana 대시보드를 최신 상태로 유지하십시오.
    • 집계/대시보드에서 기준선이 무엇인지 파악하여 급증 및 문제를 식별할 수 있습니다. 일부 사용 사례에서는 Elastalert 통합의 이점을 활용하여 다양한 이벤트를 경고할 수 있습니다.
  • 검색 기능에 주로 Elasticsearch를 사용하는 경우:
    • 읽기 과중한 날이 될 가능성이 높으므로 다음을 수행할 수 있습니다.
      • 추가 활성 스레드 풀을 얻기 위해 노드 수 증가
      • 복제본 수를 늘려 더 많은 곳에서 읽을 수 있도록
  • Elasticsearch의 도구인 Rally를 사용하여 현재 Elasticsearch 클러스터가 현재 계획된 검색 처리량을 처리할 수 있는지 확인하기 위한 벤치마킹 테스트를 수행합니다.
  • 발생할 수 있는 추가 오류가 있는지 Elasticsearch 로그를 확인하세요.
  • 모든 애플리케이션이 4개의 연결 끝점을 모두 사용하고 있는지 확인합니다.
  • 현재 느린 쿼리를 살펴보고 쿼리를 분석하거나 개선하는 데 도움이 필요하면 ObjectRocket 팀에 문의하세요.

Redis Pro 팁

Redis는 일반적으로 쿼리, 세션 및 전체 페이지 캐시와 같은 캐싱을 의미하는 매우 임시적일 수 있는 데이터에 사용됩니다. 블랙 프라이데이와 사이버 먼데이의 트래픽이 많은 동안 캐싱은 애플리케이션이 최상의 성능을 유지하도록 하는 핵심입니다. Redis 전문가는 다음 팁을 제안합니다.

  • 세션 저장소 또는 캐시로 Redis를 사용하는 경우 블랙 프라이데이 트래픽이 증가하여 메모리 또는 대역폭 제한에 도달할 수 있다고 생각되면 위쪽으로 크기 조정을 고려하십시오.
  • 자동으로 만료될 수 있고 만료되어야 하는 모든 키에 TTL("수명"이 키 만료 시간을 결정함)을 설정하고 있는지 확인합니다.
  • maxmemory-policy 메모리가 부족한 경우에 적절하게 설정됩니다. 인스턴스에서 이 설정을 수정해야 하는 경우 ObjectRocket 지원팀에 문의하세요.
  • 프로덕션 인스턴스의 경우 트래픽이 급증하기 전에 메모리 조각화 비율이 양호한지 확인하세요.
  • 작업 대기열 관리 프레임워크의 백엔드로 Redis를 사용하는 경우 작업 상태를 모니터링하기 위해 이 프레임워크에 대한 대시보드를 갖고 확인하는 것이 좋습니다. 이러한 대시보드의 몇 가지 예는 resque-web, arena, sideqik입니다.
  • 매력적으로 들리겠지만 flushdb, flushall을 실행하지 마십시오. , 또는 캠페인 직전의 기타 대규모 삭제 작업, 대신 SCAN 및 DEL 스크립트를 작성하십시오.
  • COMMANDSTATS 로그와 SLOWLOG 로그에서 현재 항목을 확인하고 어떤 패턴을 최적화할 수 있는지 확인하여 차단 작업을 실행하지 않도록 합니다. "KEYS *의 사용을 피하십시오. " 및 기타 장기 실행 작업.
  • 프로덕션이 아닌 개발 인스턴스에서 패턴을 분석하기 위해 MONITOR 명령의 출력을 보면서 스트레스 테스트를 실행합니다.
  • 샘플 데이터가 있는 개발 인스턴스에서 rdb-tools 사용 , redis-cli –bigkeysredis-cli –memkeys 데이터 분포 및 메모리 사용량을 분석합니다.
  • 인스턴스 모니터링을 기존 통계 플랫폼에 통합하는 에이전트를 설정합니다. 예:Datadog, New Relic, Prometheus.

ObjectRocket이 귀하와 파트너 관계를 맺기 위해 하는 일

많은 고객에게 연말연시는 연간 비즈니스 규모의 상당 부분을 차지합니다. 이 기간 동안 가장 큰 위험과 가동 시간이 가장 중요합니다. 우리는 고객이 이러한 계절적 교통 상황에 대비할 수 있도록 많은 노력을 기울이고 있습니다.

다음은 ObjectRocket 팀이 하는 일의 몇 가지 예입니다.

  • 느린 쿼리 분석 :최적보다 오래 걸리는 쿼리에 대한 조언을 제공할 수 있습니다(예:Elasticsearch에서 1초 이상 걸리는 쿼리는 차선책임).
    • 느린 쿼리에 대한 로깅은 클러스터에서 활성화되어야 합니다. (고객이 요청할 수 있음) 그런 다음 하루나 이틀의 데이터가 확보되면 숫자를 확인합니다. 정의된 최적의 시간(초)보다 더 오래 걸리는 쿼리의 비율을 확인한 다음 쿼리의 가장 비용이 많이 드는 부분을 식별하는 쿼리 프로파일러를 통해 쿼리를 실행합니다. 그런 다음 고객과 상담하고 쿼리 시간을 줄이는 방법에 대한 조언을 제공합니다.
  • 성능 조정:이는 특히 다음과 같이 고객을 위해 최적화되지 않은 작업을 조정하는 데 시간을 할애하는 또 다른 영역입니다. 
    • 잘못된 정규식 쿼리는 데이터베이스를 크롤링하는 속도를 늦출 수 있습니다. 정규식 쿼리에 적용할 수 있는 몇 가지 최적화에 대한 블로그 게시물을 참조하세요.
    • 컬렉션 스캔이 필요한 쿼리. 이러한 작업은 종종 많은 문서를 스캔하고 몇 개만 반환하므로(즉, 인덱스를 사용하지 않음) 상당히 비용이 많이 들 수 있습니다.
    • 비성능 연산자를 사용하는 작업은 종종 많은 문서와 색인 키를 검사하므로 가능한 경우 $ne, $exists:true와 같은 연산자의 사용을 피하십시오. , $9.
  • 인덱싱:적절한 인덱스를 마련하는 것이 가장 중요한 작업인 경우가 많으며 이것이 대부분의 고객이 블랙 프라이데이에서 살아남은 방법입니다. 대부분의 작업에 적절한 색인이 있는지 확인하기 위해 인스턴스를 프로파일링할 수 있으며, 추가 색인이 필요한 경우 색인을 생성하기 위해 귀하와 협력합니다.
  • 부하 테스트 및 확장 — 요청 시 부하 테스트를 조정하여 예상되는 트래픽 증가가 발생하기 전에 시뮬레이션할 수 있습니다. 이는 예상되는 성장 및 트래픽 급증 동안 애플리케이션의 성능이 최적 상태를 유지하도록 하기 위해 필수적입니다.
  • 유지 보수 유예 — 이 기간 동안 고객이 당사에 크게 의존하고 있다는 점을 인식하고 유지 보수 유예 조치를 시행했습니다. 이는 인프라 유지 보수 작업의 소프트 동결이 11월 초에서 1월 초 사이에 시행됨을 의미합니다. 이 기간 동안 철저한 승인 절차를 거친 긴급 점검만 허용됩니다.
  • 24x7x365 지원 — ObjectRocket 지원 팀은 귀하의 요구 사항을 충족하기 위해 24시간 상주합니다. DBA와 데이터 기술 전문가로 구성된 우리 팀은 블랙 프라이데이와 사이버 먼데이 광기의 노련한 베테랑입니다. 그들은 이 중요한 기간 이전, 도중, 이후에 여러분을 위해 여기 있습니다!

항상 그렇듯이 ObjectRocket 지원에 연락하는 가장 좋은 방법은 [email protected]으로 이메일을 보내는 것입니다. 저희가 어떻게 도울 수 있는지 알려주세요. 즐거운 블랙 프라이데이!