Thiết kế các giải pháp IoT có thể mở rộng trên AWS

04:50 PM 19/07/2019 In bài viết

The world and the text

Internet of Things (IoT) mang đến một cơ hội tuyệt vời cho mọi ngành công nghiệp để giải quyết các thách thức kinh doanh của họ. Với sự phổ biến của các thiết bị, con người cần một giải pháp để kết nối, thu thập, lưu trữ và phân tích dữ liệu thiết bị. Amazon Web Services (AWS) cung cấp một loạt các dịch vụ và bộ công cụ đám mây IoT được quản lý, cho phép các nhà cung cấp thiết kế và xây dựng các giải pháp có thể mở rộng.

Thiết kế các giải pháp IoT tự nhiên trên nền tảng AWS hoặc di chuyển sang nền tảng này, cho phép người dùng tập trung vào công việc cốt lõi của mình mà không gặp rắc rối với các vấn đề về quản lý cơ sở hạ tầng cấp thấp, và cố gắng kết hợp các nền tảng quản lý hệ thống IoT sở hữu. Điều này sẽ đảm bảo tính sẵn sàng cao cho khách hàng và bộ công cụ AWS bền vững theo ý của bạn để phục vụ khách hàng.

Thiết kế để hoạt động ở quy mô đáng tin cậy

Các hệ thống IoT phải được xử lý gần thời gian thực, thường có khối lượng lớn, truyền dữ liệu từ các thiết bị và cổng. Khi khách hàng của bạn mở rộng hệ thống của họ, giải pháp của bạn và cơ sở hạ tầng bên dưới cần mở rộng một cách dễ dàng cùng với hoạt động kinh doanh của khách hàng.

Cách tiếp cận tốt nhất là xuất dữ liệu gửi đến hàng đợi tin nhắn, sau đó tải nó vào lớp bộ đệm trong bộ nhớ cache trong thời gian thực, trước khi ghi nó vào cơ sở dữ liệu lưu trữ dài hạn. Điều này giúp người dùng thu được các sự kiện thời gian thực và làm chậm tốc độ chèn dữ liệu, để giảm cơ hội áp đảo người viết cơ sở dữ liệu của bạn. Bộ nhớ cache cũng có thể tiết kiệm chi phí vì người dùng có thể bó dữ liệu chèn và dữ liệu đường ống của mình ở nơi khác một cách nhanh chóng, mà không cần liên tục sử dụng cơ sở dữ liệu của mình.

Trên AWS, thiết bị của bạn có thể xuất dữ liệu lên AWS Kinesis hoặc AWS IoT Rules có thể được sử dụng để chuyển tiếp dữ liệu tới AWS SQS và Kinesis, để lưu trữ dữ liệu trong các cửa hàng theo chuỗi thời gian như AWS S3, Redshift hoặc DataLake. Các cửa hàng dữ liệu này có thể được sử dụng để tạo bảng điều khiển tùy chỉnh hoặc bảng điều khiển AWS QuickSight, để cho phép việc giám sát dữ liệu trực tuyến một cách dễ dàng.

Định tuyến khối lượng dữ liệu lớn thông qua đường ống dữ liệu

Việc sử dụng dữ liệu đến từ các chủ đề thiết bị trực tiếp đến một dịch vụ sẽ ngăn các hệ thống đạt được khả năng mở rộng đầy đủ. Đôi khi, cách tiếp cận như vậy giới hạn sự sẵn có của hệ thống trong trường hợp hệ thống bị tạm ngừng hoặc có quá nhiều dữ liệu.

AWS IoT Rules Engine được thiết kế để kết nối các điểm cuối API (Giao diện lập trình ứng dụng) với AWS IoT Core một cách linh hoạt. Nhưng, tất cả các dịch vụ AWS đều có các thuộc tính luồng dữ liệu khác nhau và các trường hợp sử dụng dự định của riêng chúng. Tất cả các dịch vụ không thể được sử dụng như một điểm vào hệ thống. Đôi khi, việc sử dụng dịch vụ AWS IoT không đúng cách có thể mở ra những điểm yếu tiềm ẩn trong giải pháp của bạn, hoặc ít nhất là các thành phần dễ bị tổn hại hoặc phơi nhiễm. Hãy chú ý đến các giới hạn luồng dữ liệu và các đề xuất sử dụng cho từng dịch vụ AWS IoT và các đầu nối đường ống của nó.

