Tin tức và phân tích của tất cả các thiết bị di động

5 các dịch vụ AWS gốc có thể xây dựng một nền tảng serverless toàn diện

Xây dựng một hệ thống phần mềm tự động có nghĩa là thiết lập nhiều máy chủ với cấu hình CPU, bộ nhớ, bộ lưu trữ và các tài nguyên khác chuyên dụng trong nhiều năm tới. Một nhóm quản trị viên sau đó được thành lập để quản lý các hệ thống này. Sau đó, nhóm phát triển tiếp quản cơ sở hạ tầng và bắt đầu tạo các quy trình kết nối các máy chủ.

Quá trình này có thể phức tạp vì nó liên quan đến nhiều nhóm khác nhau làm việc cùng nhau hướng tới một mục tiêu chung. Những xung đột lợi ích này sau đó có thể là một vấn đề.

Nó cũng có thể khá tốn kém. Điều này đòi hỏi phải có quản trị viên trong bảng lương. Các máy chủ chạy liên tục sẽ tiêu tốn tài nguyên ngay cả khi chúng không được sử dụng.

Để duy trì hiệu suất tốt nhất theo thời gian, bạn cần một giải pháp tự động điều chỉnh quy mô để tự động điều chỉnh quy mô tài nguyên máy chủ của bạn.

Nền tảng đám mây có một lợi thế: nó cho phép bạn tạo một kiến ​​trúc toàn diện mà không cần phải thiết lập một cụm máy chủ. Từ quan điểm quản lý, không có gì để duy trì.

Đây là một lựa chọn khả thi cho các công ty khởi nghiệp và các giai đoạn dự án có sản phẩm khả thi tối thiểu (MVP). Đây là điểm khởi đầu tốt nếu khó dự đoán khối lượng sản xuất trong tương lai và hoạt động của người dùng. Trong trường hợp này, có thể khó xác định cấu hình của các máy chủ cụm.

Tự động hóa quy trình thông qua các dịch vụ đám mây không có máy chủ là điểm tạo nên sự khác biệt của kiến ​​trúc không có máy chủ. Nó kết hợp các dịch vụ và tạo ra kết quả tương tự như các máy chủ cụm truyền thống.

Đây là ví dụ về việc xây dựng kiến ​​trúc như vậy chỉ sử dụng các dịch vụ AWS gốc.

Đang tìm nạp luồng dịch vụ không có máy chủ

Hãy tưởng tượng rằng bạn muốn tạo một nền tảng để thu thập nhiều dữ liệu và hình ảnh (hoặc ảnh) khác nhau về cơ sở hạ tầng của một số tài sản cụ thể (đó có thể là bất kỳ tài nguyên sản xuất hoặc tiện ích nào).

  • Để có thể thực hiện các phân tích trong tương lai, dữ liệu đầu vào cần phải được xử lý trước.
  • Sau khi áp dụng các quy tắc nghiệp vụ, quy trình phụ trợ sẽ lưu kết quả tính toán dưới dạng thông tin chuẩn hóa trong cơ sở dữ liệu quan hệ.
  • Giao diện người dùng của ứng dụng hiển thị dữ liệu thô đã được chuẩn hóa, cho phép người dùng xem kết quả.

Chúng ta hãy xem một kiến ​​trúc có thể bao gồm những thành phần nào.

Nhóm AWS S3

Nguồn: aws.amazon.com

Xô Amazon S3 là một cách tuyệt vời để lưu trữ tệp hoặc ảnh trên đám mây AWS. Giá lưu trữ trên thùng S3 cực kỳ thấp. Hơn nữa, việc áp dụng chính sách vòng đời lưu trữ S3 càng làm giảm mức giá này.

Chính sách như vậy sẽ tự động di chuyển các tệp cũ hơn sang các lớp khác nhau của bộ chứa S3, chẳng hạn như quyền truy cập vào kho lưu trữ hoặc kho lưu trữ sâu. Các lớp sau đó cũng khác nhau về tốc độ thời gian truy cập, nhưng đối với dữ liệu cũ thì điều này sẽ ít gặp vấn đề hơn. Nó chủ yếu được sử dụng để truy cập dữ liệu được lưu trữ trong trường hợp xảy ra sự kiện khẩn cấp, không dành cho nhu cầu vận hành tiêu chuẩn.

  • Bạn có thể sắp xếp dữ liệu của mình trong các thư mục con.
  • Đặt giới hạn quyền thích hợp.
  • Thêm thẻ vào nhóm để dễ xác định hơn và có thể sử dụng chúng trong chính sách nhóm động của S3.
  • Theo thiết kế, thùng này không có máy chủ. Nó chỉ là nơi lưu trữ dữ liệu.

Theo thiết kế, thùng S3 không có máy chủ. Nó chỉ là nơi lưu trữ dữ liệu.

