Phản hồi của Dawny33 là tốt, nhưng tôi sẽ bắt đầu sớm hơn trong quá trình phát triển.
Theo dõi môi trường đám mây của bạn để đảm bảo rằng các chức năng của bạn hoạt động như bạn mong đợi (bao gồm các chức năng "sản xuất", có thể hoạt động trên một tập dữ liệu khác) là rất quan trọng, bởi vì nó có thể tiết lộ những thứ không thể sao chép cục bộ hoặc với một tập dữ liệu thử nghiệm.
Tuy nhiên, tôi sẽ nói rằng thử nghiệm hiệu năng này mà bạn thực hiện với mục đích tối ưu hóa nên bắt đầu trực tiếp từ máy của nhà phát triển. Hoặc, ít nhất, từ một số môi trường địa phương trước khi đẩy lên đám mây.
Lý do tôi nói như vậy là trong khi AWS Lambdas tuyệt vời ở nhiều điểm, thì việc bạn không có toàn quyền kiểm soát trên máy chủ sẽ hạn chế khả năng thiết bị của bạn. Tôi không nói rằng thiết bị là không thể khi không có máy chủ, nhưng hãy thử tìm hiểu xem bạn có bao nhiêu CPU bị gián đoạn (và có bao nhiêu nguyên nhân gây ra bởi mã của bạn ) chỉ để giải trí;)
Vì vậy, những gì tôi khuyên, và điều này thực sự không giới hạn ở serverless, là bắt đầu hồ sơ sớm. Hồ sơ NodeJS có thể được thực hiện với nhiều công cụ khác nhau, NewRelic, dynatrace và AppDocate là một số người chơi lớn. Ngoài ra còn có trình phát nhỏ hơn, một số trong số chúng chỉ là gói NPM để cài đặt (như Nodefly). Cũng có thể thực hiện một số NodeJS mà không cần bất kỳ công cụ bổ sung nào, vì có một trình lược tả được tích hợp trong động cơ V8. Tài liệu này từ NodeJS sẽ giúp bạn bắt đầu.
Dù bạn chọn công cụ nào, bạn muốn cài đặt nó cục bộ và thu thập dữ liệu định hình. Điều đó có thể liên quan đến việc chạy một tác nhân hoặc bao gồm một gói trong gói.json của bạn. Hướng dẫn của công cụ của bạn sẽ cho bạn biết cách cài đặt nó. Một hồ sơ tốt sẽ cho bạn biết bạn sử dụng bao nhiêu bộ nhớ và CPU. Các công cụ tốt hơn sẽ cung cấp cho bạn cái nhìn sâu sắc về số lượng cuộc gọi từ xa đã được thực hiện, chúng mất bao lâu.
Sử dụng dữ liệu định hình mà công cụ cung cấp cho bạn để xác định các tắc nghẽn và giải quyết chúng. Không có giới hạn về số lượng hồ sơ bạn có thể thực hiện. Một số người (crazy?) Sẽ xem xét các cuộc gọi hệ thống của chức năng quan trọng nhất của họ. Bạn có thể phải làm điều đó nếu bạn muốn cạo các nano giây của chức năng của mình (nhưng sau đó, có thể AWS Lambda không phải là lựa chọn tốt nhất để bắt đầu).
Điều đáng chú ý ở điểm này là tôi chưa đề cập đến bất cứ điều gì cụ thể về AWS Lambda. Đó là bởi vì tối ưu hóa của bạn rất có thể sẽ không phải là AWS Lambda cụ thể (xét cho cùng, trong máy chủ, bạn không nên lo lắng về máy chủ / môi trường).
Hãy chắc chắn rằng không chỉ mã của bạn hoạt động, mà nó còn hoạt động theo cách bạn mong đợi. Đừng tối ưu hóa quá mức, nhưng hãy chú ý đến việc sử dụng CPU và bộ nhớ. Mảng 2MB có thực sự tăng lên 10MB khi bạn sắp xếp nó không? Chắc là không.
Sau đó, bạn sẽ có thể sử dụng các công cụ được đề cập bởi Dawny33 hoặc một số công cụ khác để xác nhận rằng các chức năng của bạn hoạt động tương tự khi được triển khai cho Lambda. Tuy nhiên, bạn sẽ có mức độ tin cậy rất cao đối với chức năng của mình và sẽ chỉ cần xác thực rằng chúng hoạt động đúng, không phải hồ sơ đầy đủ về chúng.