Ví dụ: trong trường hợp dữ liệu truyền phát khối lượng lớn, hãy xem xét vấn đề buffering (ElastiCache) hoặc sắp xếp (SQS) dữ liệu đến trước khi gọi các dịch vụ khác, cho phép khả năng phục hồi từ thất bại, tăng tính khả dụng của dữ liệu và giảm chi phí.

AWS IoT Rules Engine cho phép kích hoạt song song nhiều dịch vụ AWS như Lambda, S3, Kinesis, SQS hoặc SNS. Một khi dữ liệu được thu thập bởi hệ thống IoT, nó sẽ cho phép các điểm cuối AWS (các dịch vụ AWS khác) xử lý và chuyển đổi dữ liệu. Điều này cho phép người dùng lưu trữ dữ liệu vào nhiều cửa hàng dữ liệu cùng một lúc.

Cách tốt nhất và an toàn nhất để đảm bảo tất cả dữ liệu được xử lý và lưu trữ là chuyển hướng tất cả dữ liệu chủ đề của thiết bị sang SNS, được thiết kế để xử lý trường hợp có quá nhiều dữ liệu cùng lúc, đảm bảo dữ liệu đến được duy trì một cách đáng tin cậy, được xử lý và gửi đến kênh thông báo phù hợp. Để làm cho nó có khả năng mở rộng hơn, có thể sử dụng nhiều chủ đề SNS, hàng đợi SQS và Lambdas cho một nhóm chủ đề thiết bị AWS khác. Người dùng nên xem xét việc lưu trữ dữ liệu trong bộ lưu trữ an toàn như Queue, Amazon Kinesis, Amazon S3 hoặc Amazon Redshift trước khi xử lý. Thực tiễn này đảm bảo người dùng không mất dữ liệu do quá tải tin nhắn, mã ngoại lệ không mong muốn hoặc các vấn đề triển khai.

Tự động cung cấp và nâng cấp thiết bị

Khi khách hàng của bạn - doanh nghiệp hỗ trợ IoT, phát triển và các giải pháp của họ và mở rộng cùng với nó, các quy trình thủ công như cung cấp thiết bị, khởi động phần mềm, cấu hình bảo mật, thiết lập quy tắc hành động, nâng cấp OTA (Online travel agent – đại lý du lịch trực tuyến) của thiết bị, v.v ... sẽ nhanh chóng trở nên không khả thi. Giảm thiểu sự tương tác của con người trong quá trình khởi tạo và nâng cấp là điều rất quan trọng để tiết kiệm thời gian và tiền bạc cho cả nhà cung cấp và khách hàng.

Thiết kế các thiết bị IoT của bạn với việc cung cấp và đăng ký tích hợp (và tốt nhất là tự động hóa), đồng thời tận dụng các công cụ AWS thích hợp để cung cấp và quản lý thiết bị, sẽ cho phép các giải pháp IoT của bạn đạt được hiệu quả hoạt động mong muốn với sự can thiệp tối thiểu của con người.

AWS IoT cung cấp một bộ các chức năng có thể được sử dụng để nhập hàng loạt bộ chính sách có thể được tích hợp với bảng điều khiển hoặc quy trình sản xuất, nơi thiết bị có thể được đăng ký trước AWS IoT và có thể cài đặt chứng chỉ trên thiết bị. Sau đó, quy trình cung cấp thiết bị có thể yêu cầu thiết bị đó và đính kèm thiết bị với bộ sưu tập, người dùng hoặc bất kỳ thực thể được phép nào khác. AWS cung cấp khả năng kích hoạt và theo dõi các nâng cấp OTA cho các thiết bị. Do IoT rất phổ biến và lặp lại nhanh chóng trên phần sụn thiết bị, việc có thể quản lý quản lý cập nhật OTA trên cùng một nền tảng chạy giải pháp IoT của bạn là một lợi ích lớn cho cả nhà cung cấp giải pháp và khách hàng.

Áp dụng kiến ​​trúc có thể mở rộng cho các thành phần tùy chỉnh