Cơ sở dữ liệu AWS Athena

Nguồn: aws.amazon.com

Athena giúp việc tạo hồ dữ liệu AWS cơ bản trở nên dễ dàng. Đây là cơ sở dữ liệu không có máy chủ sử dụng bộ chứa S3 để lưu trữ dữ liệu. Việc tổ chức dữ liệu được duy trì bằng các định dạng tệp có cấu trúc như tệp Parquet hoặc Giá trị được phân tách bằng dấu phẩy (CSV). Bộ chứa S3 chứa các tệp và Athena tham chiếu chúng mỗi khi các quá trình truy cập dữ liệu từ cơ sở dữ liệu.

Chỉ cần lưu ý rằng Athena không hỗ trợ nhiều tính năng được coi là tiêu chuẩn, chẳng hạn như hướng dẫn cập nhật. Vì vậy, bạn cần xem Athena như một phương án rất đơn giản.

Tuy nhiên, nó hỗ trợ lập chỉ mục và phân vùng. Việc mở rộng quy mô cũng rất dễ dàng vì việc này cũng phức tạp như việc thêm nhóm mới vào cơ sở hạ tầng của bạn. Trong hầu hết các trường hợp, điều này có thể đủ để tạo hồ dữ liệu đơn giản nhưng đầy đủ chức năng.

Để có hiệu suất tốt, việc chọn thiết kế dữ liệu tốt nhất với trọng tâm là sử dụng trong tương lai là điều cần thiết. Điều quan trọng là phải rõ ràng về cách bạn muốn chọn dữ liệu. Việc tạo lại các bảng sau này khi chúng đã tồn tại và chứa nhiều dữ liệu là điều khó khăn.

Athena DB là một lựa chọn tuyệt vời và phù hợp với mục đích nếu bạn muốn tạo một nhóm dữ liệu đơn giản và không thay đổi, có thể dễ dàng mở rộng quy mô theo chiều ngang theo thời gian.

Cơ sở dữ liệu AWS Aurora

Nguồn: aws.amazon.com

Athena DB vượt trội trong việc lưu trữ dữ liệu chưa được xác minh. Suy cho cùng, đây là cách bạn muốn lưu trữ nội dung gốc để tối đa hóa việc tái sử dụng trong tương lai. Tuy nhiên, việc cung cấp các kết quả đã chọn cho ứng dụng front-end rất chậm.

Một trong những lựa chọn tốt nhất, chủ yếu từ quan điểm thiết lập dễ dàng, là cơ sở dữ liệu Aurora không có máy chủ.

Aurora không phải là một cơ sở dữ liệu cơ bản. Đây là một trong những giải pháp cơ sở dữ liệu quan hệ gốc tiên tiến nhất trong AWS. Nó cũng là một giải pháp cơ sở dữ liệu quan hệ gốc có độ phức tạp cao được cải tiến sau mỗi lần phát hành.

Aurora độc đáo ở chỗ nó có thể chạy serverless, điều này khiến nó khác biệt với các dịch vụ quan hệ khác. Đây là cách chế độ này hoạt động:

  • Sử dụng bảng điều khiển AWS để đặt cấu hình cụm Aurora. Bạn sẽ cần chỉ định mức CPU và RAM tiêu chuẩn cũng như khoảng thời gian tự động điều chỉnh tỷ lệ tối đa. Điều này sẽ ảnh hưởng đến dung lượng mà cụm Aurora có thể tự động thêm hoặc xóa. Dựa trên mức sử dụng cơ sở dữ liệu hiện tại, AWS quyết định tăng hay giảm quy mô.
  • Cụm Aurora sẽ không bắt đầu cho đến khi một yêu cầu thực sự được người dùng hoặc quy trình khởi tạo. Ví dụ: khi quá trình xử lý hàng loạt theo lịch trình bắt đầu. Hoặc nếu ứng dụng thực hiện lệnh gọi tới API phụ trợ để tìm nạp dữ liệu từ cơ sở dữ liệu. Cơ sở dữ liệu sẽ tự động mở và duy trì hoạt động trong thời gian được chỉ định sau khi quá trình yêu cầu hoàn tất.
  • Cụm Aurora sẽ tự động tắt nếu không còn công việc nào trong cơ sở dữ liệu.

Để nhấn mạnh lại điều này, cơ sở dữ liệu không có máy chủ Aurora chỉ chạy khi cần thực hiện công việc thực tế. Cụm được khởi động tự động sẽ tắt lại nếu nó không xử lý bất kỳ công việc nào. Công việc thực tế là những gì bạn phải trả chứ không phải thời gian nhàn rỗi.

Serverless Aurora được AWS quản lý hoàn toàn và không yêu cầu quản trị viên.

tăng cường AWS

