Trang web của Lowe là một trong những trang web thương mại điện tử hoạt động nhanh nhất

Bằng cách xây dựng hệ thống kiểm tra và giám sát hiệu suất tự động, nhóm kiểm tra Tốc độ trang web của Lowe sẽ lấy các yêu cầu dựa trên ngân sách hiệu suất và ngăn sự hồi quy hiệu suất khi chuyển sang giai đoạn sản xuất.

Abhimanyu Raibahadur
Abhimanyu Raibahadur
Ashish Choudhury
Ashish Choudhury
Dhilip venkatesh Uvarajan
Dhilip venkatesh Uvarajan
Dinakar Chandolu
Dinakar Chandolu
Garima Mimani
Garima Mimani
Safwan Samla
Safwan Samla

Lowe's là một nhà bán lẻ đồ dùng sửa sang nhà cửa trị giá gần 90 tỷ USD. Họ vận hành khoảng 2.200 cửa hàng và tuyển dụng hơn 300.000 nhân viên. Bằng cách xây dựng một hệ thống kiểm tra và giám sát tự động nhằm ngăn chặn sự hồi quy hiệu suất từ khi triển khai sang giai đoạn chính thức, Nhóm tốc độ trang web của Lowe đã có thể cải thiện hiệu suất trang web, giúp đạt được thứ hạng trong số các trang web bán lẻ hàng đầu.

Vấn đề

Mục tiêu của Nhóm Tốc độ trang web là làm cho trang web của Lowe trở thành một trong những trang thương mại điện tử nhanh nhất về hiệu suất tải trang. Trước khi xây dựng hệ thống kiểm tra và giám sát tự động, các nhà phát triển trang web của Lowe không thể tự động đo lường hiệu suất trong môi trường trước khi phát hành công khai. Các công cụ hiện có chỉ tiến hành thử nghiệm trong môi trường phát hành chính thức. Do đó, các bản dựng kém hơn sẽ chuyển sang giai đoạn phát hành chính thức, tạo ra trải nghiệm không tốt cho người dùng. Những bản dựng kém chất lượng này sẽ vẫn còn trong phiên bản chính thức cho đến khi Nhóm tốc độ trang web phát hiện thấy chúng và được tác giả hoàn nguyên.

Giải pháp

Nhóm Tốc độ trang web đã sử dụng các công cụ nguồn mở để xây dựng hệ thống giám sát và kiểm tra hiệu suất tự động cho các môi trường trước khi sản xuất. Hệ thống sẽ đo lường hiệu suất của mọi yêu cầu lấy dữ liệu (PR) và chuyển PR từ giai đoạn vận chuyển đến giai đoạn phát hành chính thức nếu yêu cầu không đáp ứng ngân sách hiệu suấttiêu chí chỉ số của Nhóm Tốc độ trang web. Hệ thống này cũng đo lường mức độ tuân thủ SEO và ADA.

Mức độ tác động

Từ mẫu gồm 1 nhóm trong hơn 16 tuần triển khai 102 bản dựng, hệ thống kiểm thử và giám sát hiệu suất tự động đã ngăn chặn việc 32 bản dựng có hiệu suất kém đi vào hoạt động chính thức.

Trước đây Nhóm Tốc độ trang web phải mất từ 3 đến 5 ngày để thông báo cho nhà phát triển rằng họ đã chuyển lỗi hồi quy hiệu suất vào phiên bản chính thức, thì giờ đây, hệ thống sẽ tự động thông báo cho nhà phát triển về các vấn đề về hiệu suất sau 5 phút kể từ khi gửi yêu cầu lấy dữ liệu trong môi trường tiền sản xuất.

Chất lượng mã đang cải thiện theo thời gian, khi được đo lường bằng thực tế là có ít yêu cầu lấy dữ liệu hơn bị gắn cờ do hồi quy hiệu suất. Nhóm Tốc độ trang web cũng đang từng bước thắt chặt ngân sách quản trị để liên tục cải thiện chất lượng trang web.

Nhìn chung, việc nắm rõ quyền sở hữu mã có vấn đề đã làm thay đổi văn hoá kỹ thuật. Thay vì từ chối những sửa đổi mang tính ứng phó vì không biết rõ ai thực sự gây ra vấn đề, nhóm này có thể chủ động tối ưu hoá nhờ quyền sở hữu đoạn mã có vấn đề có thể phân bổ khách quan.

Triển khai

Trọng tâm của ứng dụng Site Speed Manageance (SSG) là Lighthouse CI. Ứng dụng SSG sử dụng Lighthouse để xác thực và kiểm tra hiệu suất trang của mọi yêu cầu lấy dữ liệu.

Sơ đồ quy trình của ứng dụng SSG, các bước hiển thị trong sơ đồ được mô tả ở phần sau của bài viết.

Ứng dụng SSG khiến bản dựng không thành công nếu không đạt được ngân sách hiệu suất và mục tiêu chỉ số đã xác định của Nhóm Tốc độ trang web. Giải pháp này không chỉ thực thi hiệu suất tải, mà còn cả SEO, PWA và khả năng hỗ trợ tiếp cận. Tính năng này có thể báo cáo trạng thái ngay lập tức cho tác giả, người đánh giá và nhóm SRE. Bạn cũng có thể định cấu hình lớp này để bỏ qua các bước kiểm tra khi cần có ngoại lệ.

Quy trình quản lý tốc độ tự động (ASG)

Spinnaker

Điểm xuất phát. Một nhà phát triển hợp nhất đoạn mã của họ vào môi trường trước khi phát hành công khai.

  1. Triển khai môi trường tiền sản xuất bằng nội dung CDN.
  2. Kiểm tra xem đã triển khai thành công hay chưa.
  3. Chạy vùng chứa Docker để bắt đầu tạo ứng dụng ASG hoặc gửi thông báo (trong trường hợp triển khai không thành công).

Jenkins và Lighthouse

  1. Tạo ứng dụng ASG bằng Jenkins.
  2. Chạy một vùng chứa Docker tuỳ chỉnh đã cài đặt Chrome và Lighthouse. Kéo lighthouserc.json từ ứng dụng SSG và chạy lhci autorun --collect-url=https://example.com.

Ứng dụng Jenkins và SSG

  1. Trích xuất assertion-results.json từ lhci và so sánh với ngân sách được xác định trước trong budgets.json. Lưu kết quả đầu ra dưới dạng tệp văn bản rồi tải tệp đó lên Nexus để so sánh sau này.
  2. So sánh assertion-results.json hiện tại với bản dựng thành công gần đây nhất (được tải xuống từ Nexus) và lưu dưới dạng tệp văn bản.
  3. Tạo email HTML chứa thông tin về thành công hoặc không thành công.
  4. Gửi email đến các danh sách phân phối có liên quan với Jenkins.