Phạm vi và tác động tiềm năng của một giải pháp IoT không thể kết thúc bằng cách kết nối các thiết bị với internet và xử lý các báo cáo của chúng. Bạn cần suy nghĩ về việc áp dụng các kỹ thuật phân tích mới nhất để hiểu được tất cả dữ liệu mà mình tạo ra. Xem xét việc tạo tích hợp cho Google Home, Alexa, v.v., để mở rộng phạm vi giải pháp của bạn và để tạo thêm điểm cuối cho tương tác của khách hàng. Kiến trúc của một giải pháp IoT cần đảm bảo rằng các thành phần bên ngoài có thể dễ dàng tích hợp vào giải pháp mà không có bất kỳ tắc nghẽn về mặt hiệu suất nào.

Kiểm tra truy cập ngoại tuyến và xử lý

Đôi khi, bạn không cần thiết phải xử lý tất cả dữ liệu của mình trong đám mây. Trong nhiều trường hợp, vấn đề có thể là không có kết nối internet liên tục hoặc không có các kết nối đáng tin cậy có sẵn. Đối với những kịch bản như vậy, hãy thêm AWS Greengrass ở rìa mạng của bạn. Greengrass xử lý và lọc dữ liệu cục bộ, tức là trên các thiết bị IoT hoặc cổng của bạn và giảm nhu cầu gửi tất cả dữ liệu thiết bị ngược dòng để phân tích. Người dùng có thể thu thập tất cả dữ liệu, xử lý dữ liệu trên thiết bị hoặc trên cổng nhận báo cáo từ bộ sưu tập thiết bị, và sau đó gửi dữ liệu đã xử lý hoặc sự kiện lỗi lên đám mây, theo bộ quy tắc hoặc theo yêu cầu. Nếu có nhu cầu về dữ liệu chuỗi thời gian, thì người dùng có thể lên lịch quy trình định kỳ gửi dữ liệu thiết bị lên đám mây, để có thể sử dụng cho các cải tiến trong tương lai, như mô hình AWS Machine Learning hoặc công cụ phân tích đám mây.

Chọn tùy chọn lưu trữ dữ liệu phù hợp

Hệ thống IoT tạo ra dữ liệu tốc độ cao, khối lượng lớn và đa dạng. Mỗi thiết bị IoT hoặc chủ đề thiết bị có thể có các định dạng khác nhau, có thể không được quản lý thông qua một cơ sở dữ liệu hoặc một loại lưu trữ dữ liệu tương tự. Một kiến ​​trúc sư nên cẩn thận trong khi chọn định dạng cơ sở dữ liệu và lưu trữ dữ liệu. Hãy nghĩ về cả hai yêu cầu đọc và viết, và cũng không chỉ nghĩ đến thời điểm hiện tại, mà trong một năm, hai năm và năm năm. Đôi khi một cửa hàng dữ liệu duy nhất lại hoạt động tốt hoặc lưu trữ dữ liệu lai cho một mục đích khác giúp người dùng đạt được thông lượng cao. Dữ liệu tĩnh được sử dụng thường xuyên có thể được lưu trữ trong ElastiCache, giúp cải thiện hiệu suất. Những thực hành như vậy giúp người dùng đạt được khả năng mở rộng và khả năng bảo trì của hệ thống.

Lọc và chuyển đổi dữ liệu trước khi xử lý

Tất cả dữ liệu đến có thể sẽ được yêu cầu xử lý hoặc biến đổi ngay cả khi một số công việc nặng được giao cho bộ xử lý biên, sau đó nó có thể được chuyển hướng đến lưu trữ. Quy tắc AWS IoT cho phép người dùng chuyển hướng tin nhắn đến các dịch vụ AWS khác nhau. Một kiến ​​trúc sư nên suy nghĩ về dữ liệu trong tất cả các dạng của nó, tức là dữ liệu nào cần xử lý, bỏ qua/dữ liệu tĩnh (như cấu hình) và lưu trữ trực tiếp.

AWS IoT giúp người dùng đạt được kết nối thiết bị nhanh chóng, nhập dữ liệu an toàn, quản lý thiết bị dễ dàng, hỗ trợ đa giao thức và nhiều tiện ích hơn nữa.

Ngọc Huyền