5 dịch vụ AWS gốc có thể xây dựng nền tảng không có máy chủ từ đầu đến cuối

Spread the love

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 chuyên dụng, bộ nhớ, bộ lưu trữ và các tài nguyên khác trong nhiều năm. Tiếp theo, một nhóm quản trị viên đượ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 cùng làm việc hướng tới một mục tiêu chung. Những xung đột lợi ích sau đó có thể là một vấn đề.

Nó cũng có thể khá tốn kém. Điều này yêu cầu bạn phải có quản trị viên trong bảng lương của mình. Các máy chủ chạy liên tục sẽ tiêu tốn tài nguyên mặc dù 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 thay đổi quy mô để tự động thay đổi quy mô tài nguyên máy chủ.

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

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

Việc tự động hóa các quy trình thông qua các dịch vụ đám mây không có máy chủ là điều làm cho kiến ​​trúc không có máy chủ trở nên nổi bật. Nó kết nối các dịch vụ và tạo ra kết quả tương tự như máy chủ cụm truyền thống.

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

Chọn luồng dịch vụ Serverless

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) về cơ sở hạ tầng của một số tài sản cụ thể (đây có thể là bất kỳ tài sản sản xuất hoặc tiện ích nào).

  • Để thực hiện các phân tích trong tương lai, điều cần thiết là dữ liệu đến phải được nhập trước.
  • Sau khi áp dụng các quy tắc nghiệp vụ, thủ tục back-end sẽ lưu các đầu ra được tính toán dưới dạng thông tin được 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 sạch được chuẩn hóa cho phép người dùng xem kết quả.

Hãy xem xét kiến ​​trúc thành phần nào có thể bao gồm.

Nhóm AWS S3

Nguồn: aws.amazon.com

Bộ chứa 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á của dung lượng lưu trữ trên thùng S3 thấp đáng kể. Ngoài ra, việc giới thiệu chính sách vòng đời bộ chứa S3 còn 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 vào các lớp bộ chứa S3 khác nhau, chẳng hạn như kho lưu trữ hoặc quyền truy cập kho lưu trữ sâu. Sau đó, các lớp khác nhau bởi tốc độ của thời gian truy cập, nhưng đối với dữ liệu cũ, điều này sẽ ít thành vấn đề hơn. Nó chủ yếu phục vụ cho việc truy cập dữ liệu lưu trữ trong trường hợp khẩn cấp hơn là cho nhu cầu hoạt động 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.
  • Bạn nên đặt các giới hạn quyền thích hợp.
  • Thêm thẻ vào bộ chứa để giúp chúng dễ dàng xác định và có thể sử dụng trong các chính sách bộ chứa S3 động.
  • Theo thiết kế, thùng không có máy chủ. Nó chỉ đơn giản là một không gian lưu trữ cho dữ liệu của bạn.
  Bắt đầu Podcast mới của bạn với Buzzsprout

Bộ chứa S3 không có máy chủ theo thiết kế. Nó chỉ đơn giản là một không gian lưu trữ cho dữ liệu của bạn.

Cơ sở dữ liệu AWS Athena

Nguồn: aws.amazon.com

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

Chỉ cần lưu ý rằng Athena không hỗ trợ các chức năng khác nhau được coi là tiêu chuẩn, chẳng hạn như các câu lệnh cập nhật. Đây là lý do tại sao bạn cần xem Athena như một lựa chọn rất đơn giản.

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

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

Athena DB là một lựa chọn tuyệt vời và phù hợp với mục tiêu của bạn nếu bạn đang muốn tạo một nhóm dữ liệu đơn giản và không thay đổi, 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 kiểm duyệt. Rốt cuộc, đây là cách bạn muốn lưu trữ nội dung gốc của mình để tối đa hóa khả năng sử dụng lại trong tương lai. Tuy nhiên, việc cung cấp các kết quả được chọn cho ứng dụng giao diện người dùng là chậm.

Một trong những tùy chọn tốt nhất, chủ yếu từ góc độ thiết lập dễ thực thi, là cơ sở dữ liệu Aurora chạy ở chế độ 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 thiện sau mỗi lần phát hành.

  Cách thực hiện một thỏa thuận thanh toán với Cox

