Nhật ký công việc cho nhiệm vụ "Chuyển trang web sang nền tảng mới"
Tổng kết di chuyển pivkarta.ru: production và SEO/performance evidence
Đã hoàn thành nhiệm vụ: pivkarta.ru mới đã được đưa lên production. Các cải tiến tiếp theo sẽ được xử lý trong các tác vụ riêng biệt.
Quy mô di chuyển brownfield
Trang web mới được xây dựng dựa trên HAIH runtime đang phát triển, nhưng đối với một dự án legacy thực tế, engine này đã được cải tiến đáng kể để thành một mô hình production hoàn chỉnh: Express runtime đơn độc, React Router SSR, GraphQL/Apollo/Pothos, Knex kết nối với MySQL hiện có, Vite middleware trong môi trường development, phục vụ static production, Varnish, xử lý thumbnail legacy thông qua Sharp, ETag/GET/HEAD và giải phóng tài nguyên máy chủ đúng cách.
Khôi phục cấu trúc công khai chính của sản phẩm cũ: bia, địa điểm, bài viết, thành viên, bình luận, thành phố, bản đồ và liên hệ, bao gồm các URL lịch sử và mối quan hệ giữa các thực thể. Kiểm kê dữ liệu legacy ghi nhận 1.636 bản ghi bia, 3.797 địa điểm, 600 bài viết, 64 thành phố, 3.296 bình luận và 26.548 hồ sơ công khai.
Để đảm bảo tính tương thích, một registry gồm 73.760 địa chỉ đã được xây dựng. Toàn bộ quá trình HTTP crawl được ghi nhận là passed: 73760 không có lỗi ở trạng thái đã kiểm tra. Ngoài ra, 11.579 liên kết nội dung và 19.660 URL tài nguyên đã được kiểm tra bổ sung. Các thay đổi tiếp theo của nhánh được bao phủ bởi các bài kiểm tra mục tiêu, do đó toàn bộ quá trình crawl cũ không nên được coi là sự kiểm tra cho mọi commit cuối cùng.
Kết quả production có thể đo lường
Công việc chính của lần lặp hiện tại kể từ ngày 28 tháng 9 mất 18:01:02 theo đồng hồ bấm giờ.
Lighthouse trước/sau:
| Chỉ số | Legacy | Mới |
|---|---|---|
| Performance | 49 | 93 |
| Accessibility | 75 | 100 |
| Best Practices | 74 | 96 |
| SEO | 83 | 100 |
Application runtime theo docker stats:
- legacy
front: 588.4 MiB; - legacy
api: 231.3 MiB; - legacy
prisma: 953.2 MiB; - tổng tầng ứng dụng legacy: ~1773 MiB (~1.73 GiB);
appmới: 178.2 MiB.
Như vậy, RAM của ứng dụng đã giảm khoảng 10 lần (~90%), đồng thời Lighthouse Performance tăng từ 49 lên 93 và đạt 100 điểm về Accessibility và SEO. Điều đặc biệt đáng chú ý là chỉ riêng Prisma 1 của stack cũ đã tiêu thụ ~953 MiB — lớn hơn gấp năm lần tổng số application runtime mới.
Kết luận kỹ thuật chính
Quá trình di chuyển đã xác nhận giả thuyết brownfield của HAIH: để thay thế một ứng dụng legacy, không nhất thiết phải tái tạo kiến trúc lịch sử của nó. Con đường thực tế đã diễn ra như sau:
hệ thống legacy → khôi phục các yêu cầu/khả năng thực tế → kiểm tra dữ liệu và hợp đồng URL → loại bỏ di sản không cần thiết → kiến trúc mới tối thiểu → xác minh (verification) → bằng chứng production (production evidence).
Giả thuyết ban đầu về việc giữ nguyên mô hình legacy làm ranh giới kiến trúc chính đã được điều chỉnh sau khi nghiên cứu cơ sở dữ liệu thực tế và 250 bảng. Kết quả là dữ liệu công khai có giá trị, các mối quan hệ và web contract được giữ lại, nhưng độ phức tạp về cơ sở hạ tầng tích lũy của hệ thống cũ không được tái tạo.
Điều này làm cho kết quả khác biệt so với một đợt thiết kế lại thông thường: tạo ra được một bản thay thế production cho một trang web lâu năm thực tế với khả năng tương thích có thể đo lường, chi phí runtime thấp hơn đáng kể và các chỉ số web tốt hơn rõ rệt.
Ranh giới của nhiệm vụ này
Trong khuôn khổ nhiệm vụ này, chúng tôi coi việc di chuyển đã hoàn tất. Các kịch bản ghi bị hoãn (xác thực, tạo/chỉnh sửa thực thể), việc thiết kế lại từng trang nội dung bên trong tiếp theo, các bài kiểm tra production bổ sung và các cải tiến khác phải được thực hiện trong các tác vụ riêng biệt chứ không mở rộng tác vụ hiện tại.