Amplify cung cấp nền tảng không có máy chủ để triển khai nhanh chóng các ứng dụng giao diện người dùng được tạo bằng thư viện JavaScript và React. Không cần phải cấu hình các máy chủ cụm. Sử dụng bảng điều khiển AWS để triển khai mã của bạn trực tiếp hoặc sử dụng quy trình DevOps tự động.

Bạn có thể gọi các API phụ trợ để truy cập dữ liệu được lưu trữ trong cơ sở dữ liệu. Các cuộc gọi này cho phép truy cập vào dữ liệu thực tế trong ứng dụng giao diện người dùng. Nhóm tối ưu hóa hiệu suất back-end chính nên được thực hiện. Bạn có thể giảm thêm khả năng phản hồi chậm trong giao diện người dùng nếu bạn thiết kế các câu lệnh lựa chọn hiệu quả ngay trong lệnh gọi API của mình.

Hàm bước AWS

Nguồn: aws.amazon.com

Ngay cả khi tất cả các thành phần hệ thống chính đều không có máy chủ thì điều này cũng không đảm bảo một kiến ​​trúc hoàn toàn không có máy chủ. Điều này chỉ có thể thực hiện được nếu tất cả các quy trình hàng loạt giữa các thành phần đều không có máy chủ.

Các tính năng của AWS Step cung cấp giải pháp tốt nhất trên đám mây AWS. Danh sách liên kết các hàm AWS Lambda tạo ra hàm bước. Các hàm này tạo ra một sơ đồ khối có trạng thái bắt đầu và kết thúc rõ ràng. Hàm lambda, thường được viết bằng Python hoặc Node JS, là một đoạn mã có thể thực thi được để xử lý bất cứ điều gì cần thiết.

Dưới đây là một ví dụ về hàm bước:

  • AWS chạy chức năng lambda tự động mỗi khi có tệp mới vào thư mục S3. Sau khi phân tích tệp lambda, nó sẽ tải nó vào Athena. Lambda lưu trữ kết quả ở định dạng CSV trong bộ chứa S3 (hoặc bảng theo dõi cơ sở dữ liệu) trước khi tắt.
  • Kết quả này sau đó được lambda tiếp theo sử dụng để thực hiện các bước tiếp theo. Điều này có thể bao gồm việc gọi mô hình học máy và chuyển đổi một tập hợp con dữ liệu mới thành các bảng chuẩn hóa. Bước cuối cùng có thể là tải dữ liệu lên Cơ sở dữ liệu Aurora.
  • Hàm bước kết hợp các lambda này lại với nhau để tạo thành một luồng hàng loạt. Thậm chí có thể thực hiện một cấp độ khác thay vì bước của một cấp độ khác. Nhiều kịch bản có thể được bao phủ theo cách này.
  • Luồng không có máy chủ này có một nhược điểm lớn: mỗi hàm lambda có thể chạy tối đa 15 phút. Vì vậy, việc chia luồng thành các hàm lambda nhỏ hơn có thể làm cho vấn đề trở nên ít hơn.

    Có thể gọi đồng thời nhiều hàm lambda trong một bước, về cơ bản có nghĩa là song song hóa bước đó với nhiều hàm lambda thực thi đồng thời. Chỉ cần đợi cho đến khi tất cả quá trình xử lý lambda song song hoàn tất trước khi tiếp tục. Sau đó chuyển sang xử lý lambda tiếp theo.

    những từ cuối

    Kiến trúc không có máy chủ mang lại cơ hội duy nhất để tạo ra một nền tảng đám mây bao phủ toàn bộ hệ thống. Nền tảng này có khả năng mở rộng theo chiều ngang và có chi phí vận hành thấp.

    Điều này lý tưởng cho các dự án có ngân sách hạn chế. Đây là một lựa chọn tuyệt vời để khám phá, thường là khi không ai biết khối lượng sản xuất thực tế. Điều này đặc biệt quan trọng sau khi tất cả người dùng đã được kích hoạt thành công. Nhóm thiết kế vẫn có thể có được bức tranh tổng thể về cách thức hoạt động của hệ thống. Bạn có thể có tất cả những lợi ích này mà vẫn không phải thỏa hiệp.

    Phạm vi phủ sóng này sẽ không phù hợp với mọi trường hợp, đặc biệt là những trường hợp yêu cầu mức sử dụng CPU cao. Tuy nhiên, đám mây AWS không ngừng phát triển về các trường hợp sử dụng serverless. Thông thường, bạn nên thực hiện một số nghiên cứu kỹ lưỡng trước khi quyết định chọn tùy chọn serverless cho dự án đám mây AWS tiếp theo của mình.

    Sau đó, hãy xem cơ sở dữ liệu không có máy chủ tốt nhất cho các ứng dụng hiện đại.