Aurora là duy nhất vì nó có thể chạy ở chế độ không có máy chủ, làm cho nó nổi bật so với các dịch vụ quan hệ khác. Đây là cách chế độ hoạt động:

  • Để định cấu hình cụm Aurora, hãy sử dụng bảng điều khiển AWS. 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ối đa của chức năng tự động điều chỉnh tỷ lệ. Điều này sẽ ảnh hưởng đến hiệu suất 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 hoặc giảm quy mô.
  • Cụm Aurora sẽ không bắt đầu trừ khi người dùng hoặc quy trình khởi tạo một yêu cầu thực sự. Ví dụ: khi bắt đầu xử lý hàng loạt theo lịch trình. Hoặc nếu ứng dụng thực hiện lệnh gọi API back-end để truy xuất dữ liệu từ cơ sở dữ liệu. Cơ sở dữ liệu sẽ tự động mở và sẽ duy trì hoạt động trong một khoảng thời gian định trước 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 một lần nữa, Aurora DB serverless chỉ chạy khi phải thực hiện công việc thực tế. Cụm 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ả cho chứ không phải thời gian nhàn rỗi của bạn.

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

Khuếch đại AWS

Amplify cung cấp một nền tảng không có máy chủ để triển khai nhanh 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 thiết lập cụm máy chủ. Sử dụng bảng điều khiển AWS để triển khai mã trực tiếp hoặc sử dụng quy trình DevOps tự động.

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

Hàm bước AWS

Nguồn: aws.amazon.com

Mặc dù tất cả các thành phần chính của hệ thống đều không có máy chủ, nhưng điều này 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 chức năng AWS Step cung cấp giải pháp tốt nhất trên đám mây AWS. Một danh sách các hàm AWS Lambda được kết nối tạo nên hàm bước. Các chức năng này tạo ra một lưu đồ 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 ngôn ngữ Python hoặc Node JS, là một đoạn mã thực thi để xử lý bất kỳ thứ gì cần thiết.

  Cách phóng to trên TikTok mà không cần dùng tay

Sau đây là một ví dụ về cách bạn có thể thực thi một chức năng bước:

  • AWS kích hoạt chức năng lambda tự động bất cứ khi nào có tệp mới vào thư mục S3. Sau khi phân tích cú pháp tệp, lambda sẽ tải tệp đó vào Athena. Lambda lưu trữ kết quả của nó ở định dạng CSV trên bộ chứa S3 (hoặc trong bảng theo dõi cơ sở dữ liệu) trước khi đóng.
  • Kết quả này sau đó được sử dụng bởi lambda tiếp theo để 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ột mô hình máy học và chuyển đổi một tập hợp con từ dữ liệu mới thành các bảng được 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.
  • Một hàm bước liên kết các lambda này với nhau để tạo thành một luồng hàng loạt. Thậm chí có thể có một hàm bước khác được thực thi thay cho một bước của hàm bước gốc khác. Bằng cách này, có thể bao gồm nhiều kịch bản.
  • Luồng serverless này có một nhược điểm lớn: mỗi chức năng lambda chỉ có thể chạy tối đa trong 15 phút. Do đó, việc chia luồng thành các hàm lambda nhỏ hơn có thể làm cho điều này ít gặp vấn đề 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à thực hiện song song một bước với nhiều lambda được thực thi đồng thời. Chỉ cần đợi tất cả quá trình xử lý lambda song song kết thúc trước khi bạn tiếp tục. Sau đó, tiến hành xử lý lambda tiếp theo.

    Từ cuối cùng

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

    Đó là giải pháp hoàn hảo cho các dự án hạn chế về ngân sách. Đó là một lựa chọn thăm dò tuyệt vời, thường là khi không ai biết thực tế về khối lượng sản xuất. Điều này đặc biệt quan trọng sau khi bạn đã giới thiệu thành công tất cả người dùng. Các nhóm dự án vẫn có thể có được cái nhìn 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 cần phải chấp nhận thỏa hiệp.

    Phạm vi bảo hiểm này sẽ không đủ cho mọi trường hợp, đặc biệt là những trường hợp liên quan đến 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. Bạn nên tiến hành nghiên cứu kỹ lưỡng trước khi quyết định lựa chọn serverless cho dự án đám mây AWS tiếp theo của mình.

    Tiếp theo, 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.

    x