Computer >> Máy Tính >  >> Lập trình >> Cơ sở dữ liệu

Thứ Sáu Đen và Thứ Hai Điện Tử:Dữ liệu của bạn đã sẵn sàng chưa?

Thứ Sáu Đen và Thứ Hai Điện Tử:Dữ liệu của bạn đã sẵn sàng chưa?

Thứ Sáu Đen, Thứ Hai Điện Tử và thậm chí Thứ Hai Xanh (Thứ Hai cuối cùng để tiết kiệm một số “màu xanh” và với ngày giao hàng tối ưu cho Giáng Sinh) chắc chắn là những chủ đề thảo luận lớn vào thời điểm này trong năm. Các chủ đề trò chuyện công khai phổ biến nhất là về việc săn tìm các ưu đãi lớn, mua sắm những món quà kỳ nghỉ được thèm muốn và số tiền đáng kinh ngạc mà người tiêu dùng chi tiêu.

Báo cáo bán hàng cho Thứ Sáu Đen 2018 cho thấy doanh số bán hàng trực tuyến là 6,2 tỷ đô la, tăng 23,6 phần trăm so với năm trước , và Cyber ​​Monday là ngày bán hàng lớn nhất trong năm 2018, với doanh thu trực tuyến là 7,9 tỷ đô la, tăng 19,3 phần trăm so với năm 2017.

Nhưng một cuộc trò chuyện song song rất quan trọng khác cũng đang diễn ra, đó là cuộc trò chuyện về nỗ lực quản lý dữ liệu và công nghệ khổng lồ cần thiết để giữ cho hoạt động mua sắm trực tuyến diễn ra suôn sẻ, số thẻ tín dụng an toàn và cả quy trình bán hàng trực tuyến và tại chỗ đều trục trặc- tự do. Mặc dù hầu hết người mua sắm có lẽ không bao giờ dừng lại và suy nghĩ về số lượng hoặc độ phức tạp của công nghệ cho phép họ mua sắm, hoặc cách đặt giá và xử lý giao dịch mua, đối với những người trong chúng ta có sinh kế phụ thuộc vào công nghệ dữ liệu đằng sau trải nghiệm mua sắm, đây là điều quan trọng nhất kế hoạch và thời gian thực hiện cả năm.

Vì vậy, nếu bạn là người bán hoặc hỗ trợ người bán, hoặc tham gia vào thương mại điện tử hoặc tài chính, có thể bạn đang thực sự bận rộn và luôn để điện thoại di động bên mình. Bây giờ là lúc bạn chuẩn bị cho cơ sở dữ liệu, cơ sở hạ tầng hỗ trợ và các ứng dụng của bạn để chịu những tải trọng nặng nề mà chúng có thể phải chịu đựng trong mùa mua sắm.

Blog này đề cập đến một số lĩnh vực chính trong ngăn xếp công nghệ dữ liệu của bạn mà bạn muốn xem xét khi sắp đến ngày Thứ Sáu Đen, gợi ý về cách chuẩn bị và cách nhóm ObjectRocket của bạn có thể làm việc với bạn để sẵn sàng cho Thứ Sáu Đen và Thứ Hai Điện tử.

Thứ Sáu Đen và Thứ Hai Điện Tử:Dữ liệu của bạn đã sẵn sàng chưa?

Các bước phổ biến để chuẩn bị ngăn xếp dữ liệu của bạn

Có một số bước cần được thực hiện để chuẩn bị, bất kể bạn sử dụng cơ sở dữ liệu nào. Chúng bao gồm các phương pháp hay nhất tiêu chuẩn để giữ cho các cửa hàng dữ liệu của bạn hoạt động trơn tru, nhưng chúng có tính cấp thiết đặc biệt khi chuẩn bị cho Thứ Sáu Đen và Thứ Hai Điện Tử.

  • Chuẩn bị cho lượng truy cập lớn :Lập kế hoạch dung lượng, dự báo tăng trưởng, ổn định dữ liệu, tính sẵn sàng cao, nhân rộng, cụm chuyển đổi dự phòng, là những khái niệm chính để chịu đựng tải lưu lượng gia tăng. Hãy cân nhắc những mục này khi chuẩn bị:
    • Đối với các cụm phân đoạn, hãy cân nhắc thêm nhiều phân đoạn hơn để đảm bảo rằng bạn không hết dung lượng trong khoảng thời gian cao điểm như vậy. Tại ObjectRocket, chúng tôi thường muốn giữ chân những khách hàng dự đoán mức tăng trưởng nhiều ở mức sử dụng khoảng 60% để ngăn chặn bất kỳ sự cố ngừng hoạt động nào do đĩa đầy.
    • Với các cụm Elasticsearch phiên bản 6.x trở lên, bạn sẽ cần đảm bảo rằng, nếu sử dụng kích thước gói nhỏ hơn, khả năng tăng trưởng nhanh sẽ được xem xét và đặc biệt là mục tiêu quan trọng giữ kích thước đĩa dưới 95% để tránh khóa chỉ đọc. Hãy lưu ý khi lập kế hoạch dung lượng rằng mỗi phân đoạn có một đoạn chuyển đổi có thể tăng lên 512MB và duy trì như vậy trong tối đa 12 giờ.
    • Đối với tập hợp bản sao nhỏ hơn, đơn giản không sử dụng tính năng tự động chia tỷ lệ, hãy cân nhắc chuyển sang kích thước gói có thể xử lý đồng thời và tăng trưởng dựa trên dự báo tăng trưởng.
    • Khi lưu lượng truy cập tăng, các yêu cầu kết nối đến cơ sở dữ liệu cũng vậy. Xem xét với các thành viên / khách hàng của nhóm ứng dụng để đảm bảo rằng cài đặt tổng hợp kết nối chính xác được cung cấp cũng như cài đặt hệ điều hành chính xác (chẳng hạn như ulimits , Cho phép bạn hiển thị và đặt giới hạn tài nguyên cho người dùng). Đôi khi các ứng dụng có thể yêu cầu bạn mở nhiều kết nối hơn một tập hợp bản sao đơn lẻ hoặc 4 mongos mặc định (các nút đặc biệt lắng nghe các kết nối trên một cụm phân đoạn) mà chúng tôi cung cấp có thể xử lý. Trong trường hợp này, chúng tôi thường làm việc với khách hàng để phân bổ nhiều mongos hơn để xử lý các kết nối.
    • Đảm bảo rằng oplog được định kích thước chính xác là một lĩnh vực khác cần xem xét. Oplog là một tập hợp có giới hạn (với kích thước cố định) của tất cả các hoạt động tạo, đọc và xóa, từ đó các nút phụ sao chép dữ liệu từ nguồn đồng bộ của chúng. Các nút phụ có thể không đồng bộ hóa nếu kích thước oplog trên nút mà chúng đang đồng bộ hóa nhỏ và chúng không thể theo kịp các hoạt động - đặc biệt là trong thời gian cao điểm. Oplog càng lớn thì càng có nhiều thời gian các nút phụ phải đồng bộ với các hoạt động trên nút Chính, ngay cả khi chúng ngừng hoạt động.
  • Kiểm tra, Chỉnh sửa và Kiểm tra một số tính năng khác :bạn càng kiểm tra cơ sở dữ liệu của mình, bạn càng biết nhiều hơn về cơ sở dữ liệu của mình. Đây là thời gian để chạy các bài kiểm tra căng thẳng và hiệu suất, sau đó áp dụng bất kỳ thay đổi nào trước khi khách hàng của bạn bắt đầu mua sắm.
    • Hãy xem xét bất kỳ trục trặc / lỗi dữ liệu nào trong quá khứ, các điểm yếu và xác định xem có những thứ cần cải thiện (nhưng không áp dụng các bản sửa lỗi lớn ngay trước BF) .
    • Thực hiện kiểm tra tải và hiệu suất sớm trong giai đoạn chuẩn bị, nhưng cả năm và xây dựng các loại kiểm tra này vào quy trình Tích hợp liên tục của bạn.
    • Mô phỏng các dạng lưu lượng và thời lượng tải trong môi trường thử nghiệm, nếu có thể.
  • Phân tích đòn bẩy :nếu bạn đã xem xét các luồng lưu lượng truy cập và các mô hình khác trong nhiều tháng qua, thì bạn nên quen với điều gì là “bình thường”.
    • Bắt đầu tìm kiếm bất kỳ vấn đề nào về hiệu suất hoặc đầu vào / đầu ra có vẻ chưa tối ưu mà bạn có thể giải quyết trước dữ liệu lớn.
    • Nghiên cứu mô hình lưu lượng truy cập của bạn:xem xét số lượng kết nối tối đa vào thời điểm bận rộn nhất và sau đó lập kế hoạch để tăng thêm 20% dung lượng.
    • Đối với Elasticsearch, bạn có thể sử dụng bộ thu thập số liệu của bên thứ ba như New Relic sẽ cung cấp cho bạn thời gian sử dụng CPU / GC / Thời gian truy vấn. Tất cả các số liệu thống kê này sẽ giúp bạn lập kế hoạch cho tuần lễ trọng đại của ngày thứ Sáu đen.
  • Đảm bảo tạm ngừng sửa chữa hoặc nâng cấp lớn quá gần những ngày trọng đại! Và, hãy nhớ thông báo về lệnh cấm này trong nhóm của bạn.
  • Xem lại bảo mật của bạn các biện pháp, biết và hiểu chúng, chuẩn bị và tự tin về khả năng giải thích chúng cho người khác (nếu có nhu cầu). Ít nhất, hãy đảm bảo rằng bạn không phải là "mục tiêu mềm" cho việc vi phạm dữ liệu.
  • Quy định về quyền riêng tư , tương tự như các vấn đề Bảo mật, ngày càng quan trọng. Xem xét cách GDPR các yêu cầu ảnh hưởng đến việc bạn sử dụng các chiến dịch bán hàng (và các cookie có liên quan) và cách bạn sử dụng / lưu trữ dữ liệu của khách hàng.
  • Cải tiến liên tục với tầm nhìn cho tương lai :Bạn nên tổ chức các cuộc họp hồi tưởng (retros) sau mỗi Thứ Sáu Đen / Thứ Hai Điện Tử để xác định các lĩnh vực có thể được cải thiện vào lần sau!

Cân nhắc dành riêng cho cơ sở dữ liệu

Dưới đây là một số Mẹo chuyên nghiệp cho một số cơ sở dữ liệu mà ObjectRocket hỗ trợ (hoặc có thể bạn chạy cả ba cơ sở dữ liệu (tính liên tục đa ô)!

Mẹo MongoDB Pro

MongoDB là một lựa chọn ngày càng phổ biến trong số các cơ sở dữ liệu NoSQL cho thương mại điện tử, với tốc độ và khả năng mở rộng là những lợi ích chính. Nhiều người bán sử dụng Danh mục sản phẩm MongoDB để quản lý việc cung cấp sản phẩm, giá cả, giao hàng và khoảng không quảng cáo của họ. Các mẹo chuyên nghiệp từ các chuyên gia MongoDB của chúng tôi bao gồm:

  • Đảm bảo rằng tất cả ba tên máy chủ của tập hợp bản sao được thêm vào chuỗi kết nối cho tập hợp bản sao và tất cả 4 mongos đối với trường hợp cụm phân đoạn.
  • Đảm bảo rằng họ đang sử dụng nhóm kết nối để tránh mở quá nhiều kết nối không cần thiết đến cơ sở dữ liệu.
  • Cân nhắc mức độ lưu lượng truy cập và đọc / ghi của bạn có thể tăng lên (dự báo tăng trưởng của bạn) và tận dụng tính năng tự động mở rộng quy mô của MongoDB.
  • Luôn cập nhật việc điều chỉnh hiệu suất (sử dụng bộ nhớ, xử lý kết nối, tình trạng hoạt động của các bộ bản sao) cả trước và trong những ngày mua sắm lớn.

Mẹo dành cho Elasticsearch Pro

Chúng tôi đã thu thập một số mẹo Pro để chuẩn bị cơ sở dữ liệu cho Thứ Sáu Đen và Thứ Hai Điện Tử từ nhóm chuyên gia Elasticsearch của chúng tôi. Elasticsearch thường là một phần quan trọng của nền tảng công nghệ thương mại điện tử, cho dù nó được sử dụng chủ yếu để trực quan hóa và phân tích dữ liệu nhật ký phát trực tuyến hoặc cho chức năng mua sắm trực tuyến quan trọng của tìm kiếm (với tính năng tự động hoàn thành, tìm kiếm theo mặt và từ đồng nghĩa).

  • 2 ngày trước Thứ Sáu Đen, hãy tăng tần suất chụp ảnh nhanh. Chúng tôi khuyên bạn nên chụp nhanh 2 - 3 lần mỗi ngày trong suốt cuối tuần mua sắm và sau đó sau Thứ Hai điện tử, hãy quay lại lịch trình sao lưu bình thường. Chúng tôi khuyên bạn nên lên lịch cho những ảnh chụp nhanh này xảy ra trước khi có lưu lượng truy cập cao điểm và sau đó lại xảy ra sau khi có lưu lượng truy cập cao điểm - và một lần nữa vào thời điểm bạn chọn. Vì sao lưu Elasticsearch được thực hiện dưới dạng khác biệt nên việc thực hiện các ảnh chụp nhanh 3 lần mỗi ngày sẽ giữ cho thời lượng của ảnh chụp nhanh khá ngắn.
  • Nếu bạn sử dụng Elasticsearch chủ yếu để hiển thị tệp nhật ký:
    • Lập kế hoạch để tăng mức tiêu thụ dữ liệu trong sự kiện.
    • Đảm bảo rằng trang tổng quan Kibana được cập nhật với các cài đặt thích hợp để phân tích các nhật ký và sự kiện quan trọng nhất.
    • Biết đường cơ sở của bạn là gì trong các tổng hợp / trang tổng quan để bạn có thể xác định các mức tăng đột biến và các vấn đề. Một số trường hợp sử dụng có thể được hưởng lợi từ việc tích hợp Elastalert để cảnh báo về các sự kiện khác nhau.
  • Nếu bạn sử dụng Elasticsearch chủ yếu cho chức năng Tìm kiếm:
    • Vì đây có nhiều khả năng là những ngày đọc nhiều, bạn muốn:
      • Tăng số lượng nút để nhận thêm nhóm luồng hoạt động
      • Tăng số lượng bản sao để cung cấp cho bạn nhiều nơi hơn để đọc
  • Sử dụng công cụ Rally của Elasticsearch để thực hiện kiểm tra điểm chuẩn để xem liệu cụm Elasticsearch hiện tại có thể xử lý thông lượng tìm kiếm theo kế hoạch hiện tại hay không.
  • Kiểm tra nhật ký Elasticsearch để tìm bất kỳ lỗi bổ sung nào có thể gặp phải.
  • Đảm bảo rằng tất cả các ứng dụng đang sử dụng cả 4 điểm cuối kết nối.
  • Xem xét các truy vấn chậm hiện tại và nếu bạn muốn được trợ giúp phân tích hoặc cải thiện các truy vấn, hãy liên hệ với nhóm ObjectRocket của bạn.

Mẹo Redis Pro

Redis thường được sử dụng cho các dữ liệu có thể rất nhanh, tất nhiên có nghĩa là bộ nhớ đệm:truy vấn, sesion và bộ nhớ đệm toàn trang. Trong thời gian lưu lượng truy cập dày đặc của Thứ Sáu Đen và Thứ Hai Điện Tử, bộ nhớ đệm là chìa khóa để giữ cho các ứng dụng hoạt động tốt nhất. Các chuyên gia Redis của chúng tôi đề xuất các mẹo sau:

  • Nếu bạn đang sử dụng Redis làm bộ nhớ đệm hoặc lưu trữ phiên, hãy cân nhắc thay đổi kích thước lên nếu bạn nghĩ rằng mình có thể đạt đến giới hạn bộ nhớ hoặc băng thông khi lưu lượng truy cập vào Thứ Sáu Đen tăng lên.
  • Xác nhận rằng bạn đang đặt TTL (“thời gian tồn tại” xác định thời gian hết hạn của khóa) trên bất kỳ khóa nào có thể và sẽ tự động hết hạn.
  • Xác nhận rằng maxmemory-policy được đặt thích hợp trong trường hợp bạn hết bộ nhớ. Liên hệ với bộ phận hỗ trợ của ObjectRocket nếu bạn cần sửa đổi cài đặt này trên phiên bản của mình.
  • Đối với các phiên bản sản xuất, hãy đảm bảo bạn có tỷ lệ phân mảnh bộ nhớ hợp lý trước khi lưu lượng truy cập tăng đột biến.
  • Nếu bạn đang sử dụng Redis làm chương trình phụ trợ cho bất kỳ khung quản lý hàng đợi công việc nào, chúng tôi thực sự khuyên bạn nên có và kiểm tra trang tổng quan cho khung này để theo dõi trạng thái công việc. Một số ví dụ về các trang tổng quan như vậy là resque-web, Arena, sideqik.
  • Nghe có vẻ hấp dẫn, KHÔNG chạy flushdb, flushall , hoặc các hoạt động xóa lớn khác ngay trước chiến dịch; thay vào đó, hãy viết tập lệnh SCAN và DEL.
  • Kiểm tra nhật ký COMMANDSTATS và nhật ký SLOWLOG để biết các mục nhập hiện tại và xem những mẫu nào có thể được tối ưu hóa, để bạn không gặp phải các hoạt động chặn. Tránh sử dụng “ KEYS * ”Và các hoạt động lâu dài khác.
  • Trên phiên bản phát triển (không phải phiên bản sản xuất!), hãy chạy kiểm tra độ căng trong khi xem kết quả đầu ra từ lệnh MONITOR để phân tích các mẫu.
  • Trên phiên bản phát triển có dữ liệu mẫu, hãy sử dụng rdb-tools , redis-cli –bigkeys redis-cli –memkeys để phân tích việc phân phối dữ liệu và mức sử dụng bộ nhớ của bạn.
  • Thiết lập một tác nhân tích hợp giám sát các phiên bản của bạn vào nền tảng thống kê hiện có của bạn. Ví dụ:Datadog, New Relic, Prometheus.

ObjectRocket có gì để hợp tác với bạn

Đối với nhiều khách hàng, kỳ nghỉ lễ chiếm một tỷ lệ lớn trong khối lượng kinh doanh hàng năm của họ. Đó là trong giai đoạn này, cổ phần cao nhất và thời gian hoạt động là quan trọng nhất. Chúng tôi làm rất nhiều việc để giúp khách hàng chuẩn bị cho những sự kiện giao thông theo mùa này.

Đây chỉ là một vài ví dụ về những gì nhóm ObjectRocket của bạn thực hiện:

  • Phân tích truy vấn chậm :Chúng tôi có thể đưa ra lời khuyên cho các truy vấn mất nhiều thời gian hơn mức tối ưu (ví dụ:trong Elasticsearch, bất kỳ truy vấn nào mất nhiều hơn 1 giây là không tối ưu).
    • Ghi nhật ký cho các truy vấn chậm cần được bật trên cụm - (khách hàng của chúng tôi có thể yêu cầu điều này) và sau đó - khi chúng tôi có một hoặc hai ngày dữ liệu - chúng tôi xem xét số trong số các truy vấn mất nhiều thời gian hơn số giây tối ưu đã xác định và sau đó chạy chúng thông qua trình mô tả truy vấn, trình này xác định phần đắt nhất của truy vấn. Sau đó, chúng tôi tham khảo ý kiến ​​khách hàng và đưa ra lời khuyên về cách giảm thời gian truy vấn.
  • Điều chỉnh Hiệu suất:Đây là một lĩnh vực khác mà chúng tôi có xu hướng dành thời gian để điều chỉnh các hoạt động chưa được tối ưu hóa cho khách hàng của mình, đặc biệt là:
    • Truy vấn regex không hợp lệ có thể làm chậm quá trình thu thập dữ liệu cơ sở dữ liệu của bạn. Tham khảo bài đăng trên blog của chúng tôi về một số tối ưu hóa có thể được thực hiện cho các truy vấn regex.
    • Truy vấn yêu cầu quét bộ sưu tập. Các thao tác này có thể khá tốn kém vì chúng thường quét rất nhiều tài liệu và chỉ trả về một số ít (tức là chúng không sử dụng chỉ mục).
    • Các thao tác sử dụng các toán tử không hoạt động thường kiểm tra rất nhiều tài liệu và khóa chỉ mục, vì vậy nếu có thể, hãy tránh sử dụng các toán tử như $ ne, $ being:true , $ nin.
  • Lập chỉ mục:Có các chỉ mục thích hợp thường là nhiệm vụ quan trọng nhất và đó là cách hầu hết khách hàng của chúng tôi sống sót qua Thứ Sáu Đen. Chúng tôi có thể lập hồ sơ cá thể để đảm bảo rằng các chỉ mục thích hợp được đặt sẵn cho hầu hết các hoạt động và nếu cần các chỉ mục bổ sung, chúng tôi sẽ làm việc với bạn để tạo chúng.
  • Kiểm tra tải &chia tỷ lệ - Theo yêu cầu, chúng tôi có thể phối hợp kiểm tra tải để mô phỏng bất kỳ sự gia tăng lưu lượng dự kiến ​​nào trước khi chúng xảy ra. Điều này là bắt buộc để đảm bảo hiệu suất ứng dụng của bạn duy trì ở mức tối ưu trong thời gian tăng trưởng và lưu lượng truy cập dự kiến.
  • Tạm hoãn bảo trì - Chúng tôi đánh giá cao rằng khách hàng của chúng tôi phụ thuộc rất nhiều vào chúng tôi trong thời gian này và đã thực hiện Tạm hoãn bảo trì. Điều này có nghĩa là lệnh đóng băng mềm đối với công việc bảo trì cơ sở hạ tầng sẽ có hiệu lực từ đầu tháng 11 đến đầu tháng 1. Trong thời gian này, chỉ những bảo trì khẩn cấp đã trải qua quy trình phê duyệt kỹ lưỡng mới được phép.
  • Hỗ trợ 24x7x365 - Nhóm Hỗ trợ ObjectRocket có nhân viên làm việc suốt ngày đêm để đáp ứng nhu cầu của bạn. Đội ngũ DBA và chuyên gia công nghệ dữ liệu của chúng tôi là những cựu chiến binh dày dạn kinh nghiệm về sự điên rồ của Thứ Sáu Đen và Thứ Hai Điện Tử; họ ở đây cho bạn trước, trong và sau giai đoạn quan trọng này!

Như mọi khi, cách tốt nhất để liên hệ với Bộ phận hỗ trợ của ObjectRocket là gửi email cho chúng tôi theo địa chỉ support@objectrocket.com. Hãy cho chúng tôi biết cách chúng tôi có thể giúp đỡ và Thứ Sáu Đen Hạnh